#include <math.h>
#include <lapack_macros.h>
#include <ctype.h>
#include <string.h>
#include <default_op.h>
Go to the source code of this file.
Defines | |
| #define | NULL 0 |
| #define | name2(a, b) a ## b |
| #define | name3(a, b, c) a ## b ## c |
| #define | name4(a, b, c, d) a ## b ## c ## d |
| #define | M_E 2.7182818284590452354 |
| #define | M_LOG2E 1.4426950408889634074 |
| #define | M_LOG10E 0.43429448190325182765 |
| #define | M_LN2 0.69314718055994530942 |
| #define | M_LN10 2.30258509299404568402 |
| #define | M_PI 3.14159265358979323846 |
| #define | M_PI_2 1.57079632679489661923 |
| #define | M_1_PI 0.31830988618379067154 |
| #define | M_PI_4 0.78539816339744830962 |
| #define | M_2_PI 0.63661977236758134308 |
| #define | PI 3.141592653589793238462643383279502884197169399375105820974944592308 |
| #define | SQUAREROOTTWO 1.4142135623730950488016887242096980785696718753769480732 |
| #define | ONETHIRD 0.333333333333333333333333333333333333333333333333333333333333 |
| #define | ONESIXTH 0.166666666666666666666666666666666666666666666666666666666666 |
| #define | PI2 M_PI_2 |
| #define | CAST_CONST_AWAY(Classname) ((Classname*) this) |
| #define | ADDQUOTES(s) # s |
| #define | MAKESTRING(a) ADDQUOTES(a) |
| #define | Mat(Type) name2(Mat(),Type) |
| #define | Vec(Type) name2(Vec(),Type) |
| #define | MatSimple(Type) name2(MatSimple(),Type) |
| #define | VecSimple(Type) name2(VecSimple(),Type) |
| #define | VecSort(Type) name2(VecSort(),Type) |
| #define | SetOfNo(Type) name2(SetOfNo(),Type) |
| #define | SetSimplest(Type) name2(SetSimplest(),Type) |
| #define | DpList(Type) ,ItemType name2(ItemType_,Type) |
| #define | DpListItemPtr(Type) name2(DpListPtr_,Type) |
| #define | DpListItemInst(Type) name2(DpListInst_,Type) |
| #define | DpListItemHandle(Type) name2(DpListHandle_,Type) |
| #define | DpLists(DpListType) name2(DpLists(),DpListType) |
| #define | DpListsItem(DpListType) name2(DpListsItem(),DpListType) |
| #define | DpListBin(Type) name2(DpListBin(),Type) |
| #define | DpListBinH(Type) name2(DpListBinH,Type) |
| #define | StackCell(Type) name2(StackCell(),Type) |
| #define | Stack(Type) name2(Stack(),Type) |
| #define | MatSimplest(Type) name2(MatSimplest(),Type) |
| #define | VecSimplest(Type) name2(VecSimplest(),Type) |
| #define | MatSimplestH(Type) name2(MatSimplestH(),Type) |
| #define | VecSimplestH(Type) name2(VecSimplestH(),Type) |
| #define | MatSimpleH(Type) name2(MatSimpleH(),Type) |
| #define | VecSimpleH(Type) name2(VecSimpleH(),Type) |
| #define | Matrix(Type) name2(Matrix(),Type) |
| #define | HandleT_Matrix(Type) name2(HandleT_Matrix,Type) |
| #define | Vector(Type) name2(Vector(),Type) |
| #define | ArrayGenSimplest(Type) name2(ArrayGenSimplest(),Type) |
| #define | ArrayGenSimple(Type) name2(ArrayGenSimple(),Type) |
| #define | ArrayGen(Type) name2(ArrayGen(),Type) |
| #define | ArrayGenSel(Type) name2(ArrayGenSel(),Type) |
| #define | Interval(Type) name2(Interval(),Type) |
| #define | MatBand(Type) name2(MatBand(),Type) |
| #define | MatTri(Type) name2(MatTri(),Type) |
| #define | MatSparse(Type) name2(MatSparse(),Type) |
| #define | MatStructSparse(Type) name2(MatStructSparse,Type) |
| #define | MatDiag(Type) name2(MatDiag(),Type) |
| #define | MatEBE(Type) name2(MatEBE,Type) |
| #define | MatDense(Type) Mat(Type) |
| #define | MatSchur(Type) name2(MatSchur(),Type) |
| #define | MatSchurUDC(Type) name2(MatSchurUDC(),Type) |
| #define | splitMatrix(Type) name2(splitMatrix(),Type) |
| #define | Matrix(prm_Type) name2(Matrix(prm_),Type) |
| #define | Vector(prm_Type) name2(Vector(prm_),Type) |
| #define | Matrix2_prm(Type) name2(Matrix2_prm(),Type) |
| #define | Func(Type) name2(Func(),Type) |
| #define | StackCell(Type) name2(StackCell(),Type) |
| #define | Stack(Type) name2(Stack(),Type) |
| #define | Ptv(Type) name4(Ptv,d,Type) |
| #define | Ptv(Type) name2(Ptv(),Type) |
| #define | Ptv1d(Type) name2(Ptv1d(),Type) |
| #define | Ptv2d(Type) name2(Ptv2d(),Type) |
| #define | Ptv3d(Type) name2(Ptv3d(),Type) |
| #define | Ptm(Type) name2(Ptm(),Type) |
| #define | SetDistinct(Type) name2(SetDistinct(),Type) |
| #define | FORTRANname(X, UX) name2(X,_) |
| #define | DBP(msg) |
| #define | DBP0(msg) ; |
| #define | DBP1(msg) ; |
| #define | DBP2(msg) ; |
| #define | DBP3(msg) ; |
| #define | DBP4(msg) ; |
| #define | DBP5(msg) ; |
| #define | DBP6(msg) ; |
| #define | CLASS_INFO |
| #define | INIT_CLASS_INFO(Classname) |
| #define | INIT_CLASS_INFO1(Classname, Base1) |
| #define | INIT_CLASS_INFO2(Classname, Base1, Base2) |
| #define | TYPEID_STR(Type) MAKESTRING(Type) |
| #define | TYPEID_NAME(ptr) |
| #define | TYPEID_PTR(ptr, Type) |
| #define | TYPEID_REF(ref, Type) |
| #define | cast2(Type) name2(cast2,Type) |
| #define | VIRTUAL_CAST(ToType) |
| #define | DEF_VIRTUAL_CAST(ToType) |
| #define | ___help_cast_ptr(arg) arg() != NULL ? arg() |
| #define | ___help_cast_ref(arg) arg() != NULL ? *(arg()) |
| #define | CAST_PTR(ptr, ToType) |
| #define | CAST_REF(ref, ToType) |
| #define | Handle(Type) name2(Handle(),Type) |
| #define | EQ(String, ClassType) eq(String,TYPEID_STR(ClassType)) |
| #define | OBJECT_OK(funcname, obj, boolvar) |
| #define | HANDLE_OK(funcname, h, boolvar) |
| #define | DPTRACE(msg) |
| #define | DP_FUNCTION_NOT_DEFINED(func, cl) |
| #define | DP_FUNCTION_NO_MEANING(func, cl) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value: ___help_cast_ptr(ptr->cast2(ToType)) \ : (ToType*) errorFPret("macro CAST_PTR","File %s, line %d, cannot \cast pointer of type %s to %s",__FILE__,__LINE__, \ ptr->getInfo()->name(), TYPEID_STR(ToType)) |
|
|
Value: ___help_cast_ref(ref.cast2(ToType)) \ : (ToType&) *errorFPret("macro CAST_REF","File %s, line %d, cannot \cast reference of type %s to %s",__FILE__,__LINE__, \ ref.getInfo()->name(), TYPEID_STR(ToType)) |
|
|
Value: |
|
|
Value: { s_o<<"DBP " <<__FILE__<< "[" \
<<__LINE__<<"]: "<<msg<<'\n'; s_o.flush(); } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value: virtual ToType* cast2(ToType) () const { return NULL; } |
|
|
Value: |
|
|
Value: errorFP(func,"This function is not implemented for class %s",cl) |
|
|
Value: errorFP(func,"This function has no meaning for class %s",cl) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value: { if (h.ok()) OBJECT_OK(funcname,h(),boolvar) \
else { errorFP(funcname,"%s-handle is empty! You must create %s", \
TYPEID_STR(h),TYPEID_STR(h)); boolvar=false; } }
|
|
|
|
|
|
|
|
|
Value: const TypeInfo Classname :: type_info (MAKESTRING(Classname)); |
|
|
Value: const TypeInfo Classname :: type_info (MAKESTRING(Classname)); |
|
|
Value: const TypeInfo Classname :: type_info (MAKESTRING(Classname)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The available constructors are quite similar in syntax to those supported by class "MatDense(Type)". The "MatBand" specific constructors require the bandwidth of the matrix, the size, an indicator for symmetric storage and an indicator whether pivoting during Gaussian elimination is desired. The bandwidth, symmetry and pivoting parameters determine the number of columns in the representation of matrix and are required for allocation of the correct amount of storage. This information is also required for correct indexing of the matrix. Currently, "MatBand(Type)" can only be used to represent square matrices. Some constructors still accept both row and column dimensions in order to provide compatibility with other matrix formats. If these parameters have different values, an error message is given. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
See "Mat(Type)". Since a diagonal matrix is assumed to be square, i.e., with the same number of columns as of rows, there is also a special constructor accepting a single integer argument "n" specyfying the matrix dimension. By definition, "MatDiag(Type)" is restricted to representation of square matrices only. Some constructors still accept both row and column dimensions in order to provide compatibility with other matrix formats. If these parameters have different values, an error message is given. |
|
|
|
|
|
|
|
|
Value: { if (!obj.ok()) \
{ errorFP(funcname,"%s is not ok",TYPEID_STR(obj)); boolvar=false; } }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value: ptr->getInfo()->name() |
|
|
Value: ptr->getInfo()->nameIs (TYPEID_STR(Type)) |
|
|
Value: ref.getInfo()->nameIs (TYPEID_STR(Type)) |
|
|
|
|
|
Value: virtual ToType* cast2(ToType) () const { return (ToType*) this; } |
|
|
|
|
|
|
|
|
|
|
|
See description in VecSimplest(Type) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|