本文整理汇总了Java中com.github.fommil.netlib.BLAS类的典型用法代码示例。如果您正苦于以下问题:Java BLAS类的具体用法?Java BLAS怎么用?Java BLAS使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
BLAS类属于com.github.fommil.netlib包,在下文中一共展示了BLAS类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: mult
import com.github.fommil.netlib.BLAS; //导入依赖的package包/类
@Override
public Vector mult(double alpha, Vector x, Vector y) {
if (!(y instanceof DenseVector))
return super.mult(alpha, x, y);
checkMultAdd(x, y);
double[] yd = ((DenseVector) y).getData();
// y = alpha*x
y.set(alpha, x);
// y = A*z
BLAS.getInstance().dtrmv(uplo.netlib(), Transpose.NoTranspose.netlib(),
diag.netlib(), numRows, data, Math.max(1, ld), yd, 1);
return y;
}
示例2: transMult
import com.github.fommil.netlib.BLAS; //导入依赖的package包/类
@Override
public Vector transMult(double alpha, Vector x, Vector y) {
if (!(y instanceof DenseVector))
return super.transMult(alpha, x, y);
checkTransMultAdd(x, y);
double[] yd = ((DenseVector) y).getData();
// y = alpha*x
y.set(alpha, x);
// y = A'*y
BLAS.getInstance().dtrmv(uplo.netlib(), Transpose.Transpose.netlib(),
diag.netlib(), numRows, data, Math.max(1, ld), yd, 1);
return y;
}
示例3: transAmult
import com.github.fommil.netlib.BLAS; //导入依赖的package包/类
@Override
public Matrix transAmult(double alpha, Matrix B, Matrix C) {
if (!(C instanceof DenseMatrix))
return super.transAmult(alpha, B, C);
checkTransAmultAdd(B, C);
double[] Cd = ((DenseMatrix) C).getData();
C.set(B);
// C = alpha*A'*C
BLAS.getInstance().dtrmm(Side.Left.netlib(), uplo.netlib(),
Transpose.Transpose.netlib(), diag.netlib(), C.numRows(),
C.numColumns(), alpha, data, Math.max(1, ld), Cd,
Math.max(1, C.numRows()));
return C;
}
示例4: mult
import com.github.fommil.netlib.BLAS; //导入依赖的package包/类
@Override
public Vector mult(double alpha, Vector x, Vector y) {
if (!(y instanceof DenseVector))
return super.mult(alpha, x, y);
checkMultAdd(x, y);
double[] yd = ((DenseVector) y).getData();
// y = alpha*x
y.set(alpha, x);
// y = A*z
BLAS.getInstance().dtpmv(uplo.netlib(), Transpose.NoTranspose.netlib(),
diag.netlib(), numRows, data, yd, 1);
return y;
}
示例5: transMult
import com.github.fommil.netlib.BLAS; //导入依赖的package包/类
@Override
public Vector transMult(double alpha, Vector x, Vector y) {
if (!(y instanceof DenseVector))
return super.transMult(alpha, x, y);
checkTransMultAdd(x, y);
double[] yd = ((DenseVector) y).getData();
// y = alpha*x
y.set(alpha, x);
// y = A*z
BLAS.getInstance().dtpmv(uplo.netlib(), Transpose.Transpose.netlib(),
diag.netlib(), numRows, data, yd, 1);
return y;
}
示例6: multAdd
import com.github.fommil.netlib.BLAS; //导入依赖的package包/类
@Override
public Matrix multAdd(double alpha, Matrix B, Matrix C) {
if (!(B instanceof DenseMatrix) || !(C instanceof DenseMatrix))
return super.multAdd(alpha, B, C);
checkMultAdd(B, C);
double[] Bd = ((DenseMatrix) B).getData(), Cd = ((DenseMatrix) C)
.getData();
BLAS.getInstance().dsymm(Side.Left.netlib(), uplo.netlib(),
C.numRows(), C.numColumns(), alpha, data,
Math.max(1, C.numRows()), Bd, Math.max(1, C.numRows()), 1, Cd,
Math.max(1, C.numRows()));
return C;
}
示例7: rank1
import com.github.fommil.netlib.BLAS; //导入依赖的package包/类
@Override
public Matrix rank1(double alpha, Vector x, Vector y) {
if (x != y)
throw new IllegalArgumentException("x != y");
if (!(x instanceof DenseVector))
return super.rank1(alpha, x, y);
checkRank1(x, y);
double[] xd = ((DenseVector) x).getData();
BLAS.getInstance().dsyr(uplo.netlib(), numRows, alpha, xd, 1, data,
Math.max(1, numRows));
return this;
}
示例8: rank2
import com.github.fommil.netlib.BLAS; //导入依赖的package包/类
@Override
public Matrix rank2(double alpha, Matrix B, Matrix C) {
if (!(B instanceof DenseMatrix) || !(C instanceof DenseMatrix))
return super.rank2(alpha, B, C);
checkRank2(B, C);
double[] Bd = ((DenseMatrix) B).getData(), Cd = ((DenseMatrix) C)
.getData();
BLAS.getInstance().dsyr2k(uplo.netlib(),
Transpose.NoTranspose.netlib(), numRows, B.numColumns(), alpha,
Bd, Math.max(1, numRows), Cd, Math.max(1, numRows), 1, data,
Math.max(1, numRows));
return this;
}
示例9: transRank2
import com.github.fommil.netlib.BLAS; //导入依赖的package包/类
@Override
public Matrix transRank2(double alpha, Matrix B, Matrix C) {
if (!(B instanceof DenseMatrix) || !(C instanceof DenseMatrix))
return super.transRank2(alpha, B, C);
checkTransRank2(B, C);
double[] Bd = ((DenseMatrix) B).getData(), Cd = ((DenseMatrix) C)
.getData();
BLAS.getInstance().dsyr2k(uplo.netlib(), Transpose.Transpose.netlib(),
numRows, B.numRows(), alpha, Bd, Math.max(1, B.numRows()), Cd,
Math.max(1, B.numRows()), 1, data, Math.max(1, numRows));
return this;
}
示例10: mult
import com.github.fommil.netlib.BLAS; //导入依赖的package包/类
@Override
public Vector mult(double alpha, Vector x, Vector y) {
if (!(y instanceof DenseVector))
return super.mult(alpha, x, y);
checkMultAdd(x, y);
double[] yd = ((DenseVector) y).getData();
// y = alpha*x
y.set(alpha, x);
// y = A*y
BLAS.getInstance().dtbmv(uplo.netlib(), Transpose.NoTranspose.netlib(),
diag.netlib(), numRows, kd, data, kd + 1, yd, 1);
return y;
}
示例11: transMult
import com.github.fommil.netlib.BLAS; //导入依赖的package包/类
@Override
public Vector transMult(double alpha, Vector x, Vector y) {
if (!(y instanceof DenseVector))
return super.transMult(alpha, x, y);
checkTransMultAdd(x, y);
double[] yd = ((DenseVector) y).getData();
// y = alpha*x
y.set(alpha, x);
// y = A*y
BLAS.getInstance().dtbmv(uplo.netlib(), Transpose.Transpose.netlib(),
diag.netlib(), numRows, kd, data, kd + 1, yd, 1);
return y;
}
示例12: multAdd
import com.github.fommil.netlib.BLAS; //导入依赖的package包/类
@Override
public Matrix multAdd(double alpha, Matrix B, Matrix C) {
if (!(B instanceof DenseMatrix) || !(C instanceof DenseMatrix))
return super.multAdd(alpha, B, C);
checkMultAdd(B, C);
double[] Bd = ((DenseMatrix) B).getData(), Cd = ((DenseMatrix) C)
.getData();
BLAS.getInstance().dgemm(Transpose.NoTranspose.netlib(),
Transpose.NoTranspose.netlib(), C.numRows(), C.numColumns(),
numColumns, alpha, data, Math.max(1, numRows), Bd,
Math.max(1, B.numRows()), 1, Cd, Math.max(1, C.numRows()));
return C;
}
示例13: transAmultAdd
import com.github.fommil.netlib.BLAS; //导入依赖的package包/类
@Override
public Matrix transAmultAdd(double alpha, Matrix B, Matrix C) {
if (!(B instanceof DenseMatrix) || !(C instanceof DenseMatrix))
return super.transAmultAdd(alpha, B, C);
checkTransAmultAdd(B, C);
double[] Bd = ((DenseMatrix) B).getData(), Cd = ((DenseMatrix) C)
.getData();
BLAS.getInstance().dgemm(Transpose.Transpose.netlib(),
Transpose.NoTranspose.netlib(), C.numRows(), C.numColumns(),
numRows, alpha, data, Math.max(1, numRows), Bd,
Math.max(1, B.numRows()), 1, Cd, Math.max(1, C.numRows()));
return C;
}
示例14: transBmultAdd
import com.github.fommil.netlib.BLAS; //导入依赖的package包/类
@Override
public Matrix transBmultAdd(double alpha, Matrix B, Matrix C) {
if (!(B instanceof DenseMatrix) || !(C instanceof DenseMatrix))
return super.transBmultAdd(alpha, B, C);
checkTransBmultAdd(B, C);
double[] Bd = ((DenseMatrix) B).getData(), Cd = ((DenseMatrix) C)
.getData();
BLAS.getInstance().dgemm(Transpose.NoTranspose.netlib(),
Transpose.Transpose.netlib(), C.numRows(), C.numColumns(),
numColumns, alpha, data, Math.max(1, numRows), Bd,
Math.max(1, B.numRows()), 1, Cd, Math.max(1, C.numRows()));
return C;
}
示例15: transABmultAdd
import com.github.fommil.netlib.BLAS; //导入依赖的package包/类
@Override
public Matrix transABmultAdd(double alpha, Matrix B, Matrix C) {
if (!(B instanceof DenseMatrix) || !(C instanceof DenseMatrix))
return super.transABmultAdd(alpha, B, C);
checkTransABmultAdd(B, C);
double[] Bd = ((DenseMatrix) B).getData(), Cd = ((DenseMatrix) C)
.getData();
BLAS.getInstance().dgemm(Transpose.Transpose.netlib(),
Transpose.Transpose.netlib(), C.numRows(), C.numColumns(),
numRows, alpha, data, Math.max(1, numRows), Bd,
Math.max(1, B.numRows()), 1, Cd, Math.max(1, C.numRows()));
return C;
}