[MINOR] Fix missing warning on truncation of matrix/frame toString Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/5b8d6265 Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/5b8d6265 Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/5b8d6265
Branch: refs/heads/master Commit: 5b8d62659b2e5727bebcaf0d2681fc4ecd4ea85f Parents: 60ad522 Author: Matthias Boehm <mboe...@gmail.com> Authored: Tue Oct 17 20:54:01 2017 -0700 Committer: Matthias Boehm <mboe...@gmail.com> Committed: Tue Oct 17 21:39:58 2017 -0700 ---------------------------------------------------------------------- .../cp/ParameterizedBuiltinCPInstruction.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/5b8d6265/src/main/java/org/apache/sysml/runtime/instructions/cp/ParameterizedBuiltinCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/ParameterizedBuiltinCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/ParameterizedBuiltinCPInstruction.java index e8a5f4a..f6532d7 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/ParameterizedBuiltinCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/ParameterizedBuiltinCPInstruction.java @@ -26,6 +26,7 @@ import org.apache.sysml.lops.Lop; import org.apache.sysml.parser.ParameterizedBuiltinFunctionExpression; import org.apache.sysml.parser.Statement; import org.apache.sysml.runtime.DMLRuntimeException; +import org.apache.sysml.runtime.controlprogram.caching.CacheBlock; import org.apache.sysml.runtime.controlprogram.caching.CacheableData; import org.apache.sysml.runtime.controlprogram.caching.FrameObject; import org.apache.sysml.runtime.controlprogram.caching.MatrixObject; @@ -328,10 +329,12 @@ public class ParameterizedBuiltinCPInstruction extends ComputationCPInstruction String out = null; if( data instanceof MatrixObject ) { MatrixBlock matrix = (MatrixBlock) data.acquireRead(); + warnOnTrunction(matrix, rows, cols); out = DataConverter.toString(matrix, sparse, separator, lineseparator, rows, cols, decimal); } else if( data instanceof FrameObject ) { FrameBlock frame = (FrameBlock) data.acquireRead(); + warnOnTrunction(frame, rows, cols); out = DataConverter.toString(frame, sparse, separator, lineseparator, rows, cols, decimal); } else { @@ -342,6 +345,17 @@ public class ParameterizedBuiltinCPInstruction extends ComputationCPInstruction } else { throw new DMLRuntimeException("Unknown opcode : " + opcode); - } + } + } + + private void warnOnTrunction(CacheBlock data, int rows, int cols) { + //warn on truncation because users might not be aware and use toString for verification + if( (getParam("rows")==null && data.getNumRows()>rows) + || (getParam("cols")==null && data.getNumColumns()>cols) ) + { + LOG.warn("Truncating "+data.getClass().getSimpleName()+" of size " + + data.getNumRows()+"x"+data.getNumColumns()+" to "+rows+"x"+cols+". " + + "Use toString(X, rows=..., cols=...) if necessary."); + } } }