Class xlifepp::SymbolicTermMatrix#
-
class SymbolicTermMatrix#
-
handles expressions involving xlifepp::TermMatrix’s
xlifepp::SymbolicTermMatrix class is designed to handle any algebraic expression involving some xlifepp::TermMatrix The following symbolic operations are available + - * *scalar /scalar inv conj adj trans Id No real operations on xlifepp::TermMatrix are performed only the product by a xlifepp::TermVector may be performed example: A + trans(K)*inv(M)*K inv(A+B) is not allowed! We use a binary tree to represent such symbolic operation, a node representing an operation on one or two xlifepp::SymbolicTermMatrix The previous example has the following tree representation
The product by a xlifepp::TermVector will produce the xlifepp::TermVector A*X + trans(K)*inv(M)*K*X For instance A*B is not recognized as symbolic because the product of two xlifepp::TermMatrix exists so writing ~A*B or A*~B or ~A*~B will enforce a symbolic representation!(+) |--------|--------| (Id)A (*) |--------|-------| (trans)K (*) |--------|-------| (inv)M (Id)K
Public Functions
-
inline SymbolicTermMatrix()#
-
constructor
-
~SymbolicTermMatrix()#
-
Destructor.
-
void print(std::ostream&) const#
-
print tools
Public Members
-
complex_t coef_#
-
coefficient product
-
bool delMat_#
-
true if TermMatrix has to be deleted
-
SymbolicOperation op_#
-
algebraic operator related to the current node
-
SymbolicTermMatrix *st2_#
-
may be one or two SymbolicTermMatrix (pointers)
-
const TermMatrix *tm_#
-
may be one TermMatrix (pointers)
-
inline SymbolicTermMatrix()#