/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.datamodel.types.api;
import de.rcenvironment.core.datamodel.api.TypedDatum;
/**
* Vector data type. Its cells use the {@link #Float} data type. All row indices are zero-based.
*
* @author Robert Mischke
* @author Doreen Seider
*/
public interface VectorTD extends TypedDatum {
/**
* @param rowIndex zero-based row index of the element
* @return {@link FloatTD} of the element
*/
FloatTD getFloatTDOfElement(int rowIndex);
/**
* Sets {@link TypedDatum} for an element.
*
* @param number {@link FloatTD} to set
* @param rowIndex zero-based row index of the element
*/
void setFloatTDForElement(FloatTD number, int rowIndex);
/**
* @return number of rows in the matrix
*/
int getRowDimension();
/**
* Returns a new {@link VectorTD} which is a sub-vector of this one.
*
* @param endRowIndex ending zero-based row index, exclusive.
* @return new {@link VectorTD}
*/
VectorTD getSubVector(int endRowIndex);
/**
* Returns a new {@link VectorTD} which is a sub-vector of this one.
*
* @param beginRowIndex beginning zero-based row index, inclusive.
* @param endRowIndex ending zero-based row index, exclusive.
* @return new {@link VectorTD}
*/
VectorTD getSubVector(int beginRowIndex, int endRowIndex);
/**
* Returns a new {@link FloatTD} array that represents the vector.
*
* @return new {@link FloatTD} array
*/
FloatTD[] toArray();
/**
* @param maxLength maximum length of string representation
* @return string representation
*/
String toLengthLimitedString(int maxLength);
}