@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 INDArray ger(Number alpha, INDArray x, INDArray y, INDArray a) { level2().ger(BlasBufferUtil.getCharForTranspose(x), alpha.doubleValue(), x, y, a); return a; }
/** * Returns the BLAS library vendor * * @return the BLAS library vendor */ @Override public Vendor getBlasVendor() { int vendor = getBlasVendorId(); boolean isUnknowVendor = ((vendor > Vendor.values().length - 1) || (vendor <= 0)); if (isUnknowVendor) { return Vendor.UNKNOWN; } return Vendor.values()[vendor]; } }
@Override public int iamax(INDArray x) { return level1().iamax(x); }
@Override public double nrm2(INDArray x) { LinAlgExceptions.assertVector(x); return level1().nrm2(x); }
@Override public double asum(INDArray x) { LinAlgExceptions.assertVector(x); return level1().asum(x); }
@Override public INDArray gemv(Number alpha, INDArray a, INDArray x, double beta, INDArray y) { LinAlgExceptions.assertVector(x, y); LinAlgExceptions.assertMatrix(a); level2().gemv(BlasBufferUtil.getCharForTranspose(a), BlasBufferUtil.getCharForTranspose(x), alpha.doubleValue(), a, x, beta, y); return y; }
private String shapeInfo(INDArray arr) { return Arrays.toString(arr.shape()) + " and stride " + Arrays.toString(arr.stride()) + " and offset " + arr.offset() + " and blas stride of " + BlasBufferUtil.getBlasStride(arr); }
@Override public INDArray copy(INDArray x, INDArray y) { LinAlgExceptions.assertVector(x, y); level1().copy(x, y); return y; }
@Override public INDArray swap(INDArray x, INDArray y) { level1().swap(x, y); return y; }
@Override public IComplexNDArray geru(IComplexNumber alpha, IComplexNDArray x, IComplexNDArray y, IComplexNDArray a) { level2().geru('N', alpha, x, y, a); return a; }
@Override public int syev(char jobz, char uplo, INDArray a, INDArray w) { return lapack().syev(jobz, uplo, a, w); }
@Override public IComplexNDArray gemv(IComplexNumber alpha, IComplexNDArray a, IComplexNDArray x, IComplexNumber beta, IComplexNDArray y) { LinAlgExceptions.assertVector(x, y); LinAlgExceptions.assertMatrix(a); level2().gemv('N', 'N', alpha, a, x, beta, y); return y; }
@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 int iamax(IComplexNDArray x) { LinAlgExceptions.assertVector(x); return level1().iamax(x); }
@Override public IComplexNumber nrm2(IComplexNDArray x) { LinAlgExceptions.assertVector(x); return level1().nrm2(x); }
@Override public IComplexNumber asum(IComplexNDArray x) { LinAlgExceptions.assertVector(x); return level1().asum(x); }
/** * Returns the BLAS library vendor * * @return the BLAS library vendor */ @Override public Vendor getBlasVendor() { int vendor = getBlasVendorId(); boolean isUnknowVendor = ((vendor > Vendor.values().length - 1) || (vendor <= 0)); if (isUnknowVendor) { return Vendor.UNKNOWN; } return Vendor.values()[vendor]; } }
@Override public IComplexNDArray copy(IComplexNDArray x, IComplexNDArray y) { LinAlgExceptions.assertVector(x, y); level1().copy(x, y); return y; }
@Override public INDArray gemm(float alpha, INDArray a, INDArray b, float beta, INDArray c) { LinAlgExceptions.assertMatrix(a, b, c); if (a.data().dataType() == DataBuffer.Type.DOUBLE) { return gemm((double) alpha, a, b, (double) beta, c); } level3().gemm(BlasBufferUtil.getCharForTranspose(a), BlasBufferUtil.getCharForTranspose(b), BlasBufferUtil.getCharForTranspose(c), alpha, a, b, beta, c); return c; }