Temporary header file '/tmp/2uLGuiS2Gn/dump1.h' with the following content will be compiled to create GCC translation unit dump:

  // add defines
  #define __STDC_VERSION__ 201710L
#define _GXX_NULLPTR_T
#define CLUTTER_ENABLE_COMPOSITOR_API 1
#define _REGEX_NELTS(n)
#define _Atomic
#define PACKED
#define getaddrinfo_a(a,b,c,d)

  // add includes
  #include "/usr/include/xflens/cxxblas/auxiliary/auxiliary.h"
  #include "/usr/include/xflens/cxxblas/auxiliary/complex.h"
  #include "/usr/include/xflens/cxxblas/auxiliary/complextrait.h"
  #include "/usr/include/xflens/cxxblas/auxiliary/debugmacro.h"
  #include "/usr/include/xflens/cxxblas/auxiliary/fakeuse.h"
  #include "/usr/include/xflens/cxxblas/auxiliary/iscomplex.h"
  #include "/usr/include/xflens/cxxblas/auxiliary/ismpfrreal.h"
  #include "/usr/include/xflens/cxxblas/auxiliary/issame.h"
  #include "/usr/include/xflens/cxxblas/auxiliary/pow.h"
  #include "/usr/include/xflens/cxxblas/auxiliary/restrictto.h"
  #include "/usr/include/xflens/cxxblas/cxxblas.h"
  #include "/usr/include/xflens/cxxblas/drivers/atlas.h"
  #include "/usr/include/xflens/cxxblas/drivers/cblas.h"
  #include "/usr/include/xflens/cxxblas/drivers/drivers.h"
  #include "/usr/include/xflens/cxxblas/drivers/gotoblas.h"
  #include "/usr/include/xflens/cxxblas/drivers/mklblas.h"
  #include "/usr/include/xflens/cxxblas/drivers/openblas.h"
  #include "/usr/include/xflens/cxxblas/drivers/refblas.h"
  #include "/usr/include/xflens/cxxblas/drivers/sparseblas.h"
  #include "/usr/include/xflens/cxxblas/drivers/veclib.h"
  #include "/usr/include/xflens/cxxblas/level1/asum.h"
  #include "/usr/include/xflens/cxxblas/level1/axpy.h"
  #include "/usr/include/xflens/cxxblas/level1/copy.h"
  #include "/usr/include/xflens/cxxblas/level1/dot.h"
  #include "/usr/include/xflens/cxxblas/level1/iamax.h"
  #include "/usr/include/xflens/cxxblas/level1/level1.h"
  #include "/usr/include/xflens/cxxblas/level1/nrm2.h"
  #include "/usr/include/xflens/cxxblas/level1/rot.h"
  #include "/usr/include/xflens/cxxblas/level1/rotm.h"
  #include "/usr/include/xflens/cxxblas/level1/scal.h"
  #include "/usr/include/xflens/cxxblas/level1/swap.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/acxpby.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/acxpy.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/asum1.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/axpby.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/axpy.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/ccopy.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/dot.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/gbaxpby.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/gbaxpy.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/gbcopy.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/gbcotr.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/gbscal.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/geaxpby.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/geaxpy.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/gecopy.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/gecotr.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/geraxpy.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/gerscal.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/gescal.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/geswap.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/hescal.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/imax1.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/level1extensions.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/racxpy.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/raxpy.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/rscal.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/syscal.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/tpaxpby.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/tpaxpy.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/tpcopy.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/tpscal.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/traxpby.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/traxpy.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/trcopy.h"
  #include "/usr/include/xflens/cxxblas/level1extensions/trscal.h"
  #include "/usr/include/xflens/cxxblas/level2/gbmv.h"
  #include "/usr/include/xflens/cxxblas/level2/gemv.h"
  #include "/usr/include/xflens/cxxblas/level2/ger.h"
  #include "/usr/include/xflens/cxxblas/level2/hbmv.h"
  #include "/usr/include/xflens/cxxblas/level2/hemv.h"
  #include "/usr/include/xflens/cxxblas/level2/her.h"
  #include "/usr/include/xflens/cxxblas/level2/her2.h"
  #include "/usr/include/xflens/cxxblas/level2/hpmv.h"
  #include "/usr/include/xflens/cxxblas/level2/hpr.h"
  #include "/usr/include/xflens/cxxblas/level2/hpr2.h"
  #include "/usr/include/xflens/cxxblas/level2/level2.h"
  #include "/usr/include/xflens/cxxblas/level2/sbmv.h"
  #include "/usr/include/xflens/cxxblas/level2/spmv.h"
  #include "/usr/include/xflens/cxxblas/level2/spr.h"
  #include "/usr/include/xflens/cxxblas/level2/spr2.h"
  #include "/usr/include/xflens/cxxblas/level2/symv.h"
  #include "/usr/include/xflens/cxxblas/level2/syr.h"
  #include "/usr/include/xflens/cxxblas/level2/syr2.h"
  #include "/usr/include/xflens/cxxblas/level2/tbmv.h"
  #include "/usr/include/xflens/cxxblas/level2/tbsv.h"
  #include "/usr/include/xflens/cxxblas/level2/tpmv.h"
  #include "/usr/include/xflens/cxxblas/level2/tpsv.h"
  #include "/usr/include/xflens/cxxblas/level2/trmv.h"
  #include "/usr/include/xflens/cxxblas/level2/trsv.h"
  #include "/usr/include/xflens/cxxblas/level2extensions/gbmv.h"
  #include "/usr/include/xflens/cxxblas/level2extensions/gemv.h"
  #include "/usr/include/xflens/cxxblas/level2extensions/hemv.h"
  #include "/usr/include/xflens/cxxblas/level2extensions/her.h"
  #include "/usr/include/xflens/cxxblas/level2extensions/her2.h"
  #include "/usr/include/xflens/cxxblas/level2extensions/level2extensions.h"
  #include "/usr/include/xflens/cxxblas/level2extensions/symv.h"
  #include "/usr/include/xflens/cxxblas/level2extensions/trmv.h"
  #include "/usr/include/xflens/cxxblas/level2extensions/trsv.h"
  #include "/usr/include/xflens/cxxblas/level3/gemm.h"
  #include "/usr/include/xflens/cxxblas/level3/hemm.h"
  #include "/usr/include/xflens/cxxblas/level3/her2k.h"
  #include "/usr/include/xflens/cxxblas/level3/herk.h"
  #include "/usr/include/xflens/cxxblas/level3/level3.h"
  #include "/usr/include/xflens/cxxblas/level3/symm.h"
  #include "/usr/include/xflens/cxxblas/level3/syr2k.h"
  #include "/usr/include/xflens/cxxblas/level3/syrk.h"
  #include "/usr/include/xflens/cxxblas/level3/trmm.h"
  #include "/usr/include/xflens/cxxblas/level3/trsm.h"
  #include "/usr/include/xflens/cxxblas/level3extensions/gbmm.h"
  #include "/usr/include/xflens/cxxblas/level3extensions/hbmm.h"
  #include "/usr/include/xflens/cxxblas/level3extensions/level3extensions.h"
  #include "/usr/include/xflens/cxxblas/level3extensions/sbmm.h"
  #include "/usr/include/xflens/cxxblas/level3extensions/tbmm.h"
  #include "/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.h"
  #include "/usr/include/xflens/cxxblas/sparselevel2/heccsmv.h"
  #include "/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.h"
  #include "/usr/include/xflens/cxxblas/sparselevel2/sparselevel2.h"
  #include "/usr/include/xflens/cxxblas/sparselevel2/syccsmv.h"
  #include "/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.h"
  #include "/usr/include/xflens/cxxblas/sparselevel2/trccssv.h"
  #include "/usr/include/xflens/cxxblas/sparselevel2/trcrssv.h"
  #include "/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.h"
  #include "/usr/include/xflens/cxxblas/sparselevel3/heccsmm.h"
  #include "/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.h"
  #include "/usr/include/xflens/cxxblas/sparselevel3/sparselevel3.h"
  #include "/usr/include/xflens/cxxblas/sparselevel3/syccsmm.h"
  #include "/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.h"
  #include "/usr/include/xflens/cxxblas/sparselevel3/trccssm.h"
  #include "/usr/include/xflens/cxxblas/sparselevel3/trcrssm.h"
  #include "/usr/include/xflens/cxxblas/tinylevel1/acxpby.h"
  #include "/usr/include/xflens/cxxblas/tinylevel1/acxpy.h"
  #include "/usr/include/xflens/cxxblas/tinylevel1/axpby.h"
  #include "/usr/include/xflens/cxxblas/tinylevel1/axpy.h"
  #include "/usr/include/xflens/cxxblas/tinylevel1/ccopy.h"
  #include "/usr/include/xflens/cxxblas/tinylevel1/copy.h"
  #include "/usr/include/xflens/cxxblas/tinylevel1/geaxpy.h"
  #include "/usr/include/xflens/cxxblas/tinylevel1/gecopy.h"
  #include "/usr/include/xflens/cxxblas/tinylevel1/gerscal.h"
  #include "/usr/include/xflens/cxxblas/tinylevel1/gescal.h"
  #include "/usr/include/xflens/cxxblas/tinylevel1/rscal.h"
  #include "/usr/include/xflens/cxxblas/tinylevel1/scal.h"
  #include "/usr/include/xflens/cxxblas/tinylevel1/tinylevel1.h"
  #include "/usr/include/xflens/cxxblas/tinylevel2/gemv.h"
  #include "/usr/include/xflens/cxxblas/tinylevel2/tinylevel2.h"
  #include "/usr/include/xflens/cxxblas/typedefs.h"
  #include "/usr/include/xflens/cxxlapack/cxxlapack.h"
  #include "/usr/include/xflens/cxxlapack/interface/bbcsd.h"
  #include "/usr/include/xflens/cxxlapack/interface/bdsdc.h"
  #include "/usr/include/xflens/cxxlapack/interface/bdsqr.h"
  #include "/usr/include/xflens/cxxlapack/interface/cgesv.h"
  #include "/usr/include/xflens/cxxlapack/interface/chla_transtype.h"
  #include "/usr/include/xflens/cxxlapack/interface/cposv.h"
  #include "/usr/include/xflens/cxxlapack/interface/disna.h"
  #include "/usr/include/xflens/cxxlapack/interface/dspcon.h"
  #include "/usr/include/xflens/cxxlapack/interface/gbbrd.h"
  #include "/usr/include/xflens/cxxlapack/interface/gbcon.h"
  #include "/usr/include/xflens/cxxlapack/interface/gbequ.h"
  #include "/usr/include/xflens/cxxlapack/interface/gbequb.h"
  #include "/usr/include/xflens/cxxlapack/interface/gbrfs.h"
  #include "/usr/include/xflens/cxxlapack/interface/gbsv.h"
  #include "/usr/include/xflens/cxxlapack/interface/gbsvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/gbtf2.h"
  #include "/usr/include/xflens/cxxlapack/interface/gbtrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/gbtrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/gebak.h"
  #include "/usr/include/xflens/cxxlapack/interface/gebal.h"
  #include "/usr/include/xflens/cxxlapack/interface/gebd2.h"
  #include "/usr/include/xflens/cxxlapack/interface/gebrd.h"
  #include "/usr/include/xflens/cxxlapack/interface/gecon.h"
  #include "/usr/include/xflens/cxxlapack/interface/geequ.h"
  #include "/usr/include/xflens/cxxlapack/interface/geequb.h"
  #include "/usr/include/xflens/cxxlapack/interface/gees.h"
  #include "/usr/include/xflens/cxxlapack/interface/geesx.h"
  #include "/usr/include/xflens/cxxlapack/interface/geev.h"
  #include "/usr/include/xflens/cxxlapack/interface/geevx.h"
  #include "/usr/include/xflens/cxxlapack/interface/gegs.h"
  #include "/usr/include/xflens/cxxlapack/interface/gegv.h"
  #include "/usr/include/xflens/cxxlapack/interface/gehd2.h"
  #include "/usr/include/xflens/cxxlapack/interface/gehrd.h"
  #include "/usr/include/xflens/cxxlapack/interface/gejsv.h"
  #include "/usr/include/xflens/cxxlapack/interface/gelq2.h"
  #include "/usr/include/xflens/cxxlapack/interface/gelqf.h"
  #include "/usr/include/xflens/cxxlapack/interface/gels.h"
  #include "/usr/include/xflens/cxxlapack/interface/gelsd.h"
  #include "/usr/include/xflens/cxxlapack/interface/gelss.h"
  #include "/usr/include/xflens/cxxlapack/interface/gelsx.h"
  #include "/usr/include/xflens/cxxlapack/interface/gelsy.h"
  #include "/usr/include/xflens/cxxlapack/interface/geql2.h"
  #include "/usr/include/xflens/cxxlapack/interface/geqlf.h"
  #include "/usr/include/xflens/cxxlapack/interface/geqp3.h"
  #include "/usr/include/xflens/cxxlapack/interface/geqpf.h"
  #include "/usr/include/xflens/cxxlapack/interface/geqr2.h"
  #include "/usr/include/xflens/cxxlapack/interface/geqr2p.h"
  #include "/usr/include/xflens/cxxlapack/interface/geqrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/geqrfp.h"
  #include "/usr/include/xflens/cxxlapack/interface/gerfs.h"
  #include "/usr/include/xflens/cxxlapack/interface/gerq2.h"
  #include "/usr/include/xflens/cxxlapack/interface/gerqf.h"
  #include "/usr/include/xflens/cxxlapack/interface/gesc2.h"
  #include "/usr/include/xflens/cxxlapack/interface/gesdd.h"
  #include "/usr/include/xflens/cxxlapack/interface/gesv.h"
  #include "/usr/include/xflens/cxxlapack/interface/gesvd.h"
  #include "/usr/include/xflens/cxxlapack/interface/gesvj.h"
  #include "/usr/include/xflens/cxxlapack/interface/gesvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/getc2.h"
  #include "/usr/include/xflens/cxxlapack/interface/getf2.h"
  #include "/usr/include/xflens/cxxlapack/interface/getrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/getri.h"
  #include "/usr/include/xflens/cxxlapack/interface/getrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/ggbak.h"
  #include "/usr/include/xflens/cxxlapack/interface/ggbal.h"
  #include "/usr/include/xflens/cxxlapack/interface/gges.h"
  #include "/usr/include/xflens/cxxlapack/interface/ggesx.h"
  #include "/usr/include/xflens/cxxlapack/interface/ggev.h"
  #include "/usr/include/xflens/cxxlapack/interface/ggevx.h"
  #include "/usr/include/xflens/cxxlapack/interface/ggglm.h"
  #include "/usr/include/xflens/cxxlapack/interface/gghrd.h"
  #include "/usr/include/xflens/cxxlapack/interface/gglse.h"
  #include "/usr/include/xflens/cxxlapack/interface/ggqrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/ggrqf.h"
  #include "/usr/include/xflens/cxxlapack/interface/ggsvd.h"
  #include "/usr/include/xflens/cxxlapack/interface/ggsvp.h"
  #include "/usr/include/xflens/cxxlapack/interface/gsvj0.h"
  #include "/usr/include/xflens/cxxlapack/interface/gsvj1.h"
  #include "/usr/include/xflens/cxxlapack/interface/gtcon.h"
  #include "/usr/include/xflens/cxxlapack/interface/gtrfs.h"
  #include "/usr/include/xflens/cxxlapack/interface/gtsv.h"
  #include "/usr/include/xflens/cxxlapack/interface/gtsvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/gttrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/gttrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/gtts2.h"
  #include "/usr/include/xflens/cxxlapack/interface/hbev.h"
  #include "/usr/include/xflens/cxxlapack/interface/hbevd.h"
  #include "/usr/include/xflens/cxxlapack/interface/hbevx.h"
  #include "/usr/include/xflens/cxxlapack/interface/hbgst.h"
  #include "/usr/include/xflens/cxxlapack/interface/hbgv.h"
  #include "/usr/include/xflens/cxxlapack/interface/hbgvd.h"
  #include "/usr/include/xflens/cxxlapack/interface/hbgvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/hbtrd.h"
  #include "/usr/include/xflens/cxxlapack/interface/hecon.h"
  #include "/usr/include/xflens/cxxlapack/interface/heequb.h"
  #include "/usr/include/xflens/cxxlapack/interface/heev.h"
  #include "/usr/include/xflens/cxxlapack/interface/heevd.h"
  #include "/usr/include/xflens/cxxlapack/interface/heevr.h"
  #include "/usr/include/xflens/cxxlapack/interface/heevx.h"
  #include "/usr/include/xflens/cxxlapack/interface/hegs2.h"
  #include "/usr/include/xflens/cxxlapack/interface/hegst.h"
  #include "/usr/include/xflens/cxxlapack/interface/hegv.h"
  #include "/usr/include/xflens/cxxlapack/interface/hegvd.h"
  #include "/usr/include/xflens/cxxlapack/interface/hegvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/herfs.h"
  #include "/usr/include/xflens/cxxlapack/interface/hesv.h"
  #include "/usr/include/xflens/cxxlapack/interface/hesvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/heswapr.h"
  #include "/usr/include/xflens/cxxlapack/interface/hetd2.h"
  #include "/usr/include/xflens/cxxlapack/interface/hetf2.h"
  #include "/usr/include/xflens/cxxlapack/interface/hetrd.h"
  #include "/usr/include/xflens/cxxlapack/interface/hetrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/hetri.h"
  #include "/usr/include/xflens/cxxlapack/interface/hetri2.h"
  #include "/usr/include/xflens/cxxlapack/interface/hetri2x.h"
  #include "/usr/include/xflens/cxxlapack/interface/hetrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/hetrs2.h"
  #include "/usr/include/xflens/cxxlapack/interface/hfrk.h"
  #include "/usr/include/xflens/cxxlapack/interface/hgeqz.h"
  #include "/usr/include/xflens/cxxlapack/interface/hpcon.h"
  #include "/usr/include/xflens/cxxlapack/interface/hpev.h"
  #include "/usr/include/xflens/cxxlapack/interface/hpevd.h"
  #include "/usr/include/xflens/cxxlapack/interface/hpevx.h"
  #include "/usr/include/xflens/cxxlapack/interface/hpgst.h"
  #include "/usr/include/xflens/cxxlapack/interface/hpgv.h"
  #include "/usr/include/xflens/cxxlapack/interface/hpgvd.h"
  #include "/usr/include/xflens/cxxlapack/interface/hpgvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/hprfs.h"
  #include "/usr/include/xflens/cxxlapack/interface/hpsv.h"
  #include "/usr/include/xflens/cxxlapack/interface/hpsvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/hptrd.h"
  #include "/usr/include/xflens/cxxlapack/interface/hptrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/hptri.h"
  #include "/usr/include/xflens/cxxlapack/interface/hptrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/hsein.h"
  #include "/usr/include/xflens/cxxlapack/interface/hseqr.h"
  #include "/usr/include/xflens/cxxlapack/interface/ieeeck.h"
  #include "/usr/include/xflens/cxxlapack/interface/ilalc.h"
  #include "/usr/include/xflens/cxxlapack/interface/ilalr.h"
  #include "/usr/include/xflens/cxxlapack/interface/ilaslc.h"
  #include "/usr/include/xflens/cxxlapack/interface/ilaslr.h"
  #include "/usr/include/xflens/cxxlapack/interface/ilaver.h"
  #include "/usr/include/xflens/cxxlapack/interface/ilazlc.h"
  #include "/usr/include/xflens/cxxlapack/interface/ilazlr.h"
  #include "/usr/include/xflens/cxxlapack/interface/interface.h"
  #include "/usr/include/xflens/cxxlapack/interface/isnan.h"
  #include "/usr/include/xflens/cxxlapack/interface/izmax1.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_gbamv.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_gbrcond.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_gbrcond_c.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_gbrcond_x.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_gbrpvgrw.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_geamv.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_gercond.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_gercond_c.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_gercond_x.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_heramv.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_hercond_c.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_hercond_x.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_herpvgrw.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_lin_berr.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_porcond.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_porcond_c.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_porcond_x.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_porpvgrw.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_rpvgrw.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_syamv.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_syrcond.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_syrcond_c.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_syrcond_x.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_syrpvgrw.h"
  #include "/usr/include/xflens/cxxlapack/interface/la_wwaddw.h"
  #include "/usr/include/xflens/cxxlapack/interface/labad.h"
  #include "/usr/include/xflens/cxxlapack/interface/labrd.h"
  #include "/usr/include/xflens/cxxlapack/interface/lacgv.h"
  #include "/usr/include/xflens/cxxlapack/interface/lacn2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lacon.h"
  #include "/usr/include/xflens/cxxlapack/interface/lacp2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lacpy.h"
  #include "/usr/include/xflens/cxxlapack/interface/lacrm.h"
  #include "/usr/include/xflens/cxxlapack/interface/lacrt.h"
  #include "/usr/include/xflens/cxxlapack/interface/ladiv.h"
  #include "/usr/include/xflens/cxxlapack/interface/lae2.h"
  #include "/usr/include/xflens/cxxlapack/interface/laebz.h"
  #include "/usr/include/xflens/cxxlapack/interface/laed0.h"
  #include "/usr/include/xflens/cxxlapack/interface/laed1.h"
  #include "/usr/include/xflens/cxxlapack/interface/laed2.h"
  #include "/usr/include/xflens/cxxlapack/interface/laed3.h"
  #include "/usr/include/xflens/cxxlapack/interface/laed4.h"
  #include "/usr/include/xflens/cxxlapack/interface/laed5.h"
  #include "/usr/include/xflens/cxxlapack/interface/laed6.h"
  #include "/usr/include/xflens/cxxlapack/interface/laed7.h"
  #include "/usr/include/xflens/cxxlapack/interface/laed8.h"
  #include "/usr/include/xflens/cxxlapack/interface/laed9.h"
  #include "/usr/include/xflens/cxxlapack/interface/laeda.h"
  #include "/usr/include/xflens/cxxlapack/interface/laein.h"
  #include "/usr/include/xflens/cxxlapack/interface/laesy.h"
  #include "/usr/include/xflens/cxxlapack/interface/laev2.h"
  #include "/usr/include/xflens/cxxlapack/interface/laexc.h"
  #include "/usr/include/xflens/cxxlapack/interface/lag2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lag2c.h"
  #include "/usr/include/xflens/cxxlapack/interface/lag2d.h"
  #include "/usr/include/xflens/cxxlapack/interface/lag2s.h"
  #include "/usr/include/xflens/cxxlapack/interface/lag2z.h"
  #include "/usr/include/xflens/cxxlapack/interface/lags2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lagtf.h"
  #include "/usr/include/xflens/cxxlapack/interface/lagtm.h"
  #include "/usr/include/xflens/cxxlapack/interface/lagts.h"
  #include "/usr/include/xflens/cxxlapack/interface/lagv2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lahef.h"
  #include "/usr/include/xflens/cxxlapack/interface/lahqr.h"
  #include "/usr/include/xflens/cxxlapack/interface/lahr2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lahrd.h"
  #include "/usr/include/xflens/cxxlapack/interface/laic1.h"
  #include "/usr/include/xflens/cxxlapack/interface/laisnan.h"
  #include "/usr/include/xflens/cxxlapack/interface/laln2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lals0.h"
  #include "/usr/include/xflens/cxxlapack/interface/lalsa.h"
  #include "/usr/include/xflens/cxxlapack/interface/lalsd.h"
  #include "/usr/include/xflens/cxxlapack/interface/lamch.h"
  #include "/usr/include/xflens/cxxlapack/interface/lamrg.h"
  #include "/usr/include/xflens/cxxlapack/interface/laneg.h"
  #include "/usr/include/xflens/cxxlapack/interface/langb.h"
  #include "/usr/include/xflens/cxxlapack/interface/lange.h"
  #include "/usr/include/xflens/cxxlapack/interface/langt.h"
  #include "/usr/include/xflens/cxxlapack/interface/lanhb.h"
  #include "/usr/include/xflens/cxxlapack/interface/lanhe.h"
  #include "/usr/include/xflens/cxxlapack/interface/lanhf.h"
  #include "/usr/include/xflens/cxxlapack/interface/lanhp.h"
  #include "/usr/include/xflens/cxxlapack/interface/lanhs.h"
  #include "/usr/include/xflens/cxxlapack/interface/lanht.h"
  #include "/usr/include/xflens/cxxlapack/interface/lansb.h"
  #include "/usr/include/xflens/cxxlapack/interface/lansf.h"
  #include "/usr/include/xflens/cxxlapack/interface/lansp.h"
  #include "/usr/include/xflens/cxxlapack/interface/lanst.h"
  #include "/usr/include/xflens/cxxlapack/interface/lansy.h"
  #include "/usr/include/xflens/cxxlapack/interface/lantb.h"
  #include "/usr/include/xflens/cxxlapack/interface/lantp.h"
  #include "/usr/include/xflens/cxxlapack/interface/lantr.h"
  #include "/usr/include/xflens/cxxlapack/interface/lanv2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lapll.h"
  #include "/usr/include/xflens/cxxlapack/interface/lapmr.h"
  #include "/usr/include/xflens/cxxlapack/interface/lapmt.h"
  #include "/usr/include/xflens/cxxlapack/interface/laprec.h"
  #include "/usr/include/xflens/cxxlapack/interface/lapy2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lapy3.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqgb.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqge.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqhb.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqhe.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqhp.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqp2.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqps.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqr0.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqr1.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqr2.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqr3.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqr4.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqr5.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqsb.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqsp.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqsy.h"
  #include "/usr/include/xflens/cxxlapack/interface/laqtr.h"
  #include "/usr/include/xflens/cxxlapack/interface/lar1v.h"
  #include "/usr/include/xflens/cxxlapack/interface/lar2v.h"
  #include "/usr/include/xflens/cxxlapack/interface/larcm.h"
  #include "/usr/include/xflens/cxxlapack/interface/larf.h"
  #include "/usr/include/xflens/cxxlapack/interface/larfb.h"
  #include "/usr/include/xflens/cxxlapack/interface/larfg.h"
  #include "/usr/include/xflens/cxxlapack/interface/larfgp.h"
  #include "/usr/include/xflens/cxxlapack/interface/larft.h"
  #include "/usr/include/xflens/cxxlapack/interface/larfx.h"
  #include "/usr/include/xflens/cxxlapack/interface/largv.h"
  #include "/usr/include/xflens/cxxlapack/interface/larnv.h"
  #include "/usr/include/xflens/cxxlapack/interface/larra.h"
  #include "/usr/include/xflens/cxxlapack/interface/larrb.h"
  #include "/usr/include/xflens/cxxlapack/interface/larrc.h"
  #include "/usr/include/xflens/cxxlapack/interface/larrd.h"
  #include "/usr/include/xflens/cxxlapack/interface/larre.h"
  #include "/usr/include/xflens/cxxlapack/interface/larrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/larrj.h"
  #include "/usr/include/xflens/cxxlapack/interface/larrk.h"
  #include "/usr/include/xflens/cxxlapack/interface/larrr.h"
  #include "/usr/include/xflens/cxxlapack/interface/larrv.h"
  #include "/usr/include/xflens/cxxlapack/interface/larscl2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lartg.h"
  #include "/usr/include/xflens/cxxlapack/interface/lartgp.h"
  #include "/usr/include/xflens/cxxlapack/interface/lartgs.h"
  #include "/usr/include/xflens/cxxlapack/interface/lartv.h"
  #include "/usr/include/xflens/cxxlapack/interface/laruv.h"
  #include "/usr/include/xflens/cxxlapack/interface/larz.h"
  #include "/usr/include/xflens/cxxlapack/interface/larzb.h"
  #include "/usr/include/xflens/cxxlapack/interface/larzt.h"
  #include "/usr/include/xflens/cxxlapack/interface/las2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lascl.h"
  #include "/usr/include/xflens/cxxlapack/interface/lascl2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasd0.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasd1.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasd2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasd3.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasd4.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasd5.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasd6.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasd7.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasd8.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasda.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasdq.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasdt.h"
  #include "/usr/include/xflens/cxxlapack/interface/laset.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasq1.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasq2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasq3.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasq4.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasq5.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasq6.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasr.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasrt.h"
  #include "/usr/include/xflens/cxxlapack/interface/lassq.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasv2.h"
  #include "/usr/include/xflens/cxxlapack/interface/laswp.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasy2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lasyf.h"
  #include "/usr/include/xflens/cxxlapack/interface/lat2c.h"
  #include "/usr/include/xflens/cxxlapack/interface/lat2s.h"
  #include "/usr/include/xflens/cxxlapack/interface/latbs.h"
  #include "/usr/include/xflens/cxxlapack/interface/latdf.h"
  #include "/usr/include/xflens/cxxlapack/interface/latps.h"
  #include "/usr/include/xflens/cxxlapack/interface/latrans.h"
  #include "/usr/include/xflens/cxxlapack/interface/latrd.h"
  #include "/usr/include/xflens/cxxlapack/interface/latrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/latrz.h"
  #include "/usr/include/xflens/cxxlapack/interface/latzm.h"
  #include "/usr/include/xflens/cxxlapack/interface/lauplo.h"
  #include "/usr/include/xflens/cxxlapack/interface/lauu2.h"
  #include "/usr/include/xflens/cxxlapack/interface/lauum.h"
  #include "/usr/include/xflens/cxxlapack/interface/lsame.h"
  #include "/usr/include/xflens/cxxlapack/interface/lsamen.h"
  #include "/usr/include/xflens/cxxlapack/interface/opgtr.h"
  #include "/usr/include/xflens/cxxlapack/interface/opmtr.h"
  #include "/usr/include/xflens/cxxlapack/interface/orbdb.h"
  #include "/usr/include/xflens/cxxlapack/interface/orcsd.h"
  #include "/usr/include/xflens/cxxlapack/interface/org2l.h"
  #include "/usr/include/xflens/cxxlapack/interface/org2r.h"
  #include "/usr/include/xflens/cxxlapack/interface/orgbr.h"
  #include "/usr/include/xflens/cxxlapack/interface/orghr.h"
  #include "/usr/include/xflens/cxxlapack/interface/orgl2.h"
  #include "/usr/include/xflens/cxxlapack/interface/orglq.h"
  #include "/usr/include/xflens/cxxlapack/interface/orgql.h"
  #include "/usr/include/xflens/cxxlapack/interface/orgqr.h"
  #include "/usr/include/xflens/cxxlapack/interface/orgr2.h"
  #include "/usr/include/xflens/cxxlapack/interface/orgrq.h"
  #include "/usr/include/xflens/cxxlapack/interface/orgtr.h"
  #include "/usr/include/xflens/cxxlapack/interface/orm2l.h"
  #include "/usr/include/xflens/cxxlapack/interface/orm2r.h"
  #include "/usr/include/xflens/cxxlapack/interface/ormbr.h"
  #include "/usr/include/xflens/cxxlapack/interface/ormhr.h"
  #include "/usr/include/xflens/cxxlapack/interface/orml2.h"
  #include "/usr/include/xflens/cxxlapack/interface/ormlq.h"
  #include "/usr/include/xflens/cxxlapack/interface/ormql.h"
  #include "/usr/include/xflens/cxxlapack/interface/ormqr.h"
  #include "/usr/include/xflens/cxxlapack/interface/ormr2.h"
  #include "/usr/include/xflens/cxxlapack/interface/ormr3.h"
  #include "/usr/include/xflens/cxxlapack/interface/ormrq.h"
  #include "/usr/include/xflens/cxxlapack/interface/ormrz.h"
  #include "/usr/include/xflens/cxxlapack/interface/ormtr.h"
  #include "/usr/include/xflens/cxxlapack/interface/pbcon.h"
  #include "/usr/include/xflens/cxxlapack/interface/pbequ.h"
  #include "/usr/include/xflens/cxxlapack/interface/pbrfs.h"
  #include "/usr/include/xflens/cxxlapack/interface/pbstf.h"
  #include "/usr/include/xflens/cxxlapack/interface/pbsv.h"
  #include "/usr/include/xflens/cxxlapack/interface/pbsvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/pbtf2.h"
  #include "/usr/include/xflens/cxxlapack/interface/pbtrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/pbtrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/pftrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/pftri.h"
  #include "/usr/include/xflens/cxxlapack/interface/pftrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/pocon.h"
  #include "/usr/include/xflens/cxxlapack/interface/poequ.h"
  #include "/usr/include/xflens/cxxlapack/interface/poequb.h"
  #include "/usr/include/xflens/cxxlapack/interface/porfs.h"
  #include "/usr/include/xflens/cxxlapack/interface/posv.h"
  #include "/usr/include/xflens/cxxlapack/interface/posvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/potf2.h"
  #include "/usr/include/xflens/cxxlapack/interface/potrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/potri.h"
  #include "/usr/include/xflens/cxxlapack/interface/potrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/ppcon.h"
  #include "/usr/include/xflens/cxxlapack/interface/ppequ.h"
  #include "/usr/include/xflens/cxxlapack/interface/pprfs.h"
  #include "/usr/include/xflens/cxxlapack/interface/ppsv.h"
  #include "/usr/include/xflens/cxxlapack/interface/ppsvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/pptrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/pptri.h"
  #include "/usr/include/xflens/cxxlapack/interface/pptrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/pstf2.h"
  #include "/usr/include/xflens/cxxlapack/interface/pstrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/ptcon.h"
  #include "/usr/include/xflens/cxxlapack/interface/pteqr.h"
  #include "/usr/include/xflens/cxxlapack/interface/ptrfs.h"
  #include "/usr/include/xflens/cxxlapack/interface/ptsv.h"
  #include "/usr/include/xflens/cxxlapack/interface/ptsvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/pttrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/pttrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/ptts2.h"
  #include "/usr/include/xflens/cxxlapack/interface/rot.h"
  #include "/usr/include/xflens/cxxlapack/interface/rscl.h"
  #include "/usr/include/xflens/cxxlapack/interface/sbev.h"
  #include "/usr/include/xflens/cxxlapack/interface/sbevd.h"
  #include "/usr/include/xflens/cxxlapack/interface/sbevx.h"
  #include "/usr/include/xflens/cxxlapack/interface/sbgst.h"
  #include "/usr/include/xflens/cxxlapack/interface/sbgv.h"
  #include "/usr/include/xflens/cxxlapack/interface/sbgvd.h"
  #include "/usr/include/xflens/cxxlapack/interface/sbgvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/sbtrd.h"
  #include "/usr/include/xflens/cxxlapack/interface/sfrk.h"
  #include "/usr/include/xflens/cxxlapack/interface/sgesv.h"
  #include "/usr/include/xflens/cxxlapack/interface/spev.h"
  #include "/usr/include/xflens/cxxlapack/interface/spevd.h"
  #include "/usr/include/xflens/cxxlapack/interface/spevx.h"
  #include "/usr/include/xflens/cxxlapack/interface/spgst.h"
  #include "/usr/include/xflens/cxxlapack/interface/spgv.h"
  #include "/usr/include/xflens/cxxlapack/interface/spgvd.h"
  #include "/usr/include/xflens/cxxlapack/interface/spgvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/spmv.h"
  #include "/usr/include/xflens/cxxlapack/interface/sposv.h"
  #include "/usr/include/xflens/cxxlapack/interface/spr.h"
  #include "/usr/include/xflens/cxxlapack/interface/sprfs.h"
  #include "/usr/include/xflens/cxxlapack/interface/spsv.h"
  #include "/usr/include/xflens/cxxlapack/interface/spsvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/sptrd.h"
  #include "/usr/include/xflens/cxxlapack/interface/sptrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/sptri.h"
  #include "/usr/include/xflens/cxxlapack/interface/sptrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/stebz.h"
  #include "/usr/include/xflens/cxxlapack/interface/stedc.h"
  #include "/usr/include/xflens/cxxlapack/interface/stegr.h"
  #include "/usr/include/xflens/cxxlapack/interface/stein.h"
  #include "/usr/include/xflens/cxxlapack/interface/stemr.h"
  #include "/usr/include/xflens/cxxlapack/interface/steqr.h"
  #include "/usr/include/xflens/cxxlapack/interface/sterf.h"
  #include "/usr/include/xflens/cxxlapack/interface/stev.h"
  #include "/usr/include/xflens/cxxlapack/interface/stevd.h"
  #include "/usr/include/xflens/cxxlapack/interface/stevr.h"
  #include "/usr/include/xflens/cxxlapack/interface/stevx.h"
  #include "/usr/include/xflens/cxxlapack/interface/sycon.h"
  #include "/usr/include/xflens/cxxlapack/interface/syconv.h"
  #include "/usr/include/xflens/cxxlapack/interface/syequb.h"
  #include "/usr/include/xflens/cxxlapack/interface/syev.h"
  #include "/usr/include/xflens/cxxlapack/interface/syevd.h"
  #include "/usr/include/xflens/cxxlapack/interface/syevr.h"
  #include "/usr/include/xflens/cxxlapack/interface/syevx.h"
  #include "/usr/include/xflens/cxxlapack/interface/sygs2.h"
  #include "/usr/include/xflens/cxxlapack/interface/sygst.h"
  #include "/usr/include/xflens/cxxlapack/interface/sygv.h"
  #include "/usr/include/xflens/cxxlapack/interface/sygvd.h"
  #include "/usr/include/xflens/cxxlapack/interface/sygvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/symv.h"
  #include "/usr/include/xflens/cxxlapack/interface/syr.h"
  #include "/usr/include/xflens/cxxlapack/interface/syrfs.h"
  #include "/usr/include/xflens/cxxlapack/interface/sysv.h"
  #include "/usr/include/xflens/cxxlapack/interface/sysvx.h"
  #include "/usr/include/xflens/cxxlapack/interface/syswapr.h"
  #include "/usr/include/xflens/cxxlapack/interface/sytd2.h"
  #include "/usr/include/xflens/cxxlapack/interface/sytf2.h"
  #include "/usr/include/xflens/cxxlapack/interface/sytrd.h"
  #include "/usr/include/xflens/cxxlapack/interface/sytrf.h"
  #include "/usr/include/xflens/cxxlapack/interface/sytri.h"
  #include "/usr/include/xflens/cxxlapack/interface/sytri2.h"
  #include "/usr/include/xflens/cxxlapack/interface/sytri2x.h"
  #include "/usr/include/xflens/cxxlapack/interface/sytrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/sytrs2.h"
  #include "/usr/include/xflens/cxxlapack/interface/tbcon.h"
  #include "/usr/include/xflens/cxxlapack/interface/tbrfs.h"
  #include "/usr/include/xflens/cxxlapack/interface/tbtrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/tfsm.h"
  #include "/usr/include/xflens/cxxlapack/interface/tftri.h"
  #include "/usr/include/xflens/cxxlapack/interface/tfttp.h"
  #include "/usr/include/xflens/cxxlapack/interface/tfttr.h"
  #include "/usr/include/xflens/cxxlapack/interface/tgevc.h"
  #include "/usr/include/xflens/cxxlapack/interface/tgex2.h"
  #include "/usr/include/xflens/cxxlapack/interface/tgexc.h"
  #include "/usr/include/xflens/cxxlapack/interface/tgsen.h"
  #include "/usr/include/xflens/cxxlapack/interface/tgsja.h"
  #include "/usr/include/xflens/cxxlapack/interface/tgsna.h"
  #include "/usr/include/xflens/cxxlapack/interface/tgsy2.h"
  #include "/usr/include/xflens/cxxlapack/interface/tgsyl.h"
  #include "/usr/include/xflens/cxxlapack/interface/tpcon.h"
  #include "/usr/include/xflens/cxxlapack/interface/tprfs.h"
  #include "/usr/include/xflens/cxxlapack/interface/tptri.h"
  #include "/usr/include/xflens/cxxlapack/interface/tptrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/tpttf.h"
  #include "/usr/include/xflens/cxxlapack/interface/tpttr.h"
  #include "/usr/include/xflens/cxxlapack/interface/trcon.h"
  #include "/usr/include/xflens/cxxlapack/interface/trevc.h"
  #include "/usr/include/xflens/cxxlapack/interface/trexc.h"
  #include "/usr/include/xflens/cxxlapack/interface/trrfs.h"
  #include "/usr/include/xflens/cxxlapack/interface/trsen.h"
  #include "/usr/include/xflens/cxxlapack/interface/trsna.h"
  #include "/usr/include/xflens/cxxlapack/interface/trsyl.h"
  #include "/usr/include/xflens/cxxlapack/interface/trti2.h"
  #include "/usr/include/xflens/cxxlapack/interface/trtri.h"
  #include "/usr/include/xflens/cxxlapack/interface/trtrs.h"
  #include "/usr/include/xflens/cxxlapack/interface/trttf.h"
  #include "/usr/include/xflens/cxxlapack/interface/trttp.h"
  #include "/usr/include/xflens/cxxlapack/interface/tzrqf.h"
  #include "/usr/include/xflens/cxxlapack/interface/tzrzf.h"
  #include "/usr/include/xflens/cxxlapack/interface/unbdb.h"
  #include "/usr/include/xflens/cxxlapack/interface/uncsd.h"
  #include "/usr/include/xflens/cxxlapack/interface/ung2l.h"
  #include "/usr/include/xflens/cxxlapack/interface/ung2r.h"
  #include "/usr/include/xflens/cxxlapack/interface/ungbr.h"
  #include "/usr/include/xflens/cxxlapack/interface/unghr.h"
  #include "/usr/include/xflens/cxxlapack/interface/ungl2.h"
  #include "/usr/include/xflens/cxxlapack/interface/unglq.h"
  #include "/usr/include/xflens/cxxlapack/interface/ungql.h"
  #include "/usr/include/xflens/cxxlapack/interface/ungqr.h"
  #include "/usr/include/xflens/cxxlapack/interface/ungr2.h"
  #include "/usr/include/xflens/cxxlapack/interface/ungrq.h"
  #include "/usr/include/xflens/cxxlapack/interface/ungtr.h"
  #include "/usr/include/xflens/cxxlapack/interface/unm2l.h"
  #include "/usr/include/xflens/cxxlapack/interface/unm2r.h"
  #include "/usr/include/xflens/cxxlapack/interface/unmbr.h"
  #include "/usr/include/xflens/cxxlapack/interface/unmhr.h"
  #include "/usr/include/xflens/cxxlapack/interface/unml2.h"
  #include "/usr/include/xflens/cxxlapack/interface/unmlq.h"
  #include "/usr/include/xflens/cxxlapack/interface/unmql.h"
  #include "/usr/include/xflens/cxxlapack/interface/unmqr.h"
  #include "/usr/include/xflens/cxxlapack/interface/unmr2.h"
  #include "/usr/include/xflens/cxxlapack/interface/unmr3.h"
  #include "/usr/include/xflens/cxxlapack/interface/unmrq.h"
  #include "/usr/include/xflens/cxxlapack/interface/unmrz.h"
  #include "/usr/include/xflens/cxxlapack/interface/unmtr.h"
  #include "/usr/include/xflens/cxxlapack/interface/upgtr.h"
  #include "/usr/include/xflens/cxxlapack/interface/upmtr.h"
  #include "/usr/include/xflens/cxxlapack/interface/zsum1.h"
  #include "/usr/include/xflens/cxxlapack/netlib/interface/lapack.in.h"
  #include "/usr/include/xflens/cxxlapack/netlib/netlib.h"
  #include "/usr/include/xtensor-blas/xblas.hpp"
  #include "/usr/include/xtensor-blas/xblas_config.hpp"
  #include "/usr/include/xtensor-blas/xblas_config_cling.hpp"
  #include "/usr/include/xtensor-blas/xblas_utils.hpp"
  #include "/usr/include/xtensor-blas/xlapack.hpp"
  #include "/usr/include/xtensor-blas/xlinalg.hpp"

  // add namespaces
  namespace cxxblas{typedef int tmp_add_type_1;}
  cxxblas::tmp_add_type_1 tmp_add_func_1(){return 0;};
  namespace cxxblas{namespace CBLAS{typedef int tmp_add_type_2;}}
  cxxblas::CBLAS::tmp_add_type_2 tmp_add_func_2(){return 0;};
  namespace cxxlapack{typedef int tmp_add_type_3;}
  cxxlapack::tmp_add_type_3 tmp_add_func_3(){return 0;};
  namespace mpark{typedef int tmp_add_type_4;}
  mpark::tmp_add_type_4 tmp_add_func_4(){return 0;};
  namespace mpark{namespace detail{typedef int tmp_add_type_5;}}
  mpark::detail::tmp_add_type_5 tmp_add_func_5(){return 0;};
  namespace mpark{namespace detail{namespace access{typedef int tmp_add_type_6;}}}
  mpark::detail::access::tmp_add_type_6 tmp_add_func_6(){return 0;};
  namespace mpark{namespace detail{namespace hash{typedef int tmp_add_type_7;}}}
  mpark::detail::hash::tmp_add_type_7 tmp_add_func_7(){return 0;};
  namespace mpark{namespace detail{namespace visitation{typedef int tmp_add_type_8;}}}
  mpark::detail::visitation::tmp_add_type_8 tmp_add_func_8(){return 0;};
  namespace mpark{namespace lib{typedef int tmp_add_type_9;}}
  mpark::lib::tmp_add_type_9 tmp_add_func_9(){return 0;};
  namespace mpark{namespace lib{namespace cpp14{typedef int tmp_add_type_10;}}}
  mpark::lib::cpp14::tmp_add_type_10 tmp_add_func_10(){return 0;};
  namespace mpark{namespace lib{namespace cpp17{typedef int tmp_add_type_11;}}}
  mpark::lib::cpp17::tmp_add_type_11 tmp_add_func_11(){return 0;};
  namespace mpark{namespace lib{namespace cpp17{namespace detail{typedef int tmp_add_type_12;}}}}
  mpark::lib::cpp17::detail::tmp_add_type_12 tmp_add_func_12(){return 0;};
  namespace mpark{namespace lib{namespace cpp17{namespace detail{namespace swappable{typedef int tmp_add_type_13;}}}}}
  mpark::lib::cpp17::detail::swappable::tmp_add_type_13 tmp_add_func_13(){return 0;};
  namespace tcb{typedef int tmp_add_type_14;}
  tcb::tmp_add_type_14 tmp_add_func_14(){return 0;};
  namespace tcb{namespace detail{typedef int tmp_add_type_15;}}
  tcb::detail::tmp_add_type_15 tmp_add_func_15(){return 0;};
  namespace xt{typedef int tmp_add_type_16;}
  xt::tmp_add_type_16 tmp_add_func_16(){return 0;};
  namespace xt{namespace blas{typedef int tmp_add_type_17;}}
  xt::blas::tmp_add_type_17 tmp_add_func_17(){return 0;};
  namespace xt{namespace detail{typedef int tmp_add_type_18;}}
  xt::detail::tmp_add_type_18 tmp_add_func_18(){return 0;};
  namespace xt{namespace extension{typedef int tmp_add_type_19;}}
  xt::extension::tmp_add_type_19 tmp_add_func_19(){return 0;};
  namespace xt{namespace lapack{typedef int tmp_add_type_20;}}
  xt::lapack::tmp_add_type_20 tmp_add_func_20(){return 0;};
  namespace xt{namespace lapack{namespace detail{typedef int tmp_add_type_21;}}}
  xt::lapack::detail::tmp_add_type_21 tmp_add_func_21(){return 0;};
  namespace xt{namespace linalg{typedef int tmp_add_type_22;}}
  xt::linalg::tmp_add_type_22 tmp_add_func_22(){return 0;};
  namespace xt{namespace linalg{namespace detail{typedef int tmp_add_type_23;}}}
  xt::linalg::detail::tmp_add_type_23 tmp_add_func_23(){return 0;};
  namespace xt{namespace math{typedef int tmp_add_type_24;}}
  xt::math::tmp_add_type_24 tmp_add_func_24(){return 0;};
  namespace xt{namespace math{namespace detail{typedef int tmp_add_type_25;}}}
  xt::math::detail::tmp_add_type_25 tmp_add_func_25(){return 0;};
  namespace xt{namespace placeholders{typedef int tmp_add_type_26;}}
  xt::placeholders::tmp_add_type_26 tmp_add_func_26(){return 0;};
  namespace xtl{typedef int tmp_add_type_27;}
  xtl::tmp_add_type_27 tmp_add_func_27(){return 0;};
  namespace xtl{namespace detail{typedef int tmp_add_type_28;}}
  xtl::detail::tmp_add_type_28 tmp_add_func_28(){return 0;};
  namespace xtl{namespace mpl{typedef int tmp_add_type_29;}}
  xtl::mpl::tmp_add_type_29 tmp_add_func_29(){return 0;};
  namespace xtl{namespace mpl{namespace detail{typedef int tmp_add_type_30;}}}
  xtl::mpl::detail::tmp_add_type_30 tmp_add_func_30(){return 0;};
  namespace xt{namespace __anon2e93dc5a5f11{typedef int tmp_add_type_31;}}
  xt::__anon2e93dc5a5f11::tmp_add_type_31 tmp_add_func_31(){return 0;};
  namespace xt{namespace alloc_tracking{typedef int tmp_add_type_32;}}
  xt::alloc_tracking::tmp_add_type_32 tmp_add_func_32(){return 0;};
  namespace xt{namespace check_policy{typedef int tmp_add_type_33;}}
  xt::check_policy::tmp_add_type_33 tmp_add_func_33(){return 0;};
  namespace xt{namespace convolve_mode{typedef int tmp_add_type_34;}}
  xt::convolve_mode::tmp_add_type_34 tmp_add_func_34(){return 0;};
  namespace xt{namespace evaluation_strategy{typedef int tmp_add_type_35;}}
  xt::evaluation_strategy::tmp_add_type_35 tmp_add_func_35(){return 0;};
  namespace xt{namespace linalg{namespace xblas_detail{typedef int tmp_add_type_36;}}}
  xt::linalg::xblas_detail::tmp_add_type_36 tmp_add_func_36(){return 0;};
  namespace xt{namespace print_options{typedef int tmp_add_type_37;}}
  xt::print_options::tmp_add_type_37 tmp_add_func_37(){return 0;};
  namespace xt{namespace strided_assign_detail{typedef int tmp_add_type_38;}}
  xt::strided_assign_detail::tmp_add_type_38 tmp_add_func_38(){return 0;};
  namespace xt{namespace xstrided_view_detail{typedef int tmp_add_type_39;}}
  xt::xstrided_view_detail::tmp_add_type_39 tmp_add_func_39(){return 0;};
  namespace xt{namespace xview_detail{typedef int tmp_add_type_40;}}
  xt::xview_detail::tmp_add_type_40 tmp_add_func_40(){return 0;};
  namespace xt{namespace xview_semantic_detail{typedef int tmp_add_type_41;}}
  xt::xview_semantic_detail::tmp_add_type_41 tmp_add_func_41(){return 0;};
  namespace xt_simd{typedef int tmp_add_type_42;}
  xt_simd::tmp_add_type_42 tmp_add_func_42(){return 0;};
  namespace xtl{namespace detail_bitset{typedef int tmp_add_type_43;}}
  xtl::detail_bitset::tmp_add_type_43 tmp_add_func_43(){return 0;};
  namespace xtl{namespace traits_detail{typedef int tmp_add_type_44;}}
  xtl::traits_detail::tmp_add_type_44 tmp_add_func_44(){return 0;};

  // add classes
  _G_fpos64_t* tmp_add_class_0;
  _G_fpos_t* tmp_add_class_1;
  _IO_cookie_io_functions_t* tmp_add_class_2;

