Repository: incubator-systemml
Updated Branches:
  refs/heads/master de1e119de -> 6efa0f36e


[SYSTEMML-1241] Fix diag description in DML Language Reference

Fix incorrect description of diag() in DML Language Reference.
Make diag error message more descriptive.

Closes #387.


Project: http://git-wip-us.apache.org/repos/asf/incubator-systemml/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-systemml/commit/6efa0f36
Tree: http://git-wip-us.apache.org/repos/asf/incubator-systemml/tree/6efa0f36
Diff: http://git-wip-us.apache.org/repos/asf/incubator-systemml/diff/6efa0f36

Branch: refs/heads/master
Commit: 6efa0f36e1ae646f6a3fa4c9c6a8be09cf911612
Parents: de1e119
Author: Deron Eriksson <[email protected]>
Authored: Fri Feb 10 10:57:41 2017 -0800
Committer: Deron Eriksson <[email protected]>
Committed: Fri Feb 10 10:57:41 2017 -0800

----------------------------------------------------------------------
 docs/dml-language-reference.md                                    | 2 +-
 .../java/org/apache/sysml/parser/BuiltinFunctionExpression.java   | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6efa0f36/docs/dml-language-reference.md
----------------------------------------------------------------------
diff --git a/docs/dml-language-reference.md b/docs/dml-language-reference.md
index f3fba3b..05625fd 100644
--- a/docs/dml-language-reference.md
+++ b/docs/dml-language-reference.md
@@ -835,7 +835,7 @@ sign() | Returns a matrix representing the signs of the 
input matrix elements, w
 Function | Description | Parameters | Example
 -------- | ----------- | ---------- | -------
 cholesky() | Computes the Cholesky decomposition of symmetric input matrix A | 
Input: (A &lt;matrix&gt;) <br/> Output: &lt;matrix&gt; | <span 
style="white-space: nowrap;">A = matrix("4 12 -16 12 37 -43</span> -16 -43 98", 
rows=3, cols=3) <br/> B = cholesky(A)<br/> Matrix B: [[2, 0, 0], [6, 1, 0], 
[-8, 5, 3]]
-diag() | Create diagonal matrix from (n x 1) or (1 x n) matrix, or take 
diagonal from square matrix | Input: (n x 1) or (1 x n) matrix, or (n x n) 
matrix <br/> Output: (n x n) matrix, or (n x 1) matrix | diag(X)
+diag() | Create diagonal matrix from (n x 1) matrix, or take diagonal from 
square matrix | Input: (n x 1) matrix, or (n x n) matrix <br/> Output: (n x n) 
matrix, or (n x 1) matrix | D = diag(matrix(1.0, rows=3, cols=1))<br/> E = 
diag(matrix(1.0, rows=3, cols=3))
 eigen() | Computes Eigen decomposition of input matrix A. The Eigen 
decomposition consists of two matrices V and w such that A = V %\*% diag(w) 
%\*% t(V). The columns of V are the eigenvectors of the original matrix A. And, 
the eigen values are given by w. <br/> It is important to note that this 
function can operate only on small-to-medium sized input matrix that can fit in 
the main memory. For larger matrices, an out-of-memory exception is raised. | 
Input : (A &lt;matrix&gt;) <br/> Output : [w &lt;(m x 1) matrix&gt;, V 
&lt;matrix&gt;] <br/> A is a square symmetric matrix with dimensions (m x m). 
This function returns two matrices w and V, where w is (m x 1) and V is of size 
(m x m). | [w, V] = eigen(A)
 lu() | Computes Pivoted LU decomposition of input matrix A. The LU 
decomposition consists of three matrices P, L, and U such that P %\*% A = L 
%\*% U, where P is a permutation matrix that is used to rearrange the rows in A 
before the decomposition can be computed. L is a lower-triangular matrix 
whereas U is an upper-triangular matrix. <br/> It is important to note that 
this function can operate only on small-to-medium sized input matrix that can 
fit in the main memory. For larger matrices, an out-of-memory exception is 
raised. | Input : (A &lt;matrix&gt;) <br/> Output : [&lt;matrix&gt;, 
&lt;matrix&gt;, &lt;matrix&gt;] <br/> A is a square matrix with dimensions m x 
m. This function returns three matrices P, L, and U, all of which are of size m 
x m. | [P, L, U] = lu(A)
 qr() | Computes QR decomposition of input matrix A using Householder 
reflectors. The QR decomposition of A consists of two matrices Q and R such 
that A = Q%\*%R where Q is an orthogonal matrix (i.e., Q%\*%t(Q) = t(Q)%\*%Q = 
I, identity matrix) and R is an upper triangular matrix. For efficiency 
purposes, this function returns the matrix of Householder reflector vectors H 
instead of Q (which is a large m x m potentially dense matrix). The Q matrix 
can be explicitly computed from H, if needed. In most applications of QR, one 
is interested in calculating Q %\*% B or t(Q) %\*% B – and, both can be 
computed directly using H instead of explicitly constructing the large Q 
matrix. <br/> It is important to note that this function can operate only on 
small-to-medium sized input matrix that can fit in the main memory. For larger 
matrices, an out-of-memory exception is raised. | Input : (A &lt;matrix&gt;) 
<br/> Output : [&lt;matrix&gt;, &lt;matrix&gt;] <br/> A is a (m x n) matrix, 
which can e
 ither be a square matrix (m=n) or a rectangular matrix (m != n). This function 
returns two matrices H and R of size (m x n) i.e., same size as of the input 
matrix A. | [H, R] = qr(A)

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6efa0f36/src/main/java/org/apache/sysml/parser/BuiltinFunctionExpression.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/parser/BuiltinFunctionExpression.java 
b/src/main/java/org/apache/sysml/parser/BuiltinFunctionExpression.java
index 494b919..19565ee 100644
--- a/src/main/java/org/apache/sysml/parser/BuiltinFunctionExpression.java
+++ b/src/main/java/org/apache/sysml/parser/BuiltinFunctionExpression.java
@@ -627,7 +627,8 @@ public class BuiltinFunctionExpression extends 
DataIdentifier
                                else 
                                {
                                        if (id.getDim1() != id.getDim2()) {
-                                               raiseValidateError("Invoking 
diag on matrix with dimensions ("
+                                               raiseValidateError("diag can 
either: (1) create diagonal matrix from (n x 1) matrix, or (2) take diagonal 
from a square matrix. "
+                                                               + "Error 
invoking diag on matrix with dimensions ("
                                                                + id.getDim1() 
+ "," + id.getDim2()
                                                                + ") in " + 
this.toString(), conditional, LanguageErrorCodes.INVALID_PARAMETERS);
                                        }

Reply via email to