/*
* This file is part of the X10 project (http://x10-lang.org).
*
* This file is licensed to You under the Eclipse Public License (EPL);
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.opensource.org/licenses/eclipse-1.0.php
*
* (C) Copyright IBM Corporation 2006-2011.
*/
package x10.matrix.blas;
/**
* This Java class provide wrap JNI for BLAS library
*/
public class WrapBLAS {
static {
System.loadLibrary("jblas");
}
public static native void test();
public static native void scale(int n, double alpha, double[] x);
public static native void copy(int n, double[] x, double[] y);
public static native double dotProd(int n, double[] x, double[] y);
public static native double norm2(int n, double[] x);
public static native double absSum(int n, double[] x);
public static native void matmatMult(double[] A, double[] B, double[] C, int[] dim, double[] scale, int[] trans);
public static native void symmatMult(double[] A, double[] B, double[] C, int[] dim, double[] scale);
public static native void matsymMult(double[] B, double[] A, double[] C, int[] dim, double[] scale);
public static native void matvecMult(double[] A, double[] x, double[] y, int[] dim, double[] scale, int transA);
public static native void symvecMult(double[] A, double[] x, double[] y, int[] dim, double[] scale);
public static native void trivecMult(double[] A, int uplo, double[] bx, int lda, int tranA);
public static native void trimatMult(double[] A, double[] B, int[] dim, int tranA);
public static native void mattriMult(double[] B, double[] A, int[] dim, int tranA);
public static native void trivecSolve(double[] A, double[] bx, int[] dim, int tranA);
public static native void trimatSolve(double[] A, double[] BX, int[] dim, int tranA);
public static native void mattriSolve(double[] BX, double[] A, int[] dim, int tranA);
}