The GCC parameters:
  gcc -fdump-lang-raw -fkeep-inline-functions -c -x c++ -fpermissive -w "/tmp/2uLGuiS2Gn/dump1.h"

In file included from /usr/include/xflens/cxxblas/auxiliary/complex.h:36,
                 from /usr/include/xflens/cxxblas/auxiliary/auxiliary.h:36,
                 from /tmp/2uLGuiS2Gn/dump1.h:12:
/usr/include/xflens/cxxblas/typedefs.h:42:14: error: ‘complex’ in namespace ‘std’ does not name a template type
   42 | typedef std::complex<float>     ComplexFloat;
      |              ^~~~~~~
/usr/include/xflens/cxxblas/typedefs.h:1:1: note: ‘std::complex’ is defined in header ‘<complex>’; did you forget to ‘#include <complex>’?
  +++ |+#include <complex>
    1 | /*
/usr/include/xflens/cxxblas/typedefs.h:43:14: error: ‘complex’ in namespace ‘std’ does not name a template type
   43 | typedef std::complex<double>    ComplexDouble;
      |              ^~~~~~~
/usr/include/xflens/cxxblas/typedefs.h:43:9: note: ‘std::complex’ is defined in header ‘<complex>’; did you forget to ‘#include <complex>’?
   43 | typedef std::complex<double>    ComplexDouble;
      |         ^~~
In file included from /usr/include/xflens/cxxblas/auxiliary/complex.h:37:
/usr/include/xflens/cxxblas/auxiliary/restrictto.h:50:27: error: ‘remove_reference’ in namespace ‘std’ does not name a template type
   50 |     typedef typename std::remove_reference<T>::type Type;
      |                           ^~~~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/auxiliary/restrictto.h:50:43: error: expected unqualified-id before ‘<’ token
   50 |     typedef typename std::remove_reference<T>::type Type;
      |                                           ^
/usr/include/xflens/cxxblas/auxiliary/complex.h:43:30: error: ‘is_arithmetic’ is not a member of ‘std’
   43 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                              ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:43:45: error: wrong number of template arguments (1, should be 2)
   43 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                             ^
/usr/include/xflens/cxxblas/auxiliary/restrictto.h:43:8: note: provided for ‘template<bool b, class T> struct cxxblas::RestrictTo’
   43 | struct RestrictTo
      |        ^~~~~~~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:43:46: error: expected identifier before ‘::’ token
   43 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                              ^~
/usr/include/xflens/cxxblas/auxiliary/complex.h:43:48: error: declaration of ‘value’ not in a namespace surrounding ‘::’
   43 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                                ^~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:43:48: error: ‘value’ should have been declared inside ‘::’
/usr/include/xflens/cxxblas/auxiliary/complex.h:43:53: error: expected ‘;’ before ‘,’ token
   43 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                                     ^
      |                                                     ;
/usr/include/xflens/cxxblas/auxiliary/complex.h:49:30: error: ‘is_arithmetic’ is not a member of ‘std’
   49 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                              ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:49:45: error: wrong number of template arguments (1, should be 2)
   49 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                             ^
/usr/include/xflens/cxxblas/auxiliary/restrictto.h:43:8: note: provided for ‘template<bool b, class T> struct cxxblas::RestrictTo’
   43 | struct RestrictTo
      |        ^~~~~~~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:49:46: error: expected identifier before ‘::’ token
   49 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                              ^~
/usr/include/xflens/cxxblas/auxiliary/complex.h:49:48: error: declaration of ‘value’ not in a namespace surrounding ‘::’
   49 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                                ^~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:49:48: error: ‘value’ should have been declared inside ‘::’
/usr/include/xflens/cxxblas/auxiliary/complex.h:49:48: error: redeclaration of ‘template<class T> int value’
/usr/include/xflens/cxxblas/auxiliary/complex.h:43:46: note: previous declaration ‘template<class T> int value<T>’
   43 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                              ^~
/usr/include/xflens/cxxblas/auxiliary/complex.h:49:53: error: expected ‘;’ before ‘,’ token
   49 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                                     ^
      |                                                     ;
/usr/include/xflens/cxxblas/auxiliary/complex.h:55:30: error: ‘is_arithmetic’ is not a member of ‘std’
   55 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                              ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:55:45: error: wrong number of template arguments (1, should be 2)
   55 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                             ^
/usr/include/xflens/cxxblas/auxiliary/restrictto.h:43:8: note: provided for ‘template<bool b, class T> struct cxxblas::RestrictTo’
   43 | struct RestrictTo
      |        ^~~~~~~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:55:46: error: expected identifier before ‘::’ token
   55 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                              ^~
/usr/include/xflens/cxxblas/auxiliary/complex.h:55:48: error: declaration of ‘value’ not in a namespace surrounding ‘::’
   55 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                                ^~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:55:48: error: ‘value’ should have been declared inside ‘::’
/usr/include/xflens/cxxblas/auxiliary/complex.h:55:48: error: redeclaration of ‘template<class T> int value’
/usr/include/xflens/cxxblas/auxiliary/complex.h:43:46: note: previous declaration ‘template<class T> int value<T>’
   43 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                              ^~
/usr/include/xflens/cxxblas/auxiliary/complex.h:55:53: error: expected ‘;’ before ‘,’ token
   55 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                                     ^
      |                                                     ;
/usr/include/xflens/cxxblas/auxiliary/complex.h:61:30: error: ‘is_arithmetic’ is not a member of ‘std’
   61 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                              ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:61:45: error: wrong number of template arguments (1, should be 2)
   61 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                             ^
/usr/include/xflens/cxxblas/auxiliary/restrictto.h:43:8: note: provided for ‘template<bool b, class T> struct cxxblas::RestrictTo’
   43 | struct RestrictTo
      |        ^~~~~~~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:61:46: error: expected identifier before ‘::’ token
   61 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                              ^~
/usr/include/xflens/cxxblas/auxiliary/complex.h:61:48: error: declaration of ‘value’ not in a namespace surrounding ‘::’
   61 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                                ^~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:61:48: error: ‘value’ should have been declared inside ‘::’
/usr/include/xflens/cxxblas/auxiliary/complex.h:61:48: error: redeclaration of ‘template<class T> int value’
/usr/include/xflens/cxxblas/auxiliary/complex.h:43:46: note: previous declaration ‘template<class T> int value<T>’
   43 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                              ^~
/usr/include/xflens/cxxblas/auxiliary/complex.h:61:53: error: expected ‘;’ before ‘,’ token
   61 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                                     ^
      |                                                     ;
/usr/include/xflens/cxxblas/auxiliary/complex.h:67:30: error: ‘is_arithmetic’ is not a member of ‘std’
   67 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                              ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:67:45: error: wrong number of template arguments (1, should be 2)
   67 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                             ^
/usr/include/xflens/cxxblas/auxiliary/restrictto.h:43:8: note: provided for ‘template<bool b, class T> struct cxxblas::RestrictTo’
   43 | struct RestrictTo
      |        ^~~~~~~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:67:46: error: expected identifier before ‘::’ token
   67 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                              ^~
/usr/include/xflens/cxxblas/auxiliary/complex.h:67:48: error: declaration of ‘value’ not in a namespace surrounding ‘::’
   67 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                                ^~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:67:48: error: ‘value’ should have been declared inside ‘::’
/usr/include/xflens/cxxblas/auxiliary/complex.h:67:48: error: redeclaration of ‘template<class T> int value’
/usr/include/xflens/cxxblas/auxiliary/complex.h:43:46: note: previous declaration ‘template<class T> int value<T>’
   43 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                              ^~
/usr/include/xflens/cxxblas/auxiliary/complex.h:67:53: error: expected ‘;’ before ‘,’ token
   67 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                                     ^
      |                                                     ;
/usr/include/xflens/cxxblas/auxiliary/complex.h:73:30: error: ‘is_arithmetic’ is not a member of ‘std’
   73 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                              ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:73:45: error: wrong number of template arguments (1, should be 2)
   73 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                             ^
/usr/include/xflens/cxxblas/auxiliary/restrictto.h:43:8: note: provided for ‘template<bool b, class T> struct cxxblas::RestrictTo’
   43 | struct RestrictTo
      |        ^~~~~~~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:73:46: error: expected identifier before ‘::’ token
   73 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                              ^~
/usr/include/xflens/cxxblas/auxiliary/complex.h:73:48: error: declaration of ‘value’ not in a namespace surrounding ‘::’
   73 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                                ^~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:73:48: error: ‘value’ should have been declared inside ‘::’
/usr/include/xflens/cxxblas/auxiliary/complex.h:73:48: error: redeclaration of ‘template<class T> int value’
/usr/include/xflens/cxxblas/auxiliary/complex.h:43:46: note: previous declaration ‘template<class T> int value<T>’
   43 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                              ^~
/usr/include/xflens/cxxblas/auxiliary/complex.h:73:53: error: expected ‘;’ before ‘,’ token
   73 |     cxxblas::RestrictTo<std::is_arithmetic<T>::value,
      |                                                     ^
      |                                                     ;
/usr/include/xflens/cxxblas/auxiliary/complex.h:79:21: error: ‘complex’ in namespace ‘std’ does not name a template type
   79 |     abs1(const std::complex<T> &x);
      |                     ^~~~~~~
/usr/include/xflens/cxxblas/auxiliary/complex.h:38:1: note: ‘std::complex’ is defined in header ‘<complex>’; did you forget to ‘#include <complex>’?
   37 | #include "xflens/cxxblas/auxiliary/restrictto.h"
  +++ |+#include <complex>
   38 | 
/usr/include/xflens/cxxblas/auxiliary/complex.h:79:28: error: expected ‘,’ or ‘...’ before ‘<’ token
   79 |     abs1(const std::complex<T> &x);
      |                            ^
In file included from /usr/include/xflens/cxxblas/level1/level1.tcc:36,
                 from /usr/include/xflens/cxxblas/cxxblas.tcc:39,
                 from /usr/include/xflens/cxxblas/cxxblas.cxx:37,
                 from /usr/include/xtensor-blas/xblas.hpp:24,
                 from /tmp/2uLGuiS2Gn/dump1.h:697:
/usr/include/xflens/cxxblas/level1/asum.tcc:90:25: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
   90 | asum(IndexType n, const ComplexFloat *x, IndexType incX, float &absSum)
      |                         ^~~~~~~~~~~~
      |                         ComplexTrait
/usr/include/xflens/cxxblas/level1/asum.tcc:100:25: error: ‘ComplexDouble’ does not name a type
  100 | asum(IndexType n, const ComplexDouble *x, IndexType incX, double &absSum)
      |                         ^~~~~~~~~~~~~
In file included from /usr/include/xflens/cxxblas/level1/level1.tcc:37:
/usr/include/xflens/cxxblas/level1/axpy.tcc:93:25: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
   93 | axpy(IndexType n, const ComplexFloat &alpha,
      |                         ^~~~~~~~~~~~
      |                         ComplexTrait
/usr/include/xflens/cxxblas/level1/axpy.tcc:94:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
   94 |      const ComplexFloat *x, IndexType incX,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level1/axpy.tcc:95:6: error: ‘ComplexFloat’ has not been declared
   95 |      ComplexFloat *y, IndexType incY)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/axpy.tcc:107:25: error: ‘ComplexDouble’ does not name a type
  107 | axpy(IndexType n, const ComplexDouble &alpha,
      |                         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/axpy.tcc:108:12: error: ‘ComplexDouble’ does not name a type
  108 |      const ComplexDouble *x, IndexType incX,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/axpy.tcc:109:6: error: ‘ComplexDouble’ has not been declared
  109 |      ComplexDouble *y, IndexType incY)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/axpy.tcc:107:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::axpy(IndexType, const int&, const int*, IndexType, int*, IndexType)’
  107 | axpy(IndexType n, const ComplexDouble &alpha,
      | ^~~~
/usr/include/xflens/cxxblas/level1/axpy.tcc:93:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::axpy(IndexType, const int&, const int*, IndexType, int*, IndexType)’ previously declared here
   93 | axpy(IndexType n, const ComplexFloat &alpha,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level1/level1.tcc:38:
/usr/include/xflens/cxxblas/level1/copy.tcc:89:25: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
   89 | copy(IndexType n, const ComplexFloat *x, IndexType incX,
      |                         ^~~~~~~~~~~~
      |                         ComplexTrait
/usr/include/xflens/cxxblas/level1/copy.tcc:90:6: error: ‘ComplexFloat’ has not been declared
   90 |      ComplexFloat *y, IndexType incY)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/copy.tcc:102:25: error: ‘ComplexDouble’ does not name a type
  102 | copy(IndexType n, const ComplexDouble *x, IndexType incX,
      |                         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/copy.tcc:103:6: error: ‘ComplexDouble’ has not been declared
  103 |      ComplexDouble *y, IndexType incY)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/copy.tcc:102:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::copy(IndexType, const int*, IndexType, int*, IndexType)’
  102 | copy(IndexType n, const ComplexDouble *x, IndexType incX,
      | ^~~~
/usr/include/xflens/cxxblas/level1/copy.tcc:89:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::copy(IndexType, const int*, IndexType, int*, IndexType)’ previously declared here
   89 | copy(IndexType n, const ComplexFloat *x, IndexType incX,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level1/level1.tcc:39:
/usr/include/xflens/cxxblas/level1/dot.tcc:159:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  159 |      const ComplexFloat  *x, IndexType incX,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level1/dot.tcc:160:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  160 |      const ComplexFloat  *y, IndexType incY,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level1/dot.tcc:161:6: error: ‘ComplexFloat’ has not been declared
  161 |      ComplexFloat &result)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/dot.tcc:175:11: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  175 |     const ComplexFloat  *x, IndexType incX,
      |           ^~~~~~~~~~~~
      |           ComplexTrait
/usr/include/xflens/cxxblas/level1/dot.tcc:176:11: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  176 |     const ComplexFloat  *y, IndexType incY,
      |           ^~~~~~~~~~~~
      |           ComplexTrait
/usr/include/xflens/cxxblas/level1/dot.tcc:177:5: error: ‘ComplexFloat’ has not been declared
  177 |     ComplexFloat &result)
      |     ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/dot.tcc:190:12: error: ‘ComplexDouble’ does not name a type
  190 |      const ComplexDouble *x, IndexType incX,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/dot.tcc:191:12: error: ‘ComplexDouble’ does not name a type
  191 |      const ComplexDouble *y, IndexType incY,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/dot.tcc:192:6: error: ‘ComplexDouble’ has not been declared
  192 |      ComplexDouble &result)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/dot.tcc:189:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::dotu(IndexType, const int*, IndexType, const int*, IndexType, int&)’
  189 | dotu(IndexType n,
      | ^~~~
/usr/include/xflens/cxxblas/level1/dot.tcc:158:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::dotu(IndexType, const int*, IndexType, const int*, IndexType, int&)’ previously declared here
  158 | dotu(IndexType n,
      | ^~~~
/usr/include/xflens/cxxblas/level1/dot.tcc:205:11: error: ‘ComplexDouble’ does not name a type
  205 |     const ComplexDouble *x, IndexType incX,
      |           ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/dot.tcc:206:11: error: ‘ComplexDouble’ does not name a type
  206 |     const ComplexDouble *y, IndexType incY,
      |           ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/dot.tcc:207:5: error: ‘ComplexDouble’ has not been declared
  207 |     ComplexDouble &result)
      |     ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/dot.tcc:204:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::dot(IndexType, const int*, IndexType, const int*, IndexType, int&)’
  204 | dot(IndexType n,
      | ^~~
/usr/include/xflens/cxxblas/level1/dot.tcc:174:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::dot(IndexType, const int*, IndexType, const int*, IndexType, int&)’ previously declared here
  174 | dot(IndexType n,
      | ^~~
In file included from /usr/include/xflens/cxxblas/level1/level1.tcc:40:
/usr/include/xflens/cxxblas/level1/iamax.tcc:128:26: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  128 | iamax(IndexType n, const ComplexFloat *x, IndexType incX, IndexType &i)
      |                          ^~~~~~~~~~~~
      |                          ComplexTrait
/usr/include/xflens/cxxblas/level1/iamax.tcc:138:26: error: ‘ComplexDouble’ does not name a type
  138 | iamax(IndexType n, const ComplexDouble *x, IndexType incX, IndexType &i)
      |                          ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/iamax.tcc:138:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::iamax(IndexType, const int*, IndexType, IndexType&)’
  138 | iamax(IndexType n, const ComplexDouble *x, IndexType incX, IndexType &i)
      | ^~~~~
/usr/include/xflens/cxxblas/level1/iamax.tcc:128:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::iamax(IndexType, const int*, IndexType, IndexType&)’ previously declared here
  128 | iamax(IndexType n, const ComplexFloat *x, IndexType incX, IndexType &i)
      | ^~~~~
In file included from /usr/include/xflens/cxxblas/level1/level1.tcc:41:
/usr/include/xflens/cxxblas/level1/nrm2.tcc:162:25: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  162 | nrm2(IndexType n, const ComplexFloat *x, IndexType incX, float &norm)
      |                         ^~~~~~~~~~~~
      |                         ComplexTrait
/usr/include/xflens/cxxblas/level1/nrm2.tcc:172:25: error: ‘ComplexDouble’ does not name a type
  172 | nrm2(IndexType n, const ComplexDouble *x, IndexType incX, double &norm)
      |                         ^~~~~~~~~~~~~
In file included from /usr/include/xflens/cxxblas/level1/level1.tcc:44:
/usr/include/xflens/cxxblas/level1/scal.tcc:112:25: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  112 | scal(IndexType n, const ComplexFloat &alpha, ComplexFloat *x, IndexType incX)
      |                         ^~~~~~~~~~~~
      |                         ComplexTrait
/usr/include/xflens/cxxblas/level1/scal.tcc:112:46: error: ‘ComplexFloat’ has not been declared
  112 | scal(IndexType n, const ComplexFloat &alpha, ComplexFloat *x, IndexType incX)
      |                                              ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/scal.tcc:123:25: error: ‘ComplexDouble’ does not name a type
  123 | scal(IndexType n, const ComplexDouble &alpha, ComplexDouble *x, IndexType incX)
      |                         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/scal.tcc:123:47: error: ‘ComplexDouble’ has not been declared
  123 | scal(IndexType n, const ComplexDouble &alpha, ComplexDouble *x, IndexType incX)
      |                                               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/scal.tcc:123:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::scal(IndexType, const int&, int*, IndexType)’
  123 | scal(IndexType n, const ComplexDouble &alpha, ComplexDouble *x, IndexType incX)
      | ^~~~
/usr/include/xflens/cxxblas/level1/scal.tcc:112:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::scal(IndexType, const int&, int*, IndexType)’ previously declared here
  112 | scal(IndexType n, const ComplexFloat &alpha, ComplexFloat *x, IndexType incX)
      | ^~~~
/usr/include/xflens/cxxblas/level1/scal.tcc:134:32: error: ‘ComplexFloat’ has not been declared
  134 | scal(IndexType n, float alpha, ComplexFloat *x, IndexType incX)
      |                                ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/scal.tcc:144:33: error: ‘ComplexDouble’ has not been declared
  144 | scal(IndexType n, double alpha, ComplexDouble *x, IndexType incX)
      |                                 ^~~~~~~~~~~~~
In file included from /usr/include/xflens/cxxblas/level1/level1.tcc:45:
/usr/include/xflens/cxxblas/level1/swap.tcc:94:6: error: ‘ComplexFloat’ has not been declared
   94 |      ComplexFloat *x, IndexType incX,
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/swap.tcc:95:6: error: ‘ComplexFloat’ has not been declared
   95 |      ComplexFloat *y, IndexType incY)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/swap.tcc:107:6: error: ‘ComplexDouble’ has not been declared
  107 |      ComplexDouble *x, IndexType incX,
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/swap.tcc:108:6: error: ‘ComplexDouble’ has not been declared
  108 |      ComplexDouble *y, IndexType incY)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1/swap.tcc:106:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::swap(IndexType, int*, IndexType, int*, IndexType)’
  106 | swap(IndexType n,
      | ^~~~
/usr/include/xflens/cxxblas/level1/swap.tcc:93:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::swap(IndexType, int*, IndexType, int*, IndexType)’ previously declared here
   93 | swap(IndexType n,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level1extensions/level1extensions.tcc:39,
                 from /usr/include/xflens/cxxblas/cxxblas.tcc:40:
/usr/include/xflens/cxxblas/level1extensions/axpby.tcc:79:26: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
   79 | axpby(IndexType n, const ComplexFloat &alpha,
      |                          ^~~~~~~~~~~~
      |                          ComplexTrait
/usr/include/xflens/cxxblas/level1extensions/axpby.tcc:80:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
   80 |       const ComplexFloat *x, IndexType incX,
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level1extensions/axpby.tcc:81:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
   81 |       const ComplexFloat &beta, ComplexFloat *y, IndexType incY)
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level1extensions/axpby.tcc:81:33: error: ‘ComplexFloat’ has not been declared
   81 |       const ComplexFloat &beta, ComplexFloat *y, IndexType incY)
      |                                 ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1extensions/axpby.tcc:94:26: error: ‘ComplexDouble’ does not name a type
   94 | axpby(IndexType n, const ComplexDouble &alpha,
      |                          ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1extensions/axpby.tcc:95:13: error: ‘ComplexDouble’ does not name a type
   95 |       const ComplexDouble *x, IndexType incX,
      |             ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1extensions/axpby.tcc:96:14: error: ‘ComplexDouble’ does not name a type
   96 |        const ComplexDouble &beta, ComplexDouble *y, IndexType incY)
      |              ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1extensions/axpby.tcc:96:35: error: ‘ComplexDouble’ has not been declared
   96 |        const ComplexDouble &beta, ComplexDouble *y, IndexType incY)
      |                                   ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level1extensions/axpby.tcc:94:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::axpby(IndexType, const int&, const int*, IndexType, const int&, int*, IndexType)’
   94 | axpby(IndexType n, const ComplexDouble &alpha,
      | ^~~~~
/usr/include/xflens/cxxblas/level1extensions/axpby.tcc:79:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::axpby(IndexType, const int&, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
   79 | axpby(IndexType n, const ComplexFloat &alpha,
      | ^~~~~
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:36,
                 from /usr/include/xflens/cxxblas/cxxblas.tcc:41:
/usr/include/xflens/cxxblas/level2/gbmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gbmv(StorageOrder, Transpose, IndexType, IndexType, IndexType, IndexType, float, const float*, IndexType, const float*, IndexType, float, float*, IndexType)’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:217:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  217 |     cblas_sgbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(trans),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
In file included from /usr/include/xflens/cxxblas/cxxblas.tcc:37:
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:217:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:217:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:217:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:217:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:217:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/gbmv.tcc:217:64: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  217 |     cblas_sgbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(trans),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:217:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:217:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:217:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:217:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:217:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/gbmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gbmv(StorageOrder, Transpose, IndexType, IndexType, IndexType, IndexType, double, const double*, IndexType, const double*, IndexType, double, double*, IndexType)’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:240:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  240 |     cblas_dgbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(trans),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:240:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:240:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:240:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:240:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:240:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/gbmv.tcc:240:64: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  240 |     cblas_dgbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(trans),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:240:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:240:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:240:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:240:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:240:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/gbmv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:255:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  255 |      const ComplexFloat &alpha,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/gbmv.tcc:256:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  256 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/gbmv.tcc:257:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  257 |      const ComplexFloat *x, IndexType incX,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/gbmv.tcc:258:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  258 |      const ComplexFloat &beta,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/gbmv.tcc:259:6: error: ‘ComplexFloat’ has not been declared
  259 |      ComplexFloat *y, IndexType incY)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/gbmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gbmv(StorageOrder, Transpose, IndexType, IndexType, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:279:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  279 |     cblas_cgbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(trans),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:279:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:279:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:279:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:279:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:279:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/gbmv.tcc:279:64: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  279 |     cblas_cgbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(trans),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:279:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:279:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:279:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:279:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:279:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/gbmv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/gbmv.tcc:294:12: error: ‘ComplexDouble’ does not name a type
  294 |      const ComplexDouble &alpha,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/gbmv.tcc:295:12: error: ‘ComplexDouble’ does not name a type
  295 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/gbmv.tcc:296:12: error: ‘ComplexDouble’ does not name a type
  296 |      const ComplexDouble *x, IndexType incX,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/gbmv.tcc:297:12: error: ‘ComplexDouble’ does not name a type
  297 |      const ComplexDouble &beta,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/gbmv.tcc:298:6: error: ‘ComplexDouble’ has not been declared
  298 |      ComplexDouble *y, IndexType incY)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/gbmv.tcc:291:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gbmv(StorageOrder, Transpose, IndexType, IndexType, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’
  291 | gbmv(StorageOrder order, Transpose trans,
      | ^~~~
/usr/include/xflens/cxxblas/level2/gbmv.tcc:252:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gbmv(StorageOrder, Transpose, IndexType, IndexType, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
  252 | gbmv(StorageOrder order, Transpose trans,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:37:
/usr/include/xflens/cxxblas/level2/gemv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gemv(StorageOrder, Transpose, IndexType, IndexType, float, const float*, IndexType, const float*, IndexType, float, float*, IndexType)’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:174:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  174 |     cblas_sgemv(CBLAS::getCblasType(order), CBLAS::getCblasType(trans),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:174:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:174:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:174:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:174:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:174:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/gemv.tcc:174:64: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  174 |     cblas_sgemv(CBLAS::getCblasType(order), CBLAS::getCblasType(trans),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:174:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:174:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:174:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:174:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:174:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/gemv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gemv(StorageOrder, Transpose, IndexType, IndexType, double, const double*, IndexType, const double*, IndexType, double, double*, IndexType)’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:196:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  196 |     cblas_dgemv(CBLAS::getCblasType(order), CBLAS::getCblasType(trans),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:196:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:196:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:196:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:196:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:196:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/gemv.tcc:196:64: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  196 |     cblas_dgemv(CBLAS::getCblasType(order), CBLAS::getCblasType(trans),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:196:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:196:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:196:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:196:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:196:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/gemv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/gemv.tcc:210:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  210 |      const ComplexFloat &alpha,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/gemv.tcc:211:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  211 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/gemv.tcc:212:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  212 |      const ComplexFloat *x, IndexType incX,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/gemv.tcc:213:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  213 |      const ComplexFloat &beta,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/gemv.tcc:214:6: error: ‘ComplexFloat’ has not been declared
  214 |      ComplexFloat *y, IndexType incY)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/gemv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gemv(StorageOrder, Transpose, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:235:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  235 |     cblas_cgemv(CBLAS::getCblasType(order), CBLAS::getCblasType(trans),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:235:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:235:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:235:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:235:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:235:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/gemv.tcc:235:64: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  235 |     cblas_cgemv(CBLAS::getCblasType(order), CBLAS::getCblasType(trans),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:235:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:235:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:235:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:235:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/gemv.tcc:235:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/gemv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/gemv.tcc:249:12: error: ‘ComplexDouble’ does not name a type
  249 |      const ComplexDouble &alpha,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/gemv.tcc:250:12: error: ‘ComplexDouble’ does not name a type
  250 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/gemv.tcc:251:12: error: ‘ComplexDouble’ does not name a type
  251 |      const ComplexDouble *x, IndexType incX,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/gemv.tcc:252:12: error: ‘ComplexDouble’ does not name a type
  252 |      const ComplexDouble &beta,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/gemv.tcc:253:6: error: ‘ComplexDouble’ has not been declared
  253 |      ComplexDouble *y, IndexType incY)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/gemv.tcc:247:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gemv(StorageOrder, Transpose, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’
  247 | gemv(StorageOrder order, Transpose trans,
      | ^~~~
/usr/include/xflens/cxxblas/level2/gemv.tcc:208:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gemv(StorageOrder, Transpose, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
  208 | gemv(StorageOrder order, Transpose trans,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:38:
/usr/include/xflens/cxxblas/level2/ger.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::ger(StorageOrder, IndexType, IndexType, const float&, const float*, IndexType, const float*, IndexType, float*, IndexType)’:
/usr/include/xflens/cxxblas/level2/ger.tcc:169:35: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  169 |     cblas_sger(CBLAS::getCblasType(order),
      |                ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:169:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:169:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:169:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:169:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:169:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/ger.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::ger(StorageOrder, IndexType, IndexType, const double&, const double*, IndexType, const double*, IndexType, double*, IndexType)’:
/usr/include/xflens/cxxblas/level2/ger.tcc:189:35: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  189 |     cblas_dger(CBLAS::getCblasType(order),
      |                ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:189:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:189:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:189:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:189:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:189:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/ger.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/ger.tcc:202:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  202 |      const ComplexFloat &alpha,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/ger.tcc:203:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  203 |      const ComplexFloat *x, IndexType incX,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/ger.tcc:204:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  204 |      const ComplexFloat *y, IndexType incY,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/ger.tcc:205:6: error: ‘ComplexFloat’ has not been declared
  205 |      ComplexFloat *A, IndexType ldA)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/ger.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::geru(StorageOrder, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/ger.tcc:209:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  209 |     cblas_cgeru(CBLAS::getCblasType(order),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:209:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:209:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:209:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:209:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:209:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/ger.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/ger.tcc:222:12: error: ‘ComplexDouble’ does not name a type
  222 |      const ComplexDouble &alpha,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/ger.tcc:223:12: error: ‘ComplexDouble’ does not name a type
  223 |      const ComplexDouble *x, IndexType incX,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/ger.tcc:224:12: error: ‘ComplexDouble’ does not name a type
  224 |      const ComplexDouble *y, IndexType incY,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/ger.tcc:225:6: error: ‘ComplexDouble’ has not been declared
  225 |      ComplexDouble *A, IndexType ldA)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/ger.tcc:220:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::geru(StorageOrder, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, int*, IndexType)’
  220 | geru(StorageOrder order,
      | ^~~~
/usr/include/xflens/cxxblas/level2/ger.tcc:200:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::geru(StorageOrder, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, int*, IndexType)’ previously declared here
  200 | geru(StorageOrder order,
      | ^~~~
/usr/include/xflens/cxxblas/level2/ger.tcc:242:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  242 |      const ComplexFloat &alpha,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/ger.tcc:243:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  243 |      const ComplexFloat *x, IndexType incX,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/ger.tcc:244:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  244 |      const ComplexFloat *y, IndexType incY,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/ger.tcc:245:6: error: ‘ComplexFloat’ has not been declared
  245 |      ComplexFloat *A, IndexType ldA)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/ger.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gerc(StorageOrder, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/ger.tcc:249:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  249 |     cblas_cgerc(CBLAS::getCblasType(order),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:249:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:249:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:249:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:249:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/ger.tcc:249:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/ger.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/ger.tcc:262:12: error: ‘ComplexDouble’ does not name a type
  262 |      const ComplexDouble &alpha,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/ger.tcc:263:12: error: ‘ComplexDouble’ does not name a type
  263 |      const ComplexDouble *x, IndexType incX,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/ger.tcc:264:12: error: ‘ComplexDouble’ does not name a type
  264 |      const ComplexDouble *y, IndexType incY,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/ger.tcc:265:6: error: ‘ComplexDouble’ has not been declared
  265 |      ComplexDouble *A, IndexType ldA)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/ger.tcc:260:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gerc(StorageOrder, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, int*, IndexType)’
  260 | gerc(StorageOrder order,
      | ^~~~
/usr/include/xflens/cxxblas/level2/ger.tcc:240:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gerc(StorageOrder, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, int*, IndexType)’ previously declared here
  240 | gerc(StorageOrder order,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:39:
/usr/include/xflens/cxxblas/level2/hbmv.tcc:175:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  175 |      const ComplexFloat &alpha,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/hbmv.tcc:176:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  176 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/hbmv.tcc:177:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  177 |      const ComplexFloat *x, IndexType incX,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/hbmv.tcc:178:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  178 |      const ComplexFloat &beta,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/hbmv.tcc:179:6: error: ‘ComplexFloat’ has not been declared
  179 |      ComplexFloat *y, IndexType incY)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hbmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hbmv(StorageOrder, Transpose, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/hbmv.tcc:183:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  183 |     cblas_chbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(trans),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hbmv.tcc:183:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hbmv.tcc:183:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hbmv.tcc:183:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hbmv.tcc:183:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hbmv.tcc:183:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/hbmv.tcc:183:64: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  183 |     cblas_chbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(trans),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/hbmv.tcc:183:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/hbmv.tcc:183:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/hbmv.tcc:183:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/hbmv.tcc:183:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/hbmv.tcc:183:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/hbmv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/hbmv.tcc:197:12: error: ‘ComplexDouble’ does not name a type
  197 |      const ComplexDouble &alpha,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hbmv.tcc:198:12: error: ‘ComplexDouble’ does not name a type
  198 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hbmv.tcc:199:12: error: ‘ComplexDouble’ does not name a type
  199 |      const ComplexDouble *x, IndexType incX,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hbmv.tcc:200:12: error: ‘ComplexDouble’ does not name a type
  200 |      const ComplexDouble &beta,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hbmv.tcc:201:6: error: ‘ComplexDouble’ has not been declared
  201 |      ComplexDouble *y, IndexType incY)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hbmv.tcc:195:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hbmv(StorageOrder, Transpose, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’
  195 | hbmv(StorageOrder order, Transpose trans,
      | ^~~~
/usr/include/xflens/cxxblas/level2/hbmv.tcc:173:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hbmv(StorageOrder, Transpose, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
  173 | hbmv(StorageOrder order, Transpose trans,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:40:
/usr/include/xflens/cxxblas/level2/hemv.tcc:140:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  140 |      const ComplexFloat &alpha,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/hemv.tcc:141:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  141 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/hemv.tcc:142:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  142 |      const ComplexFloat *x, IndexType incX,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/hemv.tcc:143:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  143 |      const ComplexFloat &beta,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/hemv.tcc:144:6: error: ‘ComplexFloat’ has not been declared
  144 |      ComplexFloat *y, IndexType incY)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hemv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hemv(StorageOrder, StorageUpLo, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/hemv.tcc:148:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  148 |     cblas_chemv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo), n,
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hemv.tcc:148:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hemv.tcc:148:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hemv.tcc:148:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hemv.tcc:148:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hemv.tcc:148:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/hemv.tcc:148:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  148 |     cblas_chemv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo), n,
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hemv.tcc:148:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hemv.tcc:148:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hemv.tcc:148:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hemv.tcc:148:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hemv.tcc:148:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/hemv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/hemv.tcc:161:12: error: ‘ComplexDouble’ does not name a type
  161 |      const ComplexDouble &alpha,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hemv.tcc:162:12: error: ‘ComplexDouble’ does not name a type
  162 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hemv.tcc:163:12: error: ‘ComplexDouble’ does not name a type
  163 |      const ComplexDouble *x, IndexType incX,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hemv.tcc:164:12: error: ‘ComplexDouble’ does not name a type
  164 |      const ComplexDouble &beta,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hemv.tcc:165:6: error: ‘ComplexDouble’ has not been declared
  165 |      ComplexDouble *y, IndexType incY)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hemv.tcc:159:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hemv(StorageOrder, StorageUpLo, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’
  159 | hemv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
/usr/include/xflens/cxxblas/level2/hemv.tcc:138:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hemv(StorageOrder, StorageUpLo, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
  138 | hemv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:41:
/usr/include/xflens/cxxblas/level2/her.tcc:118:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  118 |       const ComplexFloat *x, IndexType incX,
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level2/her.tcc:119:7: error: ‘ComplexFloat’ has not been declared
  119 |       ComplexFloat *A, IndexType ldA)
      |       ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/her.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::her(StorageOrder, StorageUpLo, IndexType, float, const int*, IndexType, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/her.tcc:123:35: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  123 |     cblas_cher(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/her.tcc:123:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/her.tcc:123:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/her.tcc:123:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/her.tcc:123:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/her.tcc:123:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/her.tcc:123:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  123 |     cblas_cher(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/her.tcc:123:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/her.tcc:123:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/her.tcc:123:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/her.tcc:123:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/her.tcc:123:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/her.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/her.tcc:136:13: error: ‘ComplexDouble’ does not name a type
  136 |       const ComplexDouble *x, IndexType incX,
      |             ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/her.tcc:137:7: error: ‘ComplexDouble’ has not been declared
  137 |       ComplexDouble *A, IndexType ldA)
      |       ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/her.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::her(StorageOrder, StorageUpLo, IndexType, double, const int*, IndexType, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/her.tcc:141:35: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  141 |     cblas_zher(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/her.tcc:141:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/her.tcc:141:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/her.tcc:141:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/her.tcc:141:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/her.tcc:141:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/her.tcc:141:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  141 |     cblas_zher(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/her.tcc:141:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/her.tcc:141:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/her.tcc:141:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/her.tcc:141:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/her.tcc:141:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:42:
/usr/include/xflens/cxxblas/level2/her2.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/her2.tcc:140:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  140 |       const ComplexFloat &alpha,
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level2/her2.tcc:141:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  141 |       const ComplexFloat *x, IndexType incX,
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level2/her2.tcc:142:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  142 |       const ComplexFloat *y, IndexType incY,
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level2/her2.tcc:143:7: error: ‘ComplexFloat’ has not been declared
  143 |       ComplexFloat *A, IndexType ldA)
      |       ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/her2.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::her2(StorageOrder, StorageUpLo, IndexType, const int&, const int*, IndexType, const int*, IndexType, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/her2.tcc:147:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  147 |     cblas_cher2(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/her2.tcc:147:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/her2.tcc:147:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/her2.tcc:147:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/her2.tcc:147:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/her2.tcc:147:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/her2.tcc:147:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  147 |     cblas_cher2(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/her2.tcc:147:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/her2.tcc:147:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/her2.tcc:147:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/her2.tcc:147:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/her2.tcc:147:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/her2.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/her2.tcc:160:13: error: ‘ComplexDouble’ does not name a type
  160 |       const ComplexDouble &alpha,
      |             ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/her2.tcc:161:13: error: ‘ComplexDouble’ does not name a type
  161 |       const ComplexDouble *x, IndexType incX,
      |             ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/her2.tcc:162:13: error: ‘ComplexDouble’ does not name a type
  162 |       const ComplexDouble *y, IndexType incY,
      |             ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/her2.tcc:163:7: error: ‘ComplexDouble’ has not been declared
  163 |       ComplexDouble *A, IndexType ldA)
      |       ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/her2.tcc:158:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::her2(StorageOrder, StorageUpLo, IndexType, const int&, const int*, IndexType, const int*, IndexType, int*, IndexType)’
  158 | her2(StorageOrder order, StorageUpLo upLo,
      | ^~~~
/usr/include/xflens/cxxblas/level2/her2.tcc:138:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::her2(StorageOrder, StorageUpLo, IndexType, const int&, const int*, IndexType, const int*, IndexType, int*, IndexType)’ previously declared here
  138 | her2(StorageOrder order,   StorageUpLo upLo,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:43:
/usr/include/xflens/cxxblas/level2/hpmv.tcc:142:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  142 |      const ComplexFloat &alpha,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/hpmv.tcc:143:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  143 |      const ComplexFloat *A,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/hpmv.tcc:144:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  144 |      const ComplexFloat *x, IndexType incX,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/hpmv.tcc:145:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  145 |      const ComplexFloat &beta,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/hpmv.tcc:146:6: error: ‘ComplexFloat’ has not been declared
  146 |      ComplexFloat *y, IndexType incY)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hpmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hpmv(StorageOrder, StorageUpLo, IndexType, const int&, const int*, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/hpmv.tcc:150:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  150 |     cblas_chpmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo), n,
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpmv.tcc:150:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpmv.tcc:150:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpmv.tcc:150:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpmv.tcc:150:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpmv.tcc:150:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/hpmv.tcc:150:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  150 |     cblas_chpmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo), n,
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpmv.tcc:150:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpmv.tcc:150:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpmv.tcc:150:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpmv.tcc:150:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpmv.tcc:150:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/hpmv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/hpmv.tcc:163:12: error: ‘ComplexDouble’ does not name a type
  163 |      const ComplexDouble &alpha,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hpmv.tcc:164:12: error: ‘ComplexDouble’ does not name a type
  164 |      const ComplexDouble *A,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hpmv.tcc:165:12: error: ‘ComplexDouble’ does not name a type
  165 |      const ComplexDouble *x, IndexType incX,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hpmv.tcc:166:12: error: ‘ComplexDouble’ does not name a type
  166 |      const ComplexDouble &beta,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hpmv.tcc:167:6: error: ‘ComplexDouble’ has not been declared
  167 |      ComplexDouble *y, IndexType incY)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hpmv.tcc:161:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hpmv(StorageOrder, StorageUpLo, IndexType, const int&, const int*, const int*, IndexType, const int&, int*, IndexType)’
  161 | hpmv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
/usr/include/xflens/cxxblas/level2/hpmv.tcc:140:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hpmv(StorageOrder, StorageUpLo, IndexType, const int&, const int*, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
  140 | hpmv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:44:
/usr/include/xflens/cxxblas/level2/hpr.tcc:121:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  121 |       const ComplexFloat *x, IndexType incX,
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level2/hpr.tcc:122:7: error: ‘ComplexFloat’ has not been declared
  122 |       ComplexFloat *A)
      |       ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hpr.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hpr(StorageOrder, StorageUpLo, IndexType, float, const int*, IndexType, int*)’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:126:35: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  126 |     cblas_chpr(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:126:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:126:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:126:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:126:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:126:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/hpr.tcc:126:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  126 |     cblas_chpr(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:126:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:126:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:126:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:126:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:126:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/hpr.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/hpr.tcc:139:13: error: ‘ComplexDouble’ does not name a type
  139 |       const ComplexDouble *x, IndexType incX,
      |             ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hpr.tcc:140:7: error: ‘ComplexDouble’ has not been declared
  140 |       ComplexDouble *A)
      |       ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hpr.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hpr(StorageOrder, StorageUpLo, IndexType, double, const int*, IndexType, int*)’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:144:35: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  144 |     cblas_zhpr(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:144:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:144:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:144:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:144:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:144:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/hpr.tcc:144:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  144 |     cblas_zhpr(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:144:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:144:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:144:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:144:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr.tcc:144:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:45:
/usr/include/xflens/cxxblas/level2/hpr2.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:143:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  143 |       const ComplexFloat *x, IndexType incX,
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level2/hpr2.tcc:144:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  144 |       const ComplexFloat *y, IndexType incY,
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level2/hpr2.tcc:145:7: error: ‘ComplexFloat’ has not been declared
  145 |       ComplexFloat *A)
      |       ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hpr2.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hpr2(StorageOrder, StorageUpLo, IndexType, float, const int*, IndexType, const int*, IndexType, int*)’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:149:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  149 |     cblas_che2r(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:149:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:149:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:149:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:149:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:149:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/hpr2.tcc:149:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  149 |     cblas_che2r(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:149:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:149:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:149:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:149:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:149:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/hpr2.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:163:13: error: ‘ComplexDouble’ does not name a type
  163 |       const ComplexDouble *x, IndexType incX,
      |             ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hpr2.tcc:164:13: error: ‘ComplexDouble’ does not name a type
  164 |       const ComplexDouble *y, IndexType incY,
      |             ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hpr2.tcc:165:7: error: ‘ComplexDouble’ has not been declared
  165 |       ComplexDouble *A)
      |       ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/hpr2.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hpr2(StorageOrder, StorageUpLo, IndexType, double, const int*, IndexType, const int*, IndexType, int*)’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:169:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  169 |     cblas_zhpr2(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:169:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:169:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:169:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:169:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:169:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/hpr2.tcc:169:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  169 |     cblas_zhpr2(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:169:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:169:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:169:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:169:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/hpr2.tcc:169:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:46:
/usr/include/xflens/cxxblas/level2/sbmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::sbmv(StorageOrder, StorageUpLo, IndexType, IndexType, float, const float*, IndexType, const float*, IndexType, float, float*, IndexType)’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:140:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  140 |     cblas_ssbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:140:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:140:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:140:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:140:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:140:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/sbmv.tcc:140:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  140 |     cblas_ssbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:140:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:140:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:140:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:140:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:140:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/sbmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::sbmv(StorageOrder, StorageUpLo, IndexType, IndexType, double, const double*, IndexType, const double*, IndexType, double, double*, IndexType)’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:162:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  162 |     cblas_dsbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:162:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:162:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:162:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:162:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:162:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/sbmv.tcc:162:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  162 |     cblas_dsbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:162:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:162:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:162:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:162:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/sbmv.tcc:162:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:47:
/usr/include/xflens/cxxblas/level2/spmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::spmv(StorageOrder, StorageUpLo, IndexType, float, const float*, const float*, IndexType, float, float*, IndexType)’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:118:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  118 |     cblas_sspmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:118:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:118:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:118:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:118:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:118:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/spmv.tcc:118:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  118 |     cblas_sspmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:118:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:118:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:118:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:118:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:118:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/spmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::spmv(StorageOrder, StorageUpLo, IndexType, double, const double*, const double*, IndexType, double, double*, IndexType)’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:140:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  140 |     cblas_dspmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:140:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:140:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:140:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:140:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:140:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/spmv.tcc:140:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  140 |     cblas_dspmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:140:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:140:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:140:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:140:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spmv.tcc:140:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:48:
/usr/include/xflens/cxxblas/level2/spr.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::spr(StorageOrder, StorageUpLo, IndexType, float, const float*, IndexType, float*)’:
/usr/include/xflens/cxxblas/level2/spr.tcc:101:35: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  101 |     cblas_sspr(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:101:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:101:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:101:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:101:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:101:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/spr.tcc:101:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  101 |     cblas_sspr(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:101:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:101:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:101:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:101:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:101:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/spr.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::spr(StorageOrder, StorageUpLo, IndexType, double, const double*, IndexType, double*)’:
/usr/include/xflens/cxxblas/level2/spr.tcc:119:35: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  119 |     cblas_dspr(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:119:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:119:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:119:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:119:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:119:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/spr.tcc:119:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  119 |     cblas_dspr(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:119:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:119:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:119:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:119:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr.tcc:119:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:49:
/usr/include/xflens/cxxblas/level2/spr2.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::spr2(StorageOrder, StorageUpLo, IndexType, float, const float*, IndexType, const float*, IndexType, float*)’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:111:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  111 |     cblas_sspr2(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:111:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:111:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:111:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:111:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:111:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/spr2.tcc:111:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  111 |     cblas_sspr2(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:111:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:111:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:111:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:111:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:111:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/spr2.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::spr2(StorageOrder, StorageUpLo, IndexType, double, const double*, IndexType, const double*, IndexType, double*)’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:131:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  131 |     cblas_dspr2(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:131:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:131:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:131:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:131:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:131:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/spr2.tcc:131:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  131 |     cblas_dspr2(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:131:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:131:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:131:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:131:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/spr2.tcc:131:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:50:
/usr/include/xflens/cxxblas/level2/syr2.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syr2(StorageOrder, StorageUpLo, IndexType, float, const float*, IndexType, const float*, IndexType, float*, IndexType)’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:111:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  111 |     cblas_ssyr2(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:111:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:111:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:111:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:111:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:111:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/syr2.tcc:111:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  111 |     cblas_ssyr2(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:111:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:111:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:111:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:111:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:111:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/syr2.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syr2(StorageOrder, StorageUpLo, IndexType, double, const double*, IndexType, const double*, IndexType, double*, IndexType)’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:131:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  131 |     cblas_dsyr2(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:131:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:131:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:131:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:131:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:131:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/syr2.tcc:131:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  131 |     cblas_dsyr2(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:131:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:131:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:131:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:131:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr2.tcc:131:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:51:
/usr/include/xflens/cxxblas/level2/symv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::symv(StorageOrder, StorageUpLo, IndexType, float, const float*, IndexType, const float*, IndexType, float, float*, IndexType)’:
/usr/include/xflens/cxxblas/level2/symv.tcc:123:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  123 |     cblas_ssymv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:123:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:123:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:123:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:123:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:123:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/symv.tcc:123:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  123 |     cblas_ssymv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:123:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:123:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:123:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:123:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:123:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/symv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::symv(StorageOrder, StorageUpLo, IndexType, double, const double*, IndexType, const double*, IndexType, double, double*, IndexType)’:
/usr/include/xflens/cxxblas/level2/symv.tcc:143:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  143 |     cblas_dsymv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:143:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:143:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:143:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:143:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:143:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/symv.tcc:143:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  143 |     cblas_dsymv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:143:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:143:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:143:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:143:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:143:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/symv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/symv.tcc:158:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  158 |      const ComplexFloat &alpha,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/symv.tcc:159:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  159 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/symv.tcc:160:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  160 |      const ComplexFloat *x, IndexType incX,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/symv.tcc:161:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  161 |      const ComplexFloat &beta,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/symv.tcc:162:6: error: ‘ComplexFloat’ has not been declared
  162 |      ComplexFloat *y, IndexType incY)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/symv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::symv(StorageOrder, StorageUpLo, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/symv.tcc:170:35: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  170 |     cxxlapack::symv(getF77BlasChar(upLo),
      |                     ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:170:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:170:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/symv.tcc:170:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/level2/symv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/symv.tcc:183:12: error: ‘ComplexDouble’ does not name a type
  183 |      const ComplexDouble &alpha,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/symv.tcc:184:12: error: ‘ComplexDouble’ does not name a type
  184 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/symv.tcc:185:12: error: ‘ComplexDouble’ does not name a type
  185 |      const ComplexDouble *x, IndexType incX,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/symv.tcc:186:12: error: ‘ComplexDouble’ does not name a type
  186 |      const ComplexDouble &beta,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/symv.tcc:187:6: error: ‘ComplexDouble’ has not been declared
  187 |      ComplexDouble *y, IndexType incY)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/symv.tcc:181:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::symv(StorageOrder, StorageUpLo, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’
  181 | symv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
/usr/include/xflens/cxxblas/level2/symv.tcc:156:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::symv(StorageOrder, StorageUpLo, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
  156 | symv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:52:
/usr/include/xflens/cxxblas/level2/syr.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syr(StorageOrder, StorageUpLo, IndexType, float, const float*, IndexType, float*, IndexType)’:
/usr/include/xflens/cxxblas/level2/syr.tcc:100:35: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  100 |     cblas_ssyr(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:100:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:100:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:100:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:100:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:100:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/syr.tcc:100:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  100 |     cblas_ssyr(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:100:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:100:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:100:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:100:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:100:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/syr.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syr(StorageOrder, StorageUpLo, IndexType, double, const double*, IndexType, double*, IndexType)’:
/usr/include/xflens/cxxblas/level2/syr.tcc:118:35: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  118 |     cblas_dsyr(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:118:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:118:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:118:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:118:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:118:35:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/syr.tcc:118:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  118 |     cblas_dsyr(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:118:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:118:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:118:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:118:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/syr.tcc:118:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:53:
/usr/include/xflens/cxxblas/level2/tbmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tbmv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, IndexType, const float*, IndexType, float*, IndexType)’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:290:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  290 |     cblas_stbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:290:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:290:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:290:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:290:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:290:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbmv.tcc:290:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  290 |     cblas_stbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:290:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:290:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:290:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:290:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:290:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbmv.tcc:291:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  291 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:291:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:291:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:291:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:291:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:291:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbmv.tcc:291:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  291 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:291:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:291:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:291:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:291:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:291:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tbmv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, IndexType, const double*, IndexType, double*, IndexType)’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:308:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  308 |     cblas_dtbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:308:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:308:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:308:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:308:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:308:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbmv.tcc:308:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  308 |     cblas_dtbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:308:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:308:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:308:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:308:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:308:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbmv.tcc:309:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  309 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:309:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:309:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:309:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:309:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:309:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbmv.tcc:309:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  309 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:309:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:309:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:309:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:309:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:309:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbmv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:321:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  321 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/tbmv.tcc:322:6: error: ‘ComplexFloat’ has not been declared
  322 |      ComplexFloat *x, IndexType incX)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/tbmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tbmv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, IndexType, const int*, IndexType, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:332:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  332 |     cblas_ctbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:332:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:332:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:332:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:332:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:332:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbmv.tcc:332:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  332 |     cblas_ctbmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:332:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:332:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:332:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:332:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:332:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbmv.tcc:333:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  333 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:333:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:333:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:333:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:333:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:333:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbmv.tcc:333:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  333 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:333:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:333:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:333:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:333:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:333:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbmv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/tbmv.tcc:345:12: error: ‘ComplexDouble’ does not name a type
  345 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/tbmv.tcc:346:6: error: ‘ComplexDouble’ has not been declared
  346 |      ComplexDouble *x, IndexType incX)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/tbmv.tcc:342:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tbmv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, IndexType, const int*, IndexType, int*, IndexType)’
  342 | tbmv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
/usr/include/xflens/cxxblas/level2/tbmv.tcc:318:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tbmv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, IndexType, const int*, IndexType, int*, IndexType)’ previously declared here
  318 | tbmv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:54:
/usr/include/xflens/cxxblas/level2/tbsv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tbsv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, IndexType, const float*, IndexType, float*, IndexType)’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:291:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  291 |     cblas_stbsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:291:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:291:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:291:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:291:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:291:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbsv.tcc:291:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  291 |     cblas_stbsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:291:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:291:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:291:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:291:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:291:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbsv.tcc:292:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  292 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:292:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:292:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:292:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:292:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:292:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbsv.tcc:292:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  292 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:292:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:292:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:292:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:292:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:292:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbsv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tbsv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, IndexType, const double*, IndexType, double*, IndexType)’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:309:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  309 |     cblas_dtbsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:309:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:309:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:309:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:309:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:309:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbsv.tcc:309:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  309 |     cblas_dtbsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:309:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:309:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:309:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:309:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:309:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbsv.tcc:310:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  310 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:310:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:310:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:310:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:310:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:310:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbsv.tcc:310:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  310 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:310:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:310:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:310:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:310:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:310:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbsv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:322:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  322 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/tbsv.tcc:323:6: error: ‘ComplexFloat’ has not been declared
  323 |      ComplexFloat *x, IndexType incX)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/tbsv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tbsv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, IndexType, const int*, IndexType, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:333:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  333 |     cblas_ctbsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:333:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:333:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:333:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:333:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:333:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbsv.tcc:333:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  333 |     cblas_ctbsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:333:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:333:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:333:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:333:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:333:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbsv.tcc:334:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  334 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:334:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:334:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:334:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:334:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:334:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbsv.tcc:334:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  334 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:334:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:334:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:334:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:334:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:334:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tbsv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/tbsv.tcc:346:12: error: ‘ComplexDouble’ does not name a type
  346 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/tbsv.tcc:347:6: error: ‘ComplexDouble’ has not been declared
  347 |      ComplexDouble *x, IndexType incX)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/tbsv.tcc:343:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tbsv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, IndexType, const int*, IndexType, int*, IndexType)’
  343 | tbsv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
/usr/include/xflens/cxxblas/level2/tbsv.tcc:319:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tbsv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, IndexType, const int*, IndexType, int*, IndexType)’ previously declared here
  319 | tbsv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:55:
/usr/include/xflens/cxxblas/level2/tpmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tpmv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const float*, float*, IndexType)’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:215:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  215 |     cblas_stpmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:215:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:215:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:215:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:215:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:215:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpmv.tcc:215:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  215 |     cblas_stpmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:215:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:215:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:215:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:215:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:215:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpmv.tcc:216:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  216 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:216:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:216:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:216:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:216:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:216:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpmv.tcc:216:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  216 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:216:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:216:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:216:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:216:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:216:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tpmv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const double*, double*, IndexType)’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:233:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  233 |     cblas_dtpmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:233:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:233:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:233:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:233:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:233:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpmv.tcc:233:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  233 |     cblas_dtpmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:233:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:233:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:233:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:233:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:233:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpmv.tcc:234:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  234 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:234:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:234:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:234:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:234:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:234:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpmv.tcc:234:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  234 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:234:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:234:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:234:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:234:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:234:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpmv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:246:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  246 |      const ComplexFloat *A,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/tpmv.tcc:247:6: error: ‘ComplexFloat’ has not been declared
  247 |      ComplexFloat *x, IndexType incX)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/tpmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tpmv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const int*, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:258:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  258 |     cblas_ctpmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:258:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:258:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:258:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:258:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:258:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpmv.tcc:258:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  258 |     cblas_ctpmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:258:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:258:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:258:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:258:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:258:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpmv.tcc:259:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  259 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:259:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:259:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:259:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:259:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:259:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpmv.tcc:259:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  259 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:259:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:259:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:259:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:259:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:259:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpmv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/tpmv.tcc:271:12: error: ‘ComplexDouble’ does not name a type
  271 |      const ComplexDouble *A,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/tpmv.tcc:272:6: error: ‘ComplexDouble’ has not been declared
  272 |      ComplexDouble *x, IndexType incX)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/tpmv.tcc:268:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tpmv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const int*, int*, IndexType)’
  268 | tpmv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
/usr/include/xflens/cxxblas/level2/tpmv.tcc:243:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tpmv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const int*, int*, IndexType)’ previously declared here
  243 | tpmv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:56:
/usr/include/xflens/cxxblas/level2/tpsv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tpsv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const float*, float*, IndexType)’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:222:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  222 |     cblas_stpsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:222:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:222:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:222:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:222:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:222:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpsv.tcc:222:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  222 |     cblas_stpsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:222:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:222:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:222:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:222:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:222:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpsv.tcc:223:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  223 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:223:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:223:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:223:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:223:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:223:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpsv.tcc:223:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  223 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:223:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:223:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:223:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:223:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:223:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpsv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tpsv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const double*, double*, IndexType)’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:240:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  240 |     cblas_dtpsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:240:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:240:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:240:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:240:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:240:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpsv.tcc:240:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  240 |     cblas_dtpsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:240:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:240:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:240:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:240:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:240:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpsv.tcc:241:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  241 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:241:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:241:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:241:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:241:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:241:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpsv.tcc:241:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  241 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:241:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:241:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:241:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:241:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:241:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpsv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:253:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  253 |      const ComplexFloat *A,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/tpsv.tcc:254:6: error: ‘ComplexFloat’ has not been declared
  254 |      ComplexFloat *x, IndexType incX)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/tpsv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tpsv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const int*, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:265:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  265 |     cblas_ctpsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:265:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:265:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:265:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:265:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:265:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpsv.tcc:265:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  265 |     cblas_ctpsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:265:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:265:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:265:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:265:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:265:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpsv.tcc:266:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  266 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:266:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:266:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:266:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:266:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:266:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpsv.tcc:266:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  266 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:266:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:266:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:266:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:266:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:266:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/tpsv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/tpsv.tcc:278:12: error: ‘ComplexDouble’ does not name a type
  278 |      const ComplexDouble *A,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/tpsv.tcc:279:6: error: ‘ComplexDouble’ has not been declared
  279 |      ComplexDouble *x, IndexType incX)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/tpsv.tcc:275:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tpsv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const int*, int*, IndexType)’
  275 | tpsv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
/usr/include/xflens/cxxblas/level2/tpsv.tcc:250:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::tpsv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const int*, int*, IndexType)’ previously declared here
  250 | tpsv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:57:
/usr/include/xflens/cxxblas/level2/trmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trmv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const float*, IndexType, float*, IndexType)’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:227:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  227 |     cblas_strmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:227:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:227:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:227:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:227:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:227:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trmv.tcc:227:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  227 |     cblas_strmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:227:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:227:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:227:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:227:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:227:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trmv.tcc:228:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  228 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:228:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:228:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:228:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:228:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:228:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trmv.tcc:228:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  228 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:228:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:228:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:228:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:228:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:228:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trmv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const double*, IndexType, double*, IndexType)’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:245:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  245 |     cblas_dtrmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:245:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:245:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:245:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:245:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:245:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trmv.tcc:245:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  245 |     cblas_dtrmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:245:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:245:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:245:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:245:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:245:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trmv.tcc:246:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  246 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:246:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:246:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:246:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:246:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:246:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trmv.tcc:246:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  246 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:246:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:246:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:246:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:246:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:246:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trmv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/trmv.tcc:258:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  258 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/trmv.tcc:259:6: error: ‘ComplexFloat’ has not been declared
  259 |      ComplexFloat *x, IndexType incX)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/trmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trmv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const int*, IndexType, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:263:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  263 |     cblas_ctrmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:263:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:263:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:263:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:263:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:263:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trmv.tcc:263:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  263 |     cblas_ctrmv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:263:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:263:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:263:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:263:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:263:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trmv.tcc:264:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  264 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:264:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:264:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:264:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:264:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:264:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trmv.tcc:264:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  264 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:264:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:264:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:264:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:264:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trmv.tcc:264:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trmv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/trmv.tcc:276:12: error: ‘ComplexDouble’ does not name a type
  276 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/trmv.tcc:277:6: error: ‘ComplexDouble’ has not been declared
  277 |      ComplexDouble *x, IndexType incX)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/trmv.tcc:273:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trmv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const int*, IndexType, int*, IndexType)’
  273 | trmv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
/usr/include/xflens/cxxblas/level2/trmv.tcc:255:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trmv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const int*, IndexType, int*, IndexType)’ previously declared here
  255 | trmv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level2/level2.tcc:58:
/usr/include/xflens/cxxblas/level2/trsv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trsv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const float*, IndexType, float*, IndexType)’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:233:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  233 |     cblas_strsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:233:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:233:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:233:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:233:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:233:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trsv.tcc:233:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  233 |     cblas_strsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:233:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:233:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:233:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:233:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:233:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trsv.tcc:234:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  234 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:234:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:234:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:234:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:234:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:234:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trsv.tcc:234:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  234 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:234:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:234:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:234:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:234:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:234:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trsv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trsv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const double*, IndexType, double*, IndexType)’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:251:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  251 |     cblas_dtrsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:251:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:251:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:251:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:251:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:251:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trsv.tcc:251:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  251 |     cblas_dtrsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:251:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:251:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:251:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:251:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:251:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trsv.tcc:252:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  252 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:252:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:252:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:252:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:252:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:252:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trsv.tcc:252:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  252 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:252:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:252:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:252:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:252:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:252:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trsv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/trsv.tcc:264:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  264 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level2/trsv.tcc:265:6: error: ‘ComplexFloat’ has not been declared
  265 |      ComplexFloat *x, IndexType incX)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/trsv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trsv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const int*, IndexType, int*, IndexType)’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:275:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  275 |     cblas_ctrsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:275:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:275:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:275:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:275:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:275:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trsv.tcc:275:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  275 |     cblas_ctrsv(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:275:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:275:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:275:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:275:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:275:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trsv.tcc:276:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  276 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:276:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:276:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:276:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:276:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:276:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trsv.tcc:276:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  276 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:276:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:276:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:276:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:276:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level2/trsv.tcc:276:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level2/trsv.tcc: At global scope:
/usr/include/xflens/cxxblas/level2/trsv.tcc:288:12: error: ‘ComplexDouble’ does not name a type
  288 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/trsv.tcc:289:6: error: ‘ComplexDouble’ has not been declared
  289 |      ComplexDouble *x, IndexType incX)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2/trsv.tcc:285:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trsv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const int*, IndexType, int*, IndexType)’
  285 | trsv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
/usr/include/xflens/cxxblas/level2/trsv.tcc:261:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trsv(StorageOrder, StorageUpLo, Transpose, Diag, IndexType, const int*, IndexType, int*, IndexType)’ previously declared here
  261 | trsv(StorageOrder order, StorageUpLo upLo,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level2extensions/level2extensions.tcc:42,
                 from /usr/include/xflens/cxxblas/cxxblas.tcc:42:
/usr/include/xflens/cxxblas/level2extensions/trmv.tcc:49:6: error: ‘ComplexFloat’ has not been declared
   49 |      ComplexFloat *x, IndexType incX)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2extensions/trmv.tcc:66:6: error: ‘ComplexDouble’ has not been declared
   66 |      ComplexDouble *x, IndexType incX)
      |      ^~~~~~~~~~~~~
In file included from /usr/include/xflens/cxxblas/level2extensions/level2extensions.tcc:43:
/usr/include/xflens/cxxblas/level2extensions/trsv.tcc:49:6: error: ‘ComplexFloat’ has not been declared
   49 |      ComplexFloat *x, IndexType incX)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level2extensions/trsv.tcc:65:6: error: ‘ComplexDouble’ has not been declared
   65 |      ComplexDouble *x, IndexType incX)
      |      ^~~~~~~~~~~~~
In file included from /usr/include/xflens/cxxblas/level3/level3.tcc:36,
                 from /usr/include/xflens/cxxblas/cxxblas.tcc:43:
/usr/include/xflens/cxxblas/level3/gemm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gemm(StorageOrder, Transpose, Transpose, IndexType, IndexType, IndexType, float, const float*, IndexType, const float*, IndexType, float, float*, IndexType)’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:208:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  208 |     cblas_sgemm(CBLAS::getCblasType(order),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:208:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:208:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:208:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:208:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:208:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/gemm.tcc:209:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  209 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(transB),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:209:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:209:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:209:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:209:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:209:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/gemm.tcc:209:65: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  209 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(transB),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:209:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:209:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:209:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:209:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:209:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/gemm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gemm(StorageOrder, Transpose, Transpose, IndexType, IndexType, IndexType, double, const double*, IndexType, const double*, IndexType, double, double*, IndexType)’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:232:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  232 |     cblas_dgemm(CBLAS::getCblasType(order),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:232:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:232:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:232:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:232:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:232:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/gemm.tcc:233:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  233 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(transB),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:233:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:233:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:233:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:233:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:233:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/gemm.tcc:233:65: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  233 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(transB),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:233:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:233:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:233:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:233:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:233:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/gemm.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/gemm.tcc:248:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  248 |      const ComplexFloat &alpha,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/gemm.tcc:249:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  249 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/gemm.tcc:250:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  250 |      const ComplexFloat *B, IndexType ldB,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/gemm.tcc:251:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  251 |      const ComplexFloat &beta,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/gemm.tcc:252:6: error: ‘ComplexFloat’ has not been declared
  252 |      ComplexFloat *C, IndexType ldC)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/gemm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gemm(StorageOrder, Transpose, Transpose, IndexType, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:265:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  265 |     cblas_cgemm(CBLAS::getCblasType(order),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:265:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:265:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:265:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:265:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:265:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/gemm.tcc:266:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  266 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(transB),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:266:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:266:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:266:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:266:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:266:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/gemm.tcc:266:65: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  266 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(transB),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:266:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:266:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:266:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:266:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/gemm.tcc:266:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/gemm.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/gemm.tcc:281:12: error: ‘ComplexDouble’ does not name a type
  281 |      const ComplexDouble &alpha,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/gemm.tcc:282:12: error: ‘ComplexDouble’ does not name a type
  282 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/gemm.tcc:283:12: error: ‘ComplexDouble’ does not name a type
  283 |      const ComplexDouble *B, IndexType ldB,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/gemm.tcc:284:12: error: ‘ComplexDouble’ does not name a type
  284 |      const ComplexDouble &beta,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/gemm.tcc:285:6: error: ‘ComplexDouble’ has not been declared
  285 |      ComplexDouble *C, IndexType ldC)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/gemm.tcc:278:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gemm(StorageOrder, Transpose, Transpose, IndexType, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’
  278 | gemm(StorageOrder order,
      | ^~~~
/usr/include/xflens/cxxblas/level3/gemm.tcc:245:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gemm(StorageOrder, Transpose, Transpose, IndexType, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
  245 | gemm(StorageOrder order,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level3/level3.tcc:37:
/usr/include/xflens/cxxblas/level3/hemm.tcc:100:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  100 |      const ComplexFloat &alpha,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/hemm.tcc:101:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  101 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/hemm.tcc:102:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  102 |      const ComplexFloat *B, IndexType ldB,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/hemm.tcc:103:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  103 |      const ComplexFloat &beta,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/hemm.tcc:104:6: error: ‘ComplexFloat’ has not been declared
  104 |      ComplexFloat *C, IndexType ldC)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/hemm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hemm(StorageOrder, Side, StorageUpLo, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:108:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  108 |     cblas_chemm(CBLAS::getCblasType(order),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:108:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:108:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:108:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:108:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:108:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/hemm.tcc:109:36: error: no matching function for call to ‘getCblasType(cxxblas::Side&)’
  109 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:109:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:109:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:109:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:109:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:109:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/hemm.tcc:109:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  109 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:109:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:109:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:109:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:109:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/hemm.tcc:109:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/hemm.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/hemm.tcc:123:12: error: ‘ComplexDouble’ does not name a type
  123 |      const ComplexDouble &alpha,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/hemm.tcc:124:12: error: ‘ComplexDouble’ does not name a type
  124 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/hemm.tcc:125:12: error: ‘ComplexDouble’ does not name a type
  125 |      const ComplexDouble *B, IndexType ldB,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/hemm.tcc:126:12: error: ‘ComplexDouble’ does not name a type
  126 |      const ComplexDouble &beta,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/hemm.tcc:127:6: error: ‘ComplexDouble’ has not been declared
  127 |      ComplexDouble *C, IndexType ldC)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/hemm.tcc:120:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hemm(StorageOrder, Side, StorageUpLo, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’
  120 | hemm(StorageOrder order,
      | ^~~~
/usr/include/xflens/cxxblas/level3/hemm.tcc:97:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hemm(StorageOrder, Side, StorageUpLo, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
   97 | hemm(StorageOrder order,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level3/level3.tcc:38:
/usr/include/xflens/cxxblas/level3/herk.tcc:103:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  103 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/herk.tcc:105:6: error: ‘ComplexFloat’ has not been declared
  105 |      ComplexFloat *C, IndexType ldC)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/herk.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::herk(StorageOrder, StorageUpLo, Transpose, IndexType, IndexType, float, const int*, IndexType, float, int*, IndexType)’:
/usr/include/xflens/cxxblas/level3/herk.tcc:109:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  109 |     cblas_cherk(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:109:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:109:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:109:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:109:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:109:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/herk.tcc:109:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  109 |     cblas_cherk(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:109:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:109:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:109:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:109:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:109:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/herk.tcc:110:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  110 |                 CBLAS::getCblasType(trans), n, k,
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:110:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:110:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:110:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:110:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:110:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/herk.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/herk.tcc:123:12: error: ‘ComplexDouble’ does not name a type
  123 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/herk.tcc:125:6: error: ‘ComplexDouble’ has not been declared
  125 |      ComplexDouble *C, IndexType ldC)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/herk.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::herk(StorageOrder, StorageUpLo, Transpose, IndexType, IndexType, double, const int*, IndexType, double, int*, IndexType)’:
/usr/include/xflens/cxxblas/level3/herk.tcc:129:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  129 |     cblas_zherk(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:129:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:129:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:129:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:129:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:129:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/herk.tcc:129:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  129 |     cblas_zherk(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:129:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:129:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:129:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:129:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:129:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/herk.tcc:130:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  130 |                 CBLAS::getCblasType(trans), n, k,
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:130:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:130:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:130:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:130:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/herk.tcc:130:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
In file included from /usr/include/xflens/cxxblas/level3/level3.tcc:39:
/usr/include/xflens/cxxblas/level3/her2k.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/her2k.tcc:117:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  117 |       const ComplexFloat &alpha,
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level3/her2k.tcc:118:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  118 |       const ComplexFloat *A, IndexType ldA,
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level3/her2k.tcc:119:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  119 |       const ComplexFloat *B, IndexType ldB,
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level3/her2k.tcc:121:7: error: ‘ComplexFloat’ has not been declared
  121 |       ComplexFloat *C, IndexType ldC)
      |       ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/her2k.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::her2k(StorageOrder, StorageUpLo, Transpose, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, float, int*, IndexType)’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:125:37: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  125 |     cblas_cher2k(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                  ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:125:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:125:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:125:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:125:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:125:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/her2k.tcc:125:65: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  125 |     cblas_cher2k(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:125:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:125:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:125:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:125:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:125:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/her2k.tcc:126:37: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  126 |                  CBLAS::getCblasType(trans),
      |                  ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:126:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:126:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:126:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:126:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:126:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/her2k.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/her2k.tcc:141:13: error: ‘ComplexDouble’ does not name a type
  141 |       const ComplexDouble &alpha,
      |             ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/her2k.tcc:142:13: error: ‘ComplexDouble’ does not name a type
  142 |       const ComplexDouble *A, IndexType ldA,
      |             ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/her2k.tcc:143:13: error: ‘ComplexDouble’ does not name a type
  143 |       const ComplexDouble *B, IndexType ldB,
      |             ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/her2k.tcc:145:7: error: ‘ComplexDouble’ has not been declared
  145 |       ComplexDouble *C, IndexType ldC)
      |       ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/her2k.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::her2k(StorageOrder, StorageUpLo, Transpose, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, double, int*, IndexType)’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:149:37: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  149 |     cblas_zher2k(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                  ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:149:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:149:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:149:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:149:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:149:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/her2k.tcc:149:65: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  149 |     cblas_zher2k(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:149:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:149:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:149:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:149:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:149:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/her2k.tcc:150:37: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  150 |                  CBLAS::getCblasType(trans),
      |                  ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:150:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:150:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:150:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:150:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/her2k.tcc:150:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
In file included from /usr/include/xflens/cxxblas/level3/level3.tcc:40:
/usr/include/xflens/cxxblas/level3/symm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::symm(StorageOrder, Side, StorageUpLo, IndexType, IndexType, float, const float*, IndexType, const float*, IndexType, float, float*, IndexType)’:
/usr/include/xflens/cxxblas/level3/symm.tcc:106:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  106 |     cblas_ssymm(CBLAS::getCblasType(order),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:106:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:106:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:106:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:106:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:106:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/symm.tcc:107:36: error: no matching function for call to ‘getCblasType(cxxblas::Side&)’
  107 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:107:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:107:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:107:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:107:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:107:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/symm.tcc:107:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  107 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:107:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:107:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:107:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:107:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:107:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/symm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::symm(StorageOrder, Side, StorageUpLo, IndexType, IndexType, double, const double*, IndexType, const double*, IndexType, double, double*, IndexType)’:
/usr/include/xflens/cxxblas/level3/symm.tcc:129:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  129 |     cblas_dsymm(CBLAS::getCblasType(order),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:129:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:129:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:129:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:129:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:129:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/symm.tcc:130:36: error: no matching function for call to ‘getCblasType(cxxblas::Side&)’
  130 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:130:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:130:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:130:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:130:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:130:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/symm.tcc:130:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  130 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:130:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:130:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:130:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:130:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:130:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/symm.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/symm.tcc:144:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  144 |      const ComplexFloat &alpha,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/symm.tcc:145:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  145 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/symm.tcc:146:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  146 |      const ComplexFloat *B, IndexType ldB,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/symm.tcc:147:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  147 |      const ComplexFloat &beta,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/symm.tcc:148:6: error: ‘ComplexFloat’ has not been declared
  148 |      ComplexFloat *C, IndexType ldC)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/symm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::symm(StorageOrder, Side, StorageUpLo, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/level3/symm.tcc:152:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  152 |     cblas_csymm(CBLAS::getCblasType(order),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:152:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:152:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:152:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:152:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:152:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/symm.tcc:153:36: error: no matching function for call to ‘getCblasType(cxxblas::Side&)’
  153 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:153:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:153:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:153:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:153:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:153:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/symm.tcc:153:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  153 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:153:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:153:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:153:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:153:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/symm.tcc:153:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/symm.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/symm.tcc:167:12: error: ‘ComplexDouble’ does not name a type
  167 |      const ComplexDouble &alpha,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/symm.tcc:168:12: error: ‘ComplexDouble’ does not name a type
  168 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/symm.tcc:169:12: error: ‘ComplexDouble’ does not name a type
  169 |      const ComplexDouble *B, IndexType ldB,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/symm.tcc:170:12: error: ‘ComplexDouble’ does not name a type
  170 |      const ComplexDouble &beta,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/symm.tcc:171:6: error: ‘ComplexDouble’ has not been declared
  171 |      ComplexDouble *C, IndexType ldC)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/symm.tcc:165:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::symm(StorageOrder, Side, StorageUpLo, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’
  165 | symm(StorageOrder order, Side side, StorageUpLo upLo,
      | ^~~~
/usr/include/xflens/cxxblas/level3/symm.tcc:142:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::symm(StorageOrder, Side, StorageUpLo, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
  142 | symm(StorageOrder order, Side side, StorageUpLo upLo,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level3/level3.tcc:41:
/usr/include/xflens/cxxblas/level3/syrk.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syrk(StorageOrder, StorageUpLo, Transpose, IndexType, IndexType, float, const float*, IndexType, float, float*, IndexType)’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:115:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  115 |     cblas_ssyrk(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:115:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:115:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:115:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:115:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:115:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syrk.tcc:115:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  115 |     cblas_ssyrk(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:115:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:115:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:115:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:115:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:115:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syrk.tcc:116:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  116 |                 CBLAS::getCblasType(trans),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:116:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:116:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:116:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:116:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:116:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syrk.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syrk(StorageOrder, StorageUpLo, Transpose, IndexType, IndexType, double, const double*, IndexType, double, double*, IndexType)’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:137:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  137 |     cblas_dsyrk(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:137:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:137:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:137:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:137:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:137:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syrk.tcc:137:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  137 |     cblas_dsyrk(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:137:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:137:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:137:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:137:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:137:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syrk.tcc:138:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  138 |                 CBLAS::getCblasType(trans),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:138:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:138:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:138:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:138:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:138:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syrk.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/syrk.tcc:152:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  152 |      const ComplexFloat &alpha,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/syrk.tcc:153:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  153 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/syrk.tcc:154:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  154 |      const ComplexFloat &beta,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/syrk.tcc:155:6: error: ‘ComplexFloat’ has not been declared
  155 |      ComplexFloat *C, IndexType ldC)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/syrk.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syrk(StorageOrder, StorageUpLo, Transpose, IndexType, IndexType, const int&, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:159:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  159 |     cblas_csyrk(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:159:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:159:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:159:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:159:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:159:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syrk.tcc:159:64: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  159 |     cblas_csyrk(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:159:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:159:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:159:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:159:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:159:64:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syrk.tcc:160:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  160 |                 CBLAS::getCblasType(trans),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:160:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:160:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:160:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:160:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syrk.tcc:160:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syrk.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/syrk.tcc:174:12: error: ‘ComplexDouble’ does not name a type
  174 |      const ComplexDouble &alpha,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/syrk.tcc:175:12: error: ‘ComplexDouble’ does not name a type
  175 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/syrk.tcc:176:12: error: ‘ComplexDouble’ does not name a type
  176 |      const ComplexDouble &beta,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/syrk.tcc:177:6: error: ‘ComplexDouble’ has not been declared
  177 |      ComplexDouble *C, IndexType ldC)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/syrk.tcc:171:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syrk(StorageOrder, StorageUpLo, Transpose, IndexType, IndexType, const int&, const int*, IndexType, const int&, int*, IndexType)’
  171 | syrk(StorageOrder order, StorageUpLo upLo,
      | ^~~~
/usr/include/xflens/cxxblas/level3/syrk.tcc:149:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syrk(StorageOrder, StorageUpLo, Transpose, IndexType, IndexType, const int&, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
  149 | syrk(StorageOrder order, StorageUpLo upLo,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level3/level3.tcc:42:
/usr/include/xflens/cxxblas/level3/syr2k.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syr2k(StorageOrder, StorageUpLo, Transpose, IndexType, IndexType, float, const float*, IndexType, const float*, IndexType, float, float*, IndexType)’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:128:37: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  128 |     cblas_ssyr2k(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                  ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:128:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:128:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:128:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:128:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:128:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syr2k.tcc:128:65: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  128 |     cblas_ssyr2k(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:128:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:128:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:128:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:128:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:128:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syr2k.tcc:129:37: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  129 |                  CBLAS::getCblasType(trans),
      |                  ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:129:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:129:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:129:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:129:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:129:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syr2k.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syr2k(StorageOrder, StorageUpLo, Transpose, IndexType, IndexType, double, const double*, IndexType, const double*, IndexType, double, double*, IndexType)’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:152:37: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  152 |     cblas_dsyr2k(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                  ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:152:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:152:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:152:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:152:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:152:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syr2k.tcc:152:65: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  152 |     cblas_dsyr2k(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:152:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:152:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:152:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:152:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:152:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syr2k.tcc:153:37: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  153 |                  CBLAS::getCblasType(trans),
      |                  ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:153:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:153:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:153:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:153:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:153:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syr2k.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:168:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  168 |       const ComplexFloat &alpha,
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level3/syr2k.tcc:169:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  169 |       const ComplexFloat *A, IndexType ldA,
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level3/syr2k.tcc:170:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  170 |       const ComplexFloat *B, IndexType ldB,
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level3/syr2k.tcc:171:13: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  171 |       const ComplexFloat &beta,
      |             ^~~~~~~~~~~~
      |             ComplexTrait
/usr/include/xflens/cxxblas/level3/syr2k.tcc:172:7: error: ‘ComplexFloat’ has not been declared
  172 |       ComplexFloat *C, IndexType ldC)
      |       ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/syr2k.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syr2k(StorageOrder, StorageUpLo, Transpose, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:176:37: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  176 |     cblas_csyr2k(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                  ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:176:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:176:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:176:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:176:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:176:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syr2k.tcc:176:65: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  176 |     cblas_csyr2k(CBLAS::getCblasType(order), CBLAS::getCblasType(upLo),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:176:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:176:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:176:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:176:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:176:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syr2k.tcc:177:37: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  177 |                  CBLAS::getCblasType(trans),
      |                  ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:177:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:177:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:177:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:177:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:177:37:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/syr2k.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/syr2k.tcc:192:13: error: ‘ComplexDouble’ does not name a type
  192 |       const ComplexDouble &alpha,
      |             ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/syr2k.tcc:193:13: error: ‘ComplexDouble’ does not name a type
  193 |       const ComplexDouble *A, IndexType ldA,
      |             ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/syr2k.tcc:194:13: error: ‘ComplexDouble’ does not name a type
  194 |       const ComplexDouble *B, IndexType ldB,
      |             ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/syr2k.tcc:195:13: error: ‘ComplexDouble’ does not name a type
  195 |       const ComplexDouble &beta,
      |             ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/syr2k.tcc:196:7: error: ‘ComplexDouble’ has not been declared
  196 |       ComplexDouble *C, IndexType ldC)
      |       ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/syr2k.tcc:189:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syr2k(StorageOrder, StorageUpLo, Transpose, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’
  189 | syr2k(StorageOrder order, StorageUpLo upLo,
      | ^~~~~
/usr/include/xflens/cxxblas/level3/syr2k.tcc:165:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syr2k(StorageOrder, StorageUpLo, Transpose, IndexType, IndexType, const int&, const int*, IndexType, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
  165 | syr2k(StorageOrder order, StorageUpLo upLo,
      | ^~~~~
In file included from /usr/include/xflens/cxxblas/level3/level3.tcc:43:
/usr/include/xflens/cxxblas/level3/trmm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trmm(StorageOrder, Side, StorageUpLo, Transpose, Diag, IndexType, IndexType, float, const float*, IndexType, float*, IndexType)’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:98:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
   98 |     cblas_strmm(CBLAS::getCblasType(order),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:98:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:98:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:98:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:98:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:98:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trmm.tcc:99:36: error: no matching function for call to ‘getCblasType(cxxblas::Side&)’
   99 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:99:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:99:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:99:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:99:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:99:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trmm.tcc:99:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
   99 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:99:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:99:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:99:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:99:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:99:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trmm.tcc:100:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  100 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:100:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:100:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:100:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:100:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:100:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trmm.tcc:100:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  100 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:100:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:100:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:100:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:100:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:100:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trmm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trmm(StorageOrder, Side, StorageUpLo, Transpose, Diag, IndexType, IndexType, double, const double*, IndexType, double*, IndexType)’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:119:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  119 |     cblas_dtrmm(CBLAS::getCblasType(order),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:119:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:119:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:119:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:119:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:119:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trmm.tcc:120:36: error: no matching function for call to ‘getCblasType(cxxblas::Side&)’
  120 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:120:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:120:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:120:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:120:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:120:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trmm.tcc:120:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  120 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:120:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:120:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:120:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:120:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:120:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trmm.tcc:121:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  121 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:121:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:121:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:121:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:121:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:121:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trmm.tcc:121:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  121 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:121:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:121:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:121:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:121:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:121:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trmm.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/trmm.tcc:134:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  134 |      const ComplexFloat &alpha,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/trmm.tcc:135:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  135 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/trmm.tcc:136:6: error: ‘ComplexFloat’ has not been declared
  136 |      ComplexFloat *B, IndexType ldB)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/trmm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trmm(StorageOrder, Side, StorageUpLo, Transpose, Diag, IndexType, IndexType, const int&, const int*, IndexType, int*, IndexType)’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:148:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  148 |     cblas_ctrmm(CBLAS::getCblasType(order),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:148:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:148:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:148:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:148:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:148:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trmm.tcc:149:36: error: no matching function for call to ‘getCblasType(cxxblas::Side&)’
  149 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:149:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:149:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:149:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:149:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:149:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trmm.tcc:149:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  149 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:149:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:149:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:149:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:149:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:149:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trmm.tcc:150:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  150 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:150:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:150:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:150:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:150:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:150:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trmm.tcc:150:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  150 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:150:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:150:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:150:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:150:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trmm.tcc:150:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trmm.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/trmm.tcc:163:12: error: ‘ComplexDouble’ does not name a type
  163 |      const ComplexDouble &alpha,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/trmm.tcc:164:12: error: ‘ComplexDouble’ does not name a type
  164 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/trmm.tcc:165:6: error: ‘ComplexDouble’ has not been declared
  165 |      ComplexDouble *B, IndexType ldB)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/trmm.tcc:160:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trmm(StorageOrder, Side, StorageUpLo, Transpose, Diag, IndexType, IndexType, const int&, const int*, IndexType, int*, IndexType)’
  160 | trmm(StorageOrder order, Side side, StorageUpLo upLo,
      | ^~~~
/usr/include/xflens/cxxblas/level3/trmm.tcc:131:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trmm(StorageOrder, Side, StorageUpLo, Transpose, Diag, IndexType, IndexType, const int&, const int*, IndexType, int*, IndexType)’ previously declared here
  131 | trmm(StorageOrder order, Side side, StorageUpLo upLo,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/level3/level3.tcc:44:
/usr/include/xflens/cxxblas/level3/trsm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trsm(StorageOrder, Side, StorageUpLo, Transpose, Diag, IndexType, IndexType, float, const float*, IndexType, float*, IndexType)’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:98:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
   98 |     cblas_strsm(CBLAS::getCblasType(order),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:98:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:98:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:98:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:98:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:98:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trsm.tcc:99:36: error: no matching function for call to ‘getCblasType(cxxblas::Side&)’
   99 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:99:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:99:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:99:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:99:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:99:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trsm.tcc:99:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
   99 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:99:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:99:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:99:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:99:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:99:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trsm.tcc:100:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  100 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:100:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:100:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:100:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:100:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:100:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trsm.tcc:100:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  100 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:100:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:100:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:100:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:100:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:100:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trsm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trsm(StorageOrder, Side, StorageUpLo, Transpose, Diag, IndexType, IndexType, double, const double*, IndexType, double*, IndexType)’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:119:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  119 |     cblas_dtrsm(CBLAS::getCblasType(order),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:119:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:119:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:119:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:119:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:119:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trsm.tcc:120:36: error: no matching function for call to ‘getCblasType(cxxblas::Side&)’
  120 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:120:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:120:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:120:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:120:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:120:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trsm.tcc:120:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  120 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:120:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:120:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:120:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:120:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:120:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trsm.tcc:121:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  121 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:121:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:121:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:121:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:121:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:121:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trsm.tcc:121:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  121 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:121:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:121:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:121:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:121:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:121:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trsm.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/trsm.tcc:134:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  134 |      const ComplexFloat &alpha,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/trsm.tcc:135:12: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  135 |      const ComplexFloat *A, IndexType ldA,
      |            ^~~~~~~~~~~~
      |            ComplexTrait
/usr/include/xflens/cxxblas/level3/trsm.tcc:136:6: error: ‘ComplexFloat’ has not been declared
  136 |      ComplexFloat *B, IndexType ldB)
      |      ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/trsm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trsm(StorageOrder, Side, StorageUpLo, Transpose, Diag, IndexType, IndexType, const int&, const int*, IndexType, int*, IndexType)’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:147:36: error: no matching function for call to ‘getCblasType(cxxblas::StorageOrder&)’
  147 |     cblas_ctrsm(CBLAS::getCblasType(order),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:147:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:147:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:147:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:147:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageOrder]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:147:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trsm.tcc:148:36: error: no matching function for call to ‘getCblasType(cxxblas::Side&)’
  148 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:148:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:148:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:148:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:148:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Side]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:148:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trsm.tcc:148:63: error: no matching function for call to ‘getCblasType(cxxblas::StorageUpLo&)’
  148 |                 CBLAS::getCblasType(side), CBLAS::getCblasType(upLo),
      |                                            ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:148:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:148:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:148:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:148:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:148:63:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trsm.tcc:149:36: error: no matching function for call to ‘getCblasType(cxxblas::Transpose&)’
  149 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                 ~~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:149:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:149:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:149:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:149:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:149:36:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trsm.tcc:149:65: error: no matching function for call to ‘getCblasType(cxxblas::Diag&)’
  149 |                 CBLAS::getCblasType(transA), CBLAS::getCblasType(diag),
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  138 | getCblasType(ENUM order)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageOrder>::value, CBLAS_ORDER>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:149:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:138:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_ORDER>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  148 | getCblasType(ENUM trans)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, CBLAS_TRANSPOSE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:149:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:148:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_TRANSPOSE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  164 | getCblasType(ENUM upLo)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, CBLAS_UPLO>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:149:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:164:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_UPLO>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  174 | getCblasType(ENUM side)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Side>::value, CBLAS_SIDE>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:149:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:174:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, CBLAS_SIDE>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM)’
  184 | getCblasType(ENUM diag)
      | ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, CBLAS_DIAG>::Type cxxblas::CBLAS::getCblasType(ENUM) [with ENUM = cxxblas::Diag]’:
/usr/include/xflens/cxxblas/level3/trsm.tcc:149:65:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:184:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, CBLAS_DIAG>’
/usr/include/xflens/cxxblas/level3/trsm.tcc: At global scope:
/usr/include/xflens/cxxblas/level3/trsm.tcc:162:12: error: ‘ComplexDouble’ does not name a type
  162 |      const ComplexDouble &alpha,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/trsm.tcc:163:12: error: ‘ComplexDouble’ does not name a type
  163 |      const ComplexDouble *A, IndexType ldA,
      |            ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/trsm.tcc:164:6: error: ‘ComplexDouble’ has not been declared
  164 |      ComplexDouble *B, IndexType ldB)
      |      ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/level3/trsm.tcc:159:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trsm(StorageOrder, Side, StorageUpLo, Transpose, Diag, IndexType, IndexType, const int&, const int*, IndexType, int*, IndexType)’
  159 | trsm(StorageOrder order, Side side, StorageUpLo upLo,
      | ^~~~
/usr/include/xflens/cxxblas/level3/trsm.tcc:131:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trsm(StorageOrder, Side, StorageUpLo, Transpose, Diag, IndexType, IndexType, const int&, const int*, IndexType, int*, IndexType)’ previously declared here
  131 | trsm(StorageOrder order, Side side, StorageUpLo upLo,
      | ^~~~
In file included from /usr/include/xflens/cxxblas/sparselevel2/sparselevel2.tcc:56,
                 from /usr/include/xflens/cxxblas/cxxblas.tcc:46:
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gecrsmv(Transpose, IndexType, IndexType, const float&, const float*, const IndexType*, const IndexType*, const float*, const float&, float*)’:
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:208:33: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
  208 |     char transA = getF77BlasChar(trans);
      |                   ~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:208:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:208:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:208:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gecrsmv(Transpose, IndexType, IndexType, const double&, const double*, const IndexType*, const IndexType*, const double*, const double&, double*)’:
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:244:33: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
  244 |     char transA = getF77BlasChar(trans);
      |                   ~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:244:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:244:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:244:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:259:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  259 |         const ComplexFloat      &alpha,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:260:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  260 |         const ComplexFloat      *A,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:263:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  263 |         const ComplexFloat      *x,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:264:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  264 |         const ComplexFloat      &beta,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:265:9: error: ‘ComplexFloat’ has not been declared
  265 |         ComplexFloat            *y)
      |         ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gecrsmv(Transpose, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, const int&, int*)’:
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:273:29: error: ‘ComplexFloat’ was not declared in this scope; did you mean ‘ComplexTrait’?
  273 |          gecrsmv<IndexType, ComplexFloat, ComplexFloat,
      |                             ^~~~~~~~~~~~
      |                             ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:280:33: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
  280 |     char transA = getF77BlasChar(trans);
      |                   ~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:280:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:280:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:280:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:307:15: error: ‘ComplexDouble’ does not name a type
  307 |         const ComplexDouble     &alpha,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:308:15: error: ‘ComplexDouble’ does not name a type
  308 |         const ComplexDouble     *A,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:311:15: error: ‘ComplexDouble’ does not name a type
  311 |         const ComplexDouble     *x,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:312:15: error: ‘ComplexDouble’ does not name a type
  312 |         const ComplexDouble     &beta,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:313:9: error: ‘ComplexDouble’ has not been declared
  313 |         ComplexDouble           *y)
      |         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:304:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gecrsmv(Transpose, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, const int&, int*)’
  304 | gecrsmv(Transpose               trans,
      | ^~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/gecrsmv.tcc:256:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gecrsmv(Transpose, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, const int&, int*)’ previously declared here
  256 | gecrsmv(Transpose               trans,
      | ^~~~~~~
In file included from /usr/include/xflens/cxxblas/sparselevel2/sparselevel2.tcc:57:
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:126:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  126 |         const ComplexFloat      &alpha,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:127:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  127 |         const ComplexFloat      *A,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:130:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  130 |         const ComplexFloat      *x,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:131:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  131 |         const ComplexFloat      &beta,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:132:9: error: ‘ComplexFloat’ has not been declared
  132 |         ComplexFloat            *y)
      |         ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::heccsmv(StorageUpLo, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, const int&, int*)’:
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:137:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  137 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:137:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:137:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:137:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:141:29: error: ‘ComplexFloat’ was not declared in this scope; did you mean ‘ComplexTrait’?
  141 |          heccsmv<IndexType, ComplexFloat, ComplexFloat,
      |                             ^~~~~~~~~~~~
      |                             ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:164:15: error: ‘ComplexDouble’ does not name a type
  164 |         const ComplexDouble     &alpha,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:165:15: error: ‘ComplexDouble’ does not name a type
  165 |         const ComplexDouble     *A,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:168:15: error: ‘ComplexDouble’ does not name a type
  168 |         const ComplexDouble     *x,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:169:15: error: ‘ComplexDouble’ does not name a type
  169 |         const ComplexDouble     &beta,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:170:9: error: ‘ComplexDouble’ has not been declared
  170 |         ComplexDouble           *y)
      |         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:162:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::heccsmv(StorageUpLo, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, const int&, int*)’
  162 | heccsmv(StorageUpLo             upLo,
      | ^~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/heccsmv.tcc:124:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::heccsmv(StorageUpLo, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, const int&, int*)’ previously declared here
  124 | heccsmv(StorageUpLo             upLo,
      | ^~~~~~~
In file included from /usr/include/xflens/cxxblas/sparselevel2/sparselevel2.tcc:58:
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:126:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  126 |         const ComplexFloat      &alpha,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:127:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  127 |         const ComplexFloat      *A,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:130:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  130 |         const ComplexFloat      *x,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:131:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  131 |         const ComplexFloat      &beta,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:132:9: error: ‘ComplexFloat’ has not been declared
  132 |         ComplexFloat            *y)
      |         ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hecrsmv(StorageUpLo, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, const int&, int*)’:
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:137:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  137 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:137:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:137:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:137:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:141:29: error: ‘ComplexFloat’ was not declared in this scope; did you mean ‘ComplexTrait’?
  141 |          hecrsmv<IndexType, ComplexFloat, ComplexFloat,
      |                             ^~~~~~~~~~~~
      |                             ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:164:15: error: ‘ComplexDouble’ does not name a type
  164 |         const ComplexDouble     &alpha,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:165:15: error: ‘ComplexDouble’ does not name a type
  165 |         const ComplexDouble     *A,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:168:15: error: ‘ComplexDouble’ does not name a type
  168 |         const ComplexDouble     *x,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:169:15: error: ‘ComplexDouble’ does not name a type
  169 |         const ComplexDouble     &beta,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:170:9: error: ‘ComplexDouble’ has not been declared
  170 |         ComplexDouble           *y)
      |         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:162:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hecrsmv(StorageUpLo, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, const int&, int*)’
  162 | hecrsmv(StorageUpLo             upLo,
      | ^~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/hecrsmv.tcc:124:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hecrsmv(StorageUpLo, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, const int&, int*)’ previously declared here
  124 | hecrsmv(StorageUpLo             upLo,
      | ^~~~~~~
In file included from /usr/include/xflens/cxxblas/sparselevel2/sparselevel2.tcc:59:
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syccsmv(StorageUpLo, IndexType, const float&, const float*, const IndexType*, const IndexType*, const float*, const float&, float*)’:
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:135:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  135 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:135:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:135:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:135:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syccsmv(StorageUpLo, IndexType, const double&, const double*, const IndexType*, const IndexType*, const double*, const double&, double*)’:
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:171:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  171 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:171:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:171:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:171:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:196:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  196 |         const ComplexFloat      &alpha,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:197:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  197 |         const ComplexFloat      *A,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:200:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  200 |         const ComplexFloat      *x,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:201:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  201 |         const ComplexFloat      &beta,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:202:9: error: ‘ComplexFloat’ has not been declared
  202 |         ComplexFloat            *y)
      |         ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syccsmv(StorageUpLo, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, const int&, int*)’:
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:207:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  207 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:207:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:207:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:207:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:211:29: error: ‘ComplexFloat’ was not declared in this scope; did you mean ‘ComplexTrait’?
  211 |          syccsmv<IndexType, ComplexFloat, ComplexFloat,
      |                             ^~~~~~~~~~~~
      |                             ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:234:15: error: ‘ComplexDouble’ does not name a type
  234 |         const ComplexDouble     &alpha,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:235:15: error: ‘ComplexDouble’ does not name a type
  235 |         const ComplexDouble     *A,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:238:15: error: ‘ComplexDouble’ does not name a type
  238 |         const ComplexDouble     *x,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:239:15: error: ‘ComplexDouble’ does not name a type
  239 |         const ComplexDouble     &beta,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:240:9: error: ‘ComplexDouble’ has not been declared
  240 |         ComplexDouble           *y)
      |         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:232:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syccsmv(StorageUpLo, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, const int&, int*)’
  232 | syccsmv(StorageUpLo             upLo,
      | ^~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/syccsmv.tcc:194:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syccsmv(StorageUpLo, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, const int&, int*)’ previously declared here
  194 | syccsmv(StorageUpLo             upLo,
      | ^~~~~~~
In file included from /usr/include/xflens/cxxblas/sparselevel2/sparselevel2.tcc:60:
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::sycrsmv(StorageUpLo, IndexType, const float&, const float*, const IndexType*, const IndexType*, const float*, const float&, float*)’:
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:132:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  132 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:132:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:132:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:132:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::sycrsmv(StorageUpLo, IndexType, const double&, const double*, const IndexType*, const IndexType*, const double*, const double&, double*)’:
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:168:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  168 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:168:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:168:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:168:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:193:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  193 |         const ComplexFloat      &alpha,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:194:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  194 |         const ComplexFloat      *A,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:197:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  197 |         const ComplexFloat      *x,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:198:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  198 |         const ComplexFloat      &beta,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:199:9: error: ‘ComplexFloat’ has not been declared
  199 |         ComplexFloat            *y)
      |         ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::sycrsmv(StorageUpLo, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, const int&, int*)’:
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:204:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  204 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:204:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:204:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:204:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:208:29: error: ‘ComplexFloat’ was not declared in this scope; did you mean ‘ComplexTrait’?
  208 |          sycrsmv<IndexType, ComplexFloat, ComplexFloat,
      |                             ^~~~~~~~~~~~
      |                             ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:231:15: error: ‘ComplexDouble’ does not name a type
  231 |         const ComplexDouble     &alpha,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:232:15: error: ‘ComplexDouble’ does not name a type
  232 |         const ComplexDouble     *A,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:235:15: error: ‘ComplexDouble’ does not name a type
  235 |         const ComplexDouble     *x,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:236:15: error: ‘ComplexDouble’ does not name a type
  236 |         const ComplexDouble     &beta,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:237:9: error: ‘ComplexDouble’ has not been declared
  237 |         ComplexDouble           *y)
      |         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:229:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::sycrsmv(StorageUpLo, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, const int&, int*)’
  229 | sycrsmv(StorageUpLo             upLo,
      | ^~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/sycrsmv.tcc:191:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::sycrsmv(StorageUpLo, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, const int&, int*)’ previously declared here
  191 | sycrsmv(StorageUpLo             upLo,
      | ^~~~~~~
In file included from /usr/include/xflens/cxxblas/sparselevel2/sparselevel2.tcc:61:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trccssv(StorageUpLo, Transpose, IndexType, const float&, const float*, const IndexType*, const IndexType*, const float*, float*)’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:60:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
   60 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:60:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:60:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:60:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:65:33: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
   65 |     char transA = getF77BlasChar(trans);
      |                   ~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:65:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:65:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:65:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trccssv(StorageUpLo, Transpose, IndexType, const double&, const double*, const IndexType*, const IndexType*, const double*, double*)’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:89:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
   89 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:89:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:89:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:89:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:94:33: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
   94 |     char transA = getF77BlasChar(trans);
      |                   ~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:94:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:94:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:94:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:108:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  108 |         const ComplexFloat      &alpha,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:109:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  109 |         const ComplexFloat      *A,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:112:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  112 |         const ComplexFloat      *x,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:113:9: error: ‘ComplexFloat’ has not been declared
  113 |         ComplexFloat            *y)
      |         ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trccssv(StorageUpLo, Transpose, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, int*)’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:118:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  118 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:118:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:118:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:118:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:123:33: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
  123 |     char transA = getF77BlasChar(trans);
      |                   ~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:123:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:123:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:123:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:139:15: error: ‘ComplexDouble’ does not name a type
  139 |         const ComplexDouble     &alpha,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:140:15: error: ‘ComplexDouble’ does not name a type
  140 |         const ComplexDouble     *A,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:143:15: error: ‘ComplexDouble’ does not name a type
  143 |         const ComplexDouble     *x,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:144:9: error: ‘ComplexDouble’ has not been declared
  144 |         ComplexDouble           *y)
      |         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:136:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trccssv(StorageUpLo, Transpose, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, int*)’
  136 | trccssv(StorageUpLo             upLo,
      | ^~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/trccssv.tcc:105:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trccssv(StorageUpLo, Transpose, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, int*)’ previously declared here
  105 | trccssv(StorageUpLo             upLo,
      | ^~~~~~~
In file included from /usr/include/xflens/cxxblas/sparselevel2/sparselevel2.tcc:62:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trcrssv(StorageUpLo, Transpose, IndexType, const float&, const float*, const IndexType*, const IndexType*, const float*, float*)’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:59:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
   59 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:59:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:59:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:59:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:64:33: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
   64 |     char transA = getF77BlasChar(trans);
      |                   ~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:64:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:64:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:64:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trcrssv(StorageUpLo, Transpose, IndexType, const double&, const double*, const IndexType*, const IndexType*, const double*, double*)’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:88:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
   88 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:88:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:88:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:88:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:93:33: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
   93 |     char transA = getF77BlasChar(trans);
      |                   ~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:93:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:93:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:93:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:107:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  107 |         const ComplexFloat      &alpha,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:108:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  108 |         const ComplexFloat      *A,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:111:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  111 |         const ComplexFloat      *x,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:112:9: error: ‘ComplexFloat’ has not been declared
  112 |         ComplexFloat            *y)
      |         ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trcrssv(StorageUpLo, Transpose, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, int*)’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:117:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  117 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:117:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:117:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:117:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:122:33: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
  122 |     char transA = getF77BlasChar(trans);
      |                   ~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:122:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:122:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:122:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:138:15: error: ‘ComplexDouble’ does not name a type
  138 |         const ComplexDouble     &alpha,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:139:15: error: ‘ComplexDouble’ does not name a type
  139 |         const ComplexDouble     *A,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:142:15: error: ‘ComplexDouble’ does not name a type
  142 |         const ComplexDouble     *x,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:143:9: error: ‘ComplexDouble’ has not been declared
  143 |         ComplexDouble           *y)
      |         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:135:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trcrssv(StorageUpLo, Transpose, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, int*)’
  135 | trcrssv(StorageUpLo             upLo,
      | ^~~~~~~
/usr/include/xflens/cxxblas/sparselevel2/trcrssv.tcc:104:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trcrssv(StorageUpLo, Transpose, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, int*)’ previously declared here
  104 | trcrssv(StorageUpLo             upLo,
      | ^~~~~~~
In file included from /usr/include/xflens/cxxblas/sparselevel3/sparselevel3.tcc:36,
                 from /usr/include/xflens/cxxblas/cxxblas.tcc:47:
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gecrsmm(Transpose, IndexType, IndexType, IndexType, const float&, const float*, const IndexType*, const IndexType*, const float*, IndexType, const float&, float*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:102:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
  102 |     char transA_ = getF77BlasChar(transA);
      |                    ~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:102:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:102:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:102:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gecrsmm(Transpose, IndexType, IndexType, IndexType, const double&, const double*, const IndexType*, const IndexType*, const double*, IndexType, const double&, double*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:143:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
  143 |     char transA_ = getF77BlasChar(transA);
      |                    ~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:143:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:143:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:143:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:159:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  159 |         const ComplexFloat      &alpha,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:160:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  160 |         const ComplexFloat      *A,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:163:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  163 |         const ComplexFloat      *B,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:165:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  165 |         const ComplexFloat      &beta,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:166:9: error: ‘ComplexFloat’ has not been declared
  166 |         ComplexFloat            *C,
      |         ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gecrsmm(Transpose, IndexType, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:176:29: error: ‘ComplexFloat’ was not declared in this scope; did you mean ‘ComplexTrait’?
  176 |          gecrsmm<IndexType, ComplexFloat, ComplexFloat,
      |                             ^~~~~~~~~~~~
      |                             ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:184:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
  184 |     char transA_ = getF77BlasChar(transA);
      |                    ~~~~~~~~~~~~~~^~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:184:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:184:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:184:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:212:15: error: ‘ComplexDouble’ does not name a type
  212 |         const ComplexDouble     &alpha,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:213:15: error: ‘ComplexDouble’ does not name a type
  213 |         const ComplexDouble     *A,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:216:15: error: ‘ComplexDouble’ does not name a type
  216 |         const ComplexDouble     *B,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:218:15: error: ‘ComplexDouble’ does not name a type
  218 |         const ComplexDouble     &beta,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:219:9: error: ‘ComplexDouble’ has not been declared
  219 |         ComplexDouble           *C,
      |         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:208:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gecrsmm(Transpose, IndexType, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, const int&, int*, IndexType)’
  208 | gecrsmm(Transpose               transA,
      | ^~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/gecrsmm.tcc:155:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::gecrsmm(Transpose, IndexType, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
  155 | gecrsmm(Transpose               transA,
      | ^~~~~~~
In file included from /usr/include/xflens/cxxblas/sparselevel3/sparselevel3.tcc:37:
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:76:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
   76 |         const ComplexFloat      &alpha,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:77:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
   77 |         const ComplexFloat      *A,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:80:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
   80 |         const ComplexFloat      *B,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:82:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
   82 |         const ComplexFloat      &beta,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:83:9: error: ‘ComplexFloat’ has not been declared
   83 |         ComplexFloat            *C,
      |         ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::heccsmm(StorageUpLo, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:89:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
   89 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:89:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:89:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:89:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:93:29: error: ‘ComplexFloat’ was not declared in this scope; did you mean ‘ComplexTrait’?
   93 |          heccsmm<IndexType, ComplexFloat, ComplexFloat,
      |                             ^~~~~~~~~~~~
      |                             ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:120:15: error: ‘ComplexDouble’ does not name a type
  120 |         const ComplexDouble     &alpha,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:121:15: error: ‘ComplexDouble’ does not name a type
  121 |         const ComplexDouble     *A,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:124:15: error: ‘ComplexDouble’ does not name a type
  124 |         const ComplexDouble     *B,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:126:15: error: ‘ComplexDouble’ does not name a type
  126 |         const ComplexDouble     &beta,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:127:9: error: ‘ComplexDouble’ has not been declared
  127 |         ComplexDouble           *C,
      |         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:117:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::heccsmm(StorageUpLo, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, const int&, int*, IndexType)’
  117 | heccsmm(StorageUpLo             upLo,
      | ^~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/heccsmm.tcc:73:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::heccsmm(StorageUpLo, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
   73 | heccsmm(StorageUpLo             upLo,
      | ^~~~~~~
In file included from /usr/include/xflens/cxxblas/sparselevel3/sparselevel3.tcc:38:
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:76:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
   76 |         const ComplexFloat      &alpha,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:77:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
   77 |         const ComplexFloat      *A,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:80:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
   80 |         const ComplexFloat      *B,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:82:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
   82 |         const ComplexFloat      &beta,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:83:9: error: ‘ComplexFloat’ has not been declared
   83 |         ComplexFloat            *C,
      |         ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hecrsmm(StorageUpLo, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:89:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
   89 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:89:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:89:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:89:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:93:29: error: ‘ComplexFloat’ was not declared in this scope; did you mean ‘ComplexTrait’?
   93 |          hecrsmm<IndexType, ComplexFloat, ComplexFloat,
      |                             ^~~~~~~~~~~~
      |                             ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:120:15: error: ‘ComplexDouble’ does not name a type
  120 |         const ComplexDouble     &alpha,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:121:15: error: ‘ComplexDouble’ does not name a type
  121 |         const ComplexDouble     *A,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:124:15: error: ‘ComplexDouble’ does not name a type
  124 |         const ComplexDouble     *B,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:126:15: error: ‘ComplexDouble’ does not name a type
  126 |         const ComplexDouble     &beta,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:127:9: error: ‘ComplexDouble’ has not been declared
  127 |         ComplexDouble           *C,
      |         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:117:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hecrsmm(StorageUpLo, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, const int&, int*, IndexType)’
  117 | hecrsmm(StorageUpLo             upLo,
      | ^~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/hecrsmm.tcc:73:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::hecrsmm(StorageUpLo, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
   73 | hecrsmm(StorageUpLo             upLo,
      | ^~~~~~~
In file included from /usr/include/xflens/cxxblas/sparselevel3/sparselevel3.tcc:39:
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syccsmm(StorageUpLo, IndexType, IndexType, const float&, const float*, const IndexType*, const IndexType*, const float*, IndexType, const float&, float*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:88:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
   88 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:88:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:88:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:88:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syccsmm(StorageUpLo, IndexType, IndexType, const double&, const double*, const IndexType*, const IndexType*, const double*, IndexType, const double&, double*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:131:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  131 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:131:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:131:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:131:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:161:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  161 |         const ComplexFloat      &alpha,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:162:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  162 |         const ComplexFloat      *A,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:165:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  165 |         const ComplexFloat      *B,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:167:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  167 |         const ComplexFloat      &beta,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:168:9: error: ‘ComplexFloat’ has not been declared
  168 |         ComplexFloat            *C,
      |         ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syccsmm(StorageUpLo, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:174:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  174 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:174:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:174:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:174:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:178:29: error: ‘ComplexFloat’ was not declared in this scope; did you mean ‘ComplexTrait’?
  178 |          syccsmm<IndexType, ComplexFloat, ComplexFloat,
      |                             ^~~~~~~~~~~~
      |                             ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:204:15: error: ‘ComplexDouble’ does not name a type
  204 |         const ComplexDouble     &alpha,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:205:15: error: ‘ComplexDouble’ does not name a type
  205 |         const ComplexDouble     *A,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:208:15: error: ‘ComplexDouble’ does not name a type
  208 |         const ComplexDouble     *B,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:210:15: error: ‘ComplexDouble’ does not name a type
  210 |         const ComplexDouble     &beta,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:211:9: error: ‘ComplexDouble’ has not been declared
  211 |         ComplexDouble           *C,
      |         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:201:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syccsmm(StorageUpLo, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, const int&, int*, IndexType)’
  201 | syccsmm(StorageUpLo             upLo,
      | ^~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/syccsmm.tcc:158:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::syccsmm(StorageUpLo, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
  158 | syccsmm(StorageUpLo             upLo,
      | ^~~~~~~
In file included from /usr/include/xflens/cxxblas/sparselevel3/sparselevel3.tcc:40:
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::sycrsmm(StorageUpLo, IndexType, IndexType, const float&, const float*, const IndexType*, const IndexType*, const float*, IndexType, const float&, float*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:86:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
   86 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:86:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:86:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:86:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::sycrsmm(StorageUpLo, IndexType, IndexType, const double&, const double*, const IndexType*, const IndexType*, const double*, IndexType, const double&, double*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:129:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  129 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:129:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:129:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:129:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:158:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  158 |         const ComplexFloat      &alpha,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:159:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  159 |         const ComplexFloat      *A,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:162:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  162 |         const ComplexFloat      *B,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:164:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  164 |         const ComplexFloat      &beta,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:165:9: error: ‘ComplexFloat’ has not been declared
  165 |         ComplexFloat            *C,
      |         ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::sycrsmm(StorageUpLo, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, const int&, int*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:171:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  171 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:171:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:171:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:171:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:175:29: error: ‘ComplexFloat’ was not declared in this scope; did you mean ‘ComplexTrait’?
  175 |          sycrsmm<IndexType, ComplexFloat, ComplexFloat,
      |                             ^~~~~~~~~~~~
      |                             ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:201:15: error: ‘ComplexDouble’ does not name a type
  201 |         const ComplexDouble     &alpha,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:202:15: error: ‘ComplexDouble’ does not name a type
  202 |         const ComplexDouble     *A,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:205:15: error: ‘ComplexDouble’ does not name a type
  205 |         const ComplexDouble     *B,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:207:15: error: ‘ComplexDouble’ does not name a type
  207 |         const ComplexDouble     &beta,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:208:9: error: ‘ComplexDouble’ has not been declared
  208 |         ComplexDouble           *C,
      |         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:198:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::sycrsmm(StorageUpLo, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, const int&, int*, IndexType)’
  198 | sycrsmm(StorageUpLo             upLo,
      | ^~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/sycrsmm.tcc:155:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::sycrsmm(StorageUpLo, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, const int&, int*, IndexType)’ previously declared here
  155 | sycrsmm(StorageUpLo             upLo,
      | ^~~~~~~
In file included from /usr/include/xflens/cxxblas/sparselevel3/sparselevel3.tcc:41:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trccssm(StorageUpLo, Transpose, IndexType, IndexType, const float&, const float*, const IndexType*, const IndexType*, const float*, IndexType, float*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:63:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
   63 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:63:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:63:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:63:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:68:33: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
   68 |     char transA = getF77BlasChar(trans);
      |                   ~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:68:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:68:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:68:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trccssm(StorageUpLo, Transpose, IndexType, IndexType, const double&, const double*, const IndexType*, const IndexType*, const double*, IndexType, double*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:95:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
   95 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:95:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:95:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:95:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:100:33: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
  100 |     char transA = getF77BlasChar(trans);
      |                   ~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:100:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:100:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:100:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:115:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  115 |         const ComplexFloat      &alpha,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:116:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  116 |         const ComplexFloat      *A,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:119:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  119 |         const ComplexFloat      *B,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:121:9: error: ‘ComplexFloat’ has not been declared
  121 |         ComplexFloat            *C,
      |         ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trccssm(StorageUpLo, Transpose, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, int*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:127:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  127 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:127:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:127:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:127:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:132:33: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
  132 |     char transA = getF77BlasChar(trans);
      |                   ~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:132:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:132:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:132:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:148:15: error: ‘ComplexDouble’ does not name a type
  148 |         const ComplexDouble     &alpha,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:149:15: error: ‘ComplexDouble’ does not name a type
  149 |         const ComplexDouble     *A,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:152:15: error: ‘ComplexDouble’ does not name a type
  152 |         const ComplexDouble     *B,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:154:9: error: ‘ComplexDouble’ has not been declared
  154 |         ComplexDouble           *C,
      |         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:144:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trccssm(StorageUpLo, Transpose, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, int*, IndexType)’
  144 | trccssm(StorageUpLo             upLo,
      | ^~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/trccssm.tcc:111:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trccssm(StorageUpLo, Transpose, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, int*, IndexType)’ previously declared here
  111 | trccssm(StorageUpLo             upLo,
      | ^~~~~~~
In file included from /usr/include/xflens/cxxblas/sparselevel3/sparselevel3.tcc:42:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trcrssm(StorageUpLo, Transpose, IndexType, IndexType, const float&, const float*, const IndexType*, const IndexType*, const float*, IndexType, float*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:62:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
   62 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:62:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:62:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:62:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:67:33: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
   67 |     char transA = getF77BlasChar(trans);
      |                   ~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:67:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:67:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:67:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trcrssm(StorageUpLo, Transpose, IndexType, IndexType, const double&, const double*, const IndexType*, const IndexType*, const double*, IndexType, double*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:94:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
   94 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:94:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:94:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:94:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:99:33: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
   99 |     char transA = getF77BlasChar(trans);
      |                   ~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:99:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:99:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:99:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:114:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  114 |         const ComplexFloat      &alpha,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:115:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  115 |         const ComplexFloat      *A,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:118:15: error: ‘ComplexFloat’ does not name a type; did you mean ‘ComplexTrait’?
  118 |         const ComplexFloat      *B,
      |               ^~~~~~~~~~~~
      |               ComplexTrait
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:120:9: error: ‘ComplexFloat’ has not been declared
  120 |         ComplexFloat            *C,
      |         ^~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc: In function ‘typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trcrssm(StorageUpLo, Transpose, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, int*, IndexType)’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:126:34: error: no matching function for call to ‘getF77BlasChar(cxxblas::StorageUpLo&)’
  126 |     matdescra[1] = getF77BlasChar(upLo);
      |                    ~~~~~~~~~~~~~~^~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:126:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:126:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::StorageUpLo]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:126:34:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:131:33: error: no matching function for call to ‘getF77BlasChar(cxxblas::Transpose&)’
  131 |     char transA = getF77BlasChar(trans);
      |                   ~~~~~~~~~~~~~~^~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   55 | getF77BlasChar(ENUM trans)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Transpose>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:131:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:55:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<true, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   73 | getF77BlasChar(ENUM diag)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::Diag>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:131:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:73:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note: candidate: ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM)’
   83 | getF77BlasChar(ENUM upLo)
      | ^~~~~~~~~~~~~~
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: note:   template argument deduction/substitution failed:
/usr/include/xflens/cxxblas/drivers/drivers.tcc: In substitution of ‘template<class ENUM> typename cxxblas::RestrictTo<cxxblas::IsSame<ENUM, cxxblas::StorageUpLo>::value, char>::Type cxxblas::getF77BlasChar(ENUM) [with ENUM = cxxblas::Transpose]’:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:131:33:   required from here
/usr/include/xflens/cxxblas/drivers/drivers.tcc:83:1: error: no type named ‘Type’ in ‘struct cxxblas::RestrictTo<false, char>’
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc: At global scope:
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:148:15: error: ‘ComplexDouble’ does not name a type
  148 |         const ComplexDouble     &alpha,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:149:15: error: ‘ComplexDouble’ does not name a type
  149 |         const ComplexDouble     *A,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:152:15: error: ‘ComplexDouble’ does not name a type
  152 |         const ComplexDouble     *B,
      |               ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:154:9: error: ‘ComplexDouble’ has not been declared
  154 |         ComplexDouble           *C,
      |         ^~~~~~~~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:144:1: error: redefinition of ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trcrssm(StorageUpLo, Transpose, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, int*, IndexType)’
  144 | trcrssm(StorageUpLo             upLo,
      | ^~~~~~~
/usr/include/xflens/cxxblas/sparselevel3/trcrssm.tcc:110:1: note: ‘template<class IndexType> typename cxxblas::If<Any>::isBlasCompatibleInteger cxxblas::trcrssm(StorageUpLo, Transpose, IndexType, IndexType, const int&, const int*, const IndexType*, const IndexType*, const int*, IndexType, int*, IndexType)’ previously declared here
  110 | trcrssm(StorageUpLo             upLo,
      | ^~~~~~~

