Class BLAS

Object
org.apache.spark.ml.linalg.BLAS

public class BLAS extends Object
BLAS routines for MLlib's vectors and matrices.
  • Constructor Details

    • BLAS

      public BLAS()
  • Method Details

    • axpy

      public static void axpy(double a, Vector x, Vector y)
      y += a * x
      Parameters:
      a - (undocumented)
      x - (undocumented)
      y - (undocumented)
    • dot

      public static double dot(Vector x, Vector y)
      dot(x, y)
      Parameters:
      x - (undocumented)
      y - (undocumented)
      Returns:
      (undocumented)
    • copy

      public static void copy(Vector x, Vector y)
      y = x
      Parameters:
      x - (undocumented)
      y - (undocumented)
    • scal

      public static void scal(double a, Vector x)
      x = a * x
      Parameters:
      a - (undocumented)
      x - (undocumented)
    • spr

      public static void spr(double alpha, Vector v, DenseVector U)
      Adds alpha * x * x.t to a matrix in-place. This is the same as BLAS's ?SPR.

      Parameters:
      U - the upper triangular part of the matrix in a DenseVector(column major)
      alpha - (undocumented)
      v - (undocumented)
    • dspmv

      public static void dspmv(int n, double alpha, DenseVector A, DenseVector x, double beta, DenseVector y)
      y := alpha*A*x + beta*y

      Parameters:
      n - The order of the n by n matrix A.
      A - The upper triangular part of A in a DenseVector (column major).
      x - The DenseVector transformed by A.
      y - The DenseVector to be modified in place.
      alpha - (undocumented)
      beta - (undocumented)
    • spr

      public static void spr(double alpha, Vector v, double[] U)
      Adds alpha * v * v.t to a matrix in-place. This is the same as BLAS's ?SPR.

      Parameters:
      U - the upper triangular part of the matrix packed in an array (column major)
      alpha - (undocumented)
      v - (undocumented)
    • syr

      public static void syr(double alpha, Vector x, DenseMatrix A)
      A := alpha * x * x^T^ + A
      Parameters:
      alpha - a real scalar that will be multiplied to x * x^T^.
      x - the vector x that contains the n elements.
      A - the symmetric matrix A. Size of n x n.
    • gemm

      public static void gemm(double alpha, Matrix A, DenseMatrix B, double beta, DenseMatrix C)
      C := alpha * A * B + beta * C
      Parameters:
      alpha - a scalar to scale the multiplication A * B.
      A - the matrix A that will be left multiplied to B. Size of m x k.
      B - the matrix B that will be left multiplied by A. Size of k x n.
      beta - a scalar that can be used to scale matrix C.
      C - the resulting matrix C. Size of m x n. C.isTransposed must be false.
    • gemm

      public static void gemm(double alpha, Matrix A, DenseMatrix B, double beta, double[] CValues)
      CValues[0: A.numRows * B.numCols] := alpha * A * B + beta * CValues[0: A.numRows * B.numCols]
      Parameters:
      alpha - a scalar to scale the multiplication A * B.
      A - the matrix A that will be left multiplied to B. Size of m x k.
      B - the matrix B that will be left multiplied by A. Size of k x n.
      beta - a scalar that can be used to scale matrix C.
      CValues - the values of matrix C. C.isTransposed is supposed to be false.
    • gemv

      public static void gemv(double alpha, Matrix A, double[] x, double beta, double[] y)
      y[0: A.numRows] := alpha * A * x[0: A.numCols] + beta * y[0: A.numRows]
      Parameters:
      alpha - (undocumented)
      A - (undocumented)
      x - (undocumented)
      beta - (undocumented)
      y - (undocumented)
    • gemv

      public static void gemv(double alpha, Matrix A, Vector x, double beta, DenseVector y)
      y := alpha * A * x + beta * y
      Parameters:
      alpha - a scalar to scale the multiplication A * x.
      A - the matrix A that will be left multiplied to x. Size of m x n.
      x - the vector x that will be left multiplied by A. Size of n x 1.
      beta - a scalar that can be used to scale vector y.
      y - the resulting vector y. Size of m x 1.