package org.openlca.eigen;
public class Blas {
/**
* Matrix-matrix multiplication: C := A * B
*
* @param rowsA
* [in] number of rows of matrix A
* @param colsB
* [in] number of columns of matrix B
* @param k
* [in] number of columns of matrix A and number of rows of
* matrix B
* @param a
* [in] matrix A (size = rowsA*k)
* @param b
* [in] matrix B (size = k * colsB)
* @param c
* [out] matrix C (size = rowsA * colsB)
*/
public static native void dMmult(int rowsA, int colsB, int k,
double[] a, double[] b, double[] c);
/**
* Matrix-matrix multiplication: C := A * B (single precision)
*
* @param rowsA
* [in] number of rows of matrix A
* @param colsB
* [in] number of columns of matrix B
* @param k
* [in] number of columns of matrix A and number of rows of
* matrix B
* @param a
* [in] matrix A (size = rowsA*k)
* @param b
* [in] matrix B (size = k * colsB)
* @param c
* [out] matrix C (size = rowsA * colsB)
*/
public static native void sMmult(int rowsA, int colsB,
int k, float[] a, float[] b, float[] c);
/**
* Matrix-vector multiplication: y:= A * x
*
* @param rowsA
* [in] rows of matrix A
* @param colsA
* [in] columns of matrix A
* @param a
* [in] the matrix A
* @param x
* [in] the vector x
* @param y
* [out] the resulting vector y
*/
public static native void dMVmult(int rowsA, int colsA,
double[] a, double[] x, double[] y);
/**
* Matrix-vector multiplication: y:= A * x (single precision)
*
* @param rowsA
* [in] rows of matrix A
* @param colsA
* [in] columns of matrix A
* @param a
* [in] the matrix A
* @param x
* [in] the vector x
* @param y
* [out] the resulting vector y
*/
public static native void sMVmult(int rowsA, int colsA,
float[] a, float[] x, float[] y);
}