@Override public INDArray gemm(double alpha, INDArray a, INDArray b, double beta, INDArray c) { LinAlgExceptions.assertMatrix(a, b, c); if (a.data().dataType() == DataBuffer.Type.FLOAT) { return gemm((float) alpha, a, b, (float) beta, c); } level3().gemm(BlasBufferUtil.getCharForTranspose(a), BlasBufferUtil.getCharForTranspose(b), BlasBufferUtil.getCharForTranspose(c), alpha, a, b, beta, c); return c; }
@Override public INDArray gemv(double alpha, INDArray a, INDArray x, double beta, INDArray y) { LinAlgExceptions.assertVector(x, y); LinAlgExceptions.assertMatrix(a); if (a.data().dataType() == DataBuffer.Type.FLOAT) { // DefaultOpExecutioner.validateDataType(DataBuffer.Type.FLOAT, a, x, y); return gemv((float) alpha, a, x, (float) beta, y); } else { level2().gemv('N', 'N', alpha, a, x, beta, y); } return y; }
@Override public INDArray swap(INDArray x, INDArray y) { level1().swap(x, y); return y; }
@Override public IComplexNDArray geru(IComplexDouble alpha, IComplexNDArray x, IComplexNDArray y, IComplexNDArray a) { LinAlgExceptions.assertVector(x, y); LinAlgExceptions.assertMatrix(a); if (x.data().dataType() == DataBuffer.Type.FLOAT) { return geru(alpha.asFloat(), x, y, a); } level2().geru('N', alpha, x, y, a); return a; }
@Override public IComplexNDArray geru(IComplexNumber alpha, IComplexNDArray x, IComplexNDArray y, IComplexNDArray a) { level2().geru('N', alpha, x, y, a); return a; }
@Override public void saxpy(double alpha, INDArray x, INDArray y) { axpy(alpha, x, y); }
@Override public IComplexNDArray gemm(IComplexNumber alpha, IComplexNDArray a, IComplexNDArray b, IComplexNumber beta, IComplexNDArray c) { LinAlgExceptions.assertMatrix(a, b, c); level3().gemm(BlasBufferUtil.getCharForTranspose(a), BlasBufferUtil.getCharForTranspose(b), BlasBufferUtil.getCharForTranspose(c), alpha, a, b, beta, c); return c; }
@Override public int syev(char jobz, char uplo, INDArray a, INDArray w) { return lapack().syev(jobz, uplo, a, w); }
@Override public int iamax(INDArray x) { return level1().iamax(x); }
@Override public IComplexNDArray geru(IComplexFloat alpha, IComplexNDArray x, IComplexNDArray y, IComplexNDArray a) { LinAlgExceptions.assertVector(x, y); LinAlgExceptions.assertMatrix(a); if (x.data().dataType() == DataBuffer.Type.DOUBLE) { return geru(alpha.asDouble(), x, y, a); } level2().geru('N', alpha, x, y, a); return a; }
@Override public INDArray ger(Number alpha, INDArray x, INDArray y, INDArray a) { level2().ger(BlasBufferUtil.getCharForTranspose(x), alpha.doubleValue(), x, y, a); return a; }
@Override public void saxpy(float alpha, INDArray x, INDArray y) { axpy(alpha, x, y); }
@Override public IComplexNDArray gemm(IComplexNumber alpha, IComplexNDArray a, IComplexNDArray b, IComplexNumber beta, IComplexNDArray c) { LinAlgExceptions.assertMatrix(a, b, c); level3().gemm(BlasBufferUtil.getCharForTranspose(a), BlasBufferUtil.getCharForTranspose(b), BlasBufferUtil.getCharForTranspose(c), alpha, a, b, beta, c); return c; }