Buggy code:
public class BlasWrapper implements org . nd4j . linalg . factory . BlasWrapper { @ Override public INDArray swap ( INDArray x , INDArray y ) { } @ Override public INDArray scal ( double alpha , INDArray x ) { } @ Override public INDArray scal ( float alpha , INDArray x ) { } @ Override public IComplexNDArray scal ( IComplexFloat alpha , IComplexNDArray x ) { } @ Override public IComplexNDArray scal ( IComplexDouble alpha , IComplexNDArray x ) { } @ Override public INDArray copy ( INDArray x , INDArray y ) { } @ Override public IComplexNDArray copy ( IComplexNDArray x , IComplexNDArray y ) { } @ Override public INDArray axpy ( double da , INDArray dx , INDArray dy ) { } @ Override public INDArray axpy ( float da , INDArray dx , INDArray dy ) { } @ Override public IComplexNDArray axpy ( IComplexNumber da , IComplexNDArray dx , IComplexNDArray dy ) { } @ Override public double dot ( INDArray x , INDArray y ) { } @ Override public IComplexNumber dotc ( IComplexNDArray x , IComplexNDArray y ) { } @ Override public IComplexNumber dotu ( IComplexNDArray x , IComplexNDArray y ) { } @ Override public double nrm2 ( INDArray x ) { } @ Override public double nrm2 ( IComplexNDArray x ) { } @ Override public double asum ( INDArray x ) { } @ Override public double asum ( IComplexNDArray x ) { } @ Override public int iamax ( INDArray x ) { } @ Override public int iamax ( IComplexNDArray x ) { } @ Override public INDArray gemv ( double alpha , INDArray a , INDArray x , double beta , INDArray y ) { } @ Override public INDArray gemv ( float alpha , INDArray a , INDArray x , float beta , INDArray y ) { } @ Override public INDArray ger ( double alpha , INDArray x , INDArray y , INDArray a ) { } @ Override public INDArray ger ( float alpha , INDArray x , INDArray y , INDArray a ) { } @ Override public IComplexNDArray gemv ( IComplexDouble alpha , IComplexNDArray a , IComplexNDArray x , IComplexDouble beta , IComplexNDArray y ) { } @ Override public IComplexNDArray gemv ( IComplexFloat alpha , IComplexNDArray a , IComplexNDArray x , IComplexFloat beta , IComplexNDArray y ) { <START_BUG> DataTypeValidation . assertDouble ( a , x , y ) ; <END_BUG> NativeBlas . cgemv ( 'N' , a . rows ( ) , a . columns ( ) , ( ( ComplexFloat ) ( alpha ) ) , a . data ( ) . asFloat ( ) , a . blasOffset ( ) , a . rows ( ) , x . data ( ) . asFloat ( ) , x . offset ( ) , x . secondaryStride ( ) , ( ( ComplexFloat ) ( beta ) ) , y . data ( ) . asFloat ( ) , y . blasOffset ( ) , y . secondaryStride ( ) ) ; return y ; } @ Override public IComplexNDArray geru ( IComplexDouble alpha , IComplexNDArray x , IComplexNDArray y , IComplexNDArray a ) { } @ Override public IComplexNDArray geru ( IComplexFloat alpha , IComplexNDArray x , IComplexNDArray y , IComplexNDArray a ) { } @ Override public IComplexNDArray gerc ( IComplexDouble alpha , IComplexNDArray x , IComplexNDArray y , IComplexNDArray a ) { } @ Override public IComplexNDArray gerc ( IComplexFloat alpha , IComplexNDArray x , IComplexNDArray y , IComplexNDArray a ) { } @ Override public INDArray gemm ( double alpha , INDArray a , INDArray b , double beta , INDArray c ) { } @ Override public INDArray gemm ( float alpha , INDArray a , INDArray b , float beta , INDArray c ) { } @ Override public IComplexNDArray gemm ( IComplexNumber alpha , IComplexNDArray a , IComplexNDArray b , IComplexNumber beta , IComplexNDArray c ) { } @ Override public INDArray gesv ( INDArray a , int [ ] ipiv , INDArray b ) { } public void checkInfo ( String name , int info ) { } @ Override public INDArray sysv ( char uplo , INDArray a , int [ ] ipiv , INDArray b ) { } @ Override public int syev ( char jobz , char uplo , INDArray a , INDArray w ) { } @ Override public int syevx ( char jobz , char range , char uplo , INDArray a , double vl , double vu , int il , int iu , double abstol , INDArray w , INDArray z ) { } @ Override public int syevx ( char jobz , char range , char uplo , INDArray a , float vl , float vu , int il , int iu , float abstol , INDArray w , INDArray z ) { } public int syevd ( char jobz , char uplo , INDArray A , INDArray w ) { } @ Override public int syevr ( char jobz , char range , char uplo , INDArray a , double vl , double vu , int il , int iu , double abstol , INDArray w , INDArray z , int [ ] isuppz ) { } @ Override public int syevr ( char jobz , char range , char uplo , INDArray a , float vl , float vu , int il , int iu , float abstol , INDArray w , INDArray z , int [ ] isuppz ) { } @ Override public void posv ( char uplo , INDArray A , INDArray B ) { } @ Override public int geev ( char jobvl , char jobvr , INDArray A , INDArray WR , INDArray WI , INDArray VL , INDArray VR ) { }

Fix:
DataTypeValidation . assertFloat ( a , x , y ) ;