/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.apache.sysml.lops; import org.apache.sysml.hops.HopsException; import org.apache.sysml.runtime.controlprogram.caching.MatrixObject.UpdateType; /** * class to maintain output parameters for a lop. * */ public class OutputParameters { public enum Format { TEXT, BINARY, MM, CSV }; private boolean _blocked = true; private long _num_rows = -1; private long _num_cols = -1; private long _nnz = -1; private UpdateType _updateType = UpdateType.COPY; private long _num_rows_in_block = -1; private long _num_cols_in_block = -1; private String _file_name = null; private String _file_label = null; Format matrix_format = Format.BINARY; public String getFile_name() { return _file_name; } public void setFile_name(String fileName) { _file_name = fileName; } public String getLabel() { return _file_label; } public void setLabel(String label) { _file_label = label; } public void setDimensions(long rows, long cols, long rows_per_block, long cols_per_block, long nnz) throws HopsException { _num_rows = rows; _num_cols = cols; _nnz = nnz; _num_rows_in_block = rows_per_block; _num_cols_in_block = cols_per_block; if ( _num_rows_in_block == 0 && _num_cols_in_block == 0 ) { _blocked = false; } else if (_num_rows_in_block == -1 && _num_cols_in_block == -1) { _blocked = false; } else if ( _num_rows_in_block > 0 && _num_cols_in_block > 0 ) { _blocked = true; } else { throw new HopsException("In OutputParameters Lop, Invalid values for blocking dimensions: [" + _num_rows_in_block + "," + _num_cols_in_block +"]."); } } public void setDimensions(long rows, long cols, long rows_per_block, long cols_per_block, long nnz, UpdateType update) throws HopsException { _updateType = update; setDimensions(rows, cols, rows_per_block, cols_per_block, nnz); } public Format getFormat() { return matrix_format; } public void setFormat(Format fmt) { matrix_format = fmt; } public boolean isBlocked() { return _blocked; } public void setBlocked(boolean blocked) { _blocked = blocked; } public long getNumRows() { return _num_rows; } public void setNumRows(long rows) { _num_rows = rows; } public long getNumCols() { return _num_cols; } public void setNumCols(long cols) { _num_cols = cols; } public Long getNnz() { return _nnz; } public void setNnz(long nnz) { _nnz = nnz; } public UpdateType getUpdateType() { return _updateType; } public void setUpdateType(UpdateType update) { _updateType = update; } public long getRowsInBlock() { return _num_rows_in_block; } public void setRowsInBlock(long rows_in_block) { _num_rows_in_block = rows_in_block; } public long getColsInBlock() { return _num_cols_in_block; } public void setColsInBlock(long cols_in_block) { _num_cols_in_block = cols_in_block; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("rows=" + getNumRows() + Lop.VALUETYPE_PREFIX); sb.append("cols=" + getNumCols() + Lop.VALUETYPE_PREFIX); sb.append("nnz=" + getNnz() + Lop.VALUETYPE_PREFIX); sb.append("updateInPlace=" + getUpdateType().toString() + Lop.VALUETYPE_PREFIX); sb.append("rowsInBlock=" + getRowsInBlock() + Lop.VALUETYPE_PREFIX); sb.append("colsInBlock=" + getColsInBlock() + Lop.VALUETYPE_PREFIX); sb.append("isBlockedRepresentation=" + isBlocked() + Lop.VALUETYPE_PREFIX); sb.append("format=" + getFormat() + Lop.VALUETYPE_PREFIX); sb.append("label=" + getLabel() + Lop.VALUETYPE_PREFIX); sb.append("filename=" + getFile_name()); return sb.toString(); } }