Vectors and Matrices

The OOFEMlib provides the abstraction for integer vectors (IntArray) and for real vectors and matrices (FloatArray and FloatMatrix). The usual arithmetic operations (like vector and matrix additions, substractions, matrix vector multiplication, matrix inverse, solution of linear system, finding eigenvalues and eigenvectors) are provided. Hovewer, the usual math operators ('+','*') are not overloaded, user has to call specific routines. The vector and matrices provide both 0-based and 1-based component access, they allow for dynamicall resize with optinal chunk. In fact, the current implementation of resize only grows the receiver, the possible request for shring does not cause the realocation of memory, since allocated memory is kept for future possible resize. If resize operation wants to force allocation, then hardResize should be invoked instead. The prefered argument passing is by reference, even for function or procedure return values. The called function performs resize and fills up the return parametr(s). This is motivated by aim to avoid memory allocation/dealocation problems. The programer should always avoid to return pointers to newly allocated arrays or matrices. See section ``Coding Standards'' for details.



Borek Patzak 2018-01-02