Package org.apache.spark.ml.impl
Class Utils
Object
org.apache.spark.ml.impl.Utils
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic doubleEPSILON()static intindexUpperTriangular(int n, int i, int j) Indexing in an array representing the upper triangular part of a matrix into an n * n array representing the full symmetric matrix (column major).static doublelog1pExp(double x) Whenxis positive and large, computingmath.log(1 + math.exp(x))will lead to arithmetic overflow.static voidsoftmax(double[] array) Perform in-place softmax conversion.static voidsoftmax(double[] input, int n, int offset, int step, double[] output) Perform softmax conversion.static double[]unpackUpperTriangular(int n, double[] triangularValues) Convert an n * (n + 1) / 2 dimension array representing the upper triangular part of a matrix into an n * n array representing the full symmetric matrix (column major).
- 
Constructor Details- 
Utilspublic Utils()
 
- 
- 
Method Details- 
EPSILONpublic static double EPSILON()
- 
unpackUpperTriangularpublic static double[] unpackUpperTriangular(int n, double[] triangularValues) Convert an n * (n + 1) / 2 dimension array representing the upper triangular part of a matrix into an n * n array representing the full symmetric matrix (column major).- Parameters:
- n- The order of the n by n matrix.
- triangularValues- The upper triangular part of the matrix packed in an array (column major).
- Returns:
- A dense matrix which represents the symmetric matrix in column major.
 
- 
indexUpperTriangularpublic static int indexUpperTriangular(int n, int i, int j) Indexing in an array representing the upper triangular part of a matrix into an n * n array representing the full symmetric matrix (column major). val symmetricValues = unpackUpperTriangularMatrix(n, triangularValues) val matrix = new DenseMatrix(n, n, symmetricValues) val index = indexUpperTriangularMatrix(n, i, j) then: symmetricValues(index) == matrix(i, j)- Parameters:
- n- The order of the n by n matrix.
- i- (undocumented)
- j- (undocumented)
- Returns:
- (undocumented)
 
- 
log1pExppublic static double log1pExp(double x) Whenxis positive and large, computingmath.log(1 + math.exp(x))will lead to arithmetic overflow. This will happen whenx > 709.78which is not a very large number. It can be addressed by rewriting the formula intox + math.log1p(math.exp(-x))whenxis positive.- Parameters:
- x- a floating-point value as input.
- Returns:
- the result of math.log(1 + math.exp(x)).
 
- 
softmaxpublic static void softmax(double[] array) Perform in-place softmax conversion.- Parameters:
- array- (undocumented)
 
- 
softmaxpublic static void softmax(double[] input, int n, int offset, int step, double[] output) Perform softmax conversion.- Parameters:
- input- (undocumented)
- n- (undocumented)
- offset- (undocumented)
- step- (undocumented)
- output- (undocumented)
 
 
-