g++ [flags ...] file ... -l /isip/tools/lib/$ISIP_BINARY/lib_math_matrix.a
#include <MatrixComplexLong.h>
MatrixComplexLong(long nrows = DEF_SIZE, long ncols = DEF_SIZE,
long type = DEF_TYPE);
MatrixComplexLong(const MatrixComplexLong& matrix);
quick start:
MatrixComplexLong val0(2, 3, L"1-6j, 2+5j, -3+4j,
-4-4j, -5-8j, 6-4j");
MatrixComplexLong val1(3, 3, L"1-6j, 2+5j, -3+4j,
-4-4j, -5-8j, 6-4j", Integral::LOWER_TRIANGULAR);
description:
static const String CLASS_NAME = L"MatrixComplexLong";
static const long ERR = 25200;
static MemoryManager mgr_d;
static const String& name();
static boolean diagnose(Integral::DEBUG debug_level);
boolean debug(const unichar* message) const;
~MatrixComplexLong();
MatrixComplexLong(long nrows = DEF_SIZE, long ncols = DEF_SIZE, long type = DEF_TYPE);
MatrixComplexLong(const MatrixComplexLong& matrix);
these methods are inherited from the MMatrix template class
MatrixComplexLong& operator=(const MatrixComplexLong& matrix);
boolean read(Sof& sof, long tag, const String& name = CLASS_NAME);
boolean write(Sof& sof, long tag, const String& name = CLASS_NAME) const;
these methods are inherited from the MMatrix template class
static void* operator new(size_t size);
static void* operator new[](size_t size);
static void operator delete(void* ptr);
static void operator delete[](void* ptr);
static boolean setGrowSize(long grow_size);
MatrixComplexLong(long nrows, long ncols, const unichar* arg, long type = DEF_TYPE, const Char delim = DEF_DELIM);
MatrixComplexLong& operator=(complexlong value);
#include <MatrixComplexLong.h>
#include <VectorComplexLong.h>
// this example performs a basic operation with an integer complex matrix
//
int main() {
// define the complex matrix A, complex vector b
// and the resulting complex vector x
//
MatrixComplexLong A(3, 3, L"1, 2j, -9j,
-7, 0, 6+8j,
1, 1, 1+1j", Integral::FULL);
A.debug(L"matrix A");
// get the max element
//
ComplexLong max;
max = A.max();
max.debug(L"max(A)");
// compute the determinant
//
ComplexLong det;
det = A.determinant();
det.debug(L"det(A)");
// multiply matrix by b, put the result into x
//
VectorComplexLong b(L"-3-3j, -5+1j, 1+3j");
b.debug(L"vector b");
VectorComplexLong x;
A.multv(x, b);
x.debug(L"Ab");
// multiply matrix by diagonal matrix
//
MatrixComplexLong B(3, 3, L"1j, 1j, 1j", Integral::DIAGONAL);
B.debug(L"matrix B");
A.mult(B);
A.debug(L"AB");
return true;
}