Diffpack Documentation


Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

Dpmacros.h File Reference

Diffpack Kernel. More...

#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)


Detailed Description

Diffpack Kernel.


Define Documentation

#define ADDQUOTES( s )   # s
 

#define ArrayGenSel(Type)   name2(ArrayGenSel(),Type)
 

#define ArrayGenSimple(Type)   name2(ArrayGenSimple(),Type)
 

#define ArrayGenSimplest(Type)   name2(ArrayGenSimplest(),Type)
 

#define ArrayGen(Type)   name2(ArrayGen(),Type)
 

#define CAST_CONST_AWAY( Classname )   ((Classname*) this)
 

#define CAST_PTR( ptr, ToType )
 

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))

#define CAST_REF( ref, 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))

#define CLASS_INFO
 

Value:

 public:           \
  static  const TypeInfo  type_info;   \
  virtual const TypeInfo* getInfo () const   { return &type_info; }

#define DBP( msg )
 

Value:

  { s_o<<"DBP " <<__FILE__<< "[" \
  <<__LINE__<<"]: "<<msg<<'\n'; s_o.flush(); }

#define DBP0( msg )   ;
 

#define DBP1( msg )   ;
 

#define DBP2( msg )   ;
 

#define DBP3( msg )   ;
 

#define DBP4( msg )   ;
 

#define DBP5( msg )   ;
 

#define DBP6( msg )   ;
 

#define DEF_VIRTUAL_CAST( ToType )
 

Value:

  virtual ToType* cast2(ToType) () const { return NULL; }

#define DPTRACE( msg )
 

Value:

#define DP_FUNCTION_NOT_DEFINED( func, cl )
 

Value:

 errorFP(func,"This function is not implemented for class %s",cl)

#define DP_FUNCTION_NO_MEANING( func, cl )
 

Value:

 errorFP(func,"This function has no meaning for class %s",cl)

#define DpListBinH(Type)   name2(DpListBinH,Type)
 

#define DpListBin(Type)   name2(DpListBin(),Type)
 

#define DpListItemHandle(Type)   name2(DpListHandle_,Type)
 

#define DpListItemInst(Type)   name2(DpListInst_,Type)
 

#define DpListItemPtr(Type)   name2(DpListPtr_,Type)
 

#define DpList(Type)   ,ItemType name2(ItemType_,Type)
 

#define DpListsItem(DpListType)   name2(DpListsItem(),DpListType)
 

#define DpLists(DpListType)   name2(DpLists(),DpListType)
 

#define EQ( String, ClassType )   eq(String,TYPEID_STR(ClassType))
 

#define FORTRANname( X, UX )   name2(X,_)
 

#define Func(Type)   name2(Func(),Type)
 

#define HANDLE_OK( funcname, h, boolvar )
 

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; } }

#define HandleT_Matrix(Type)   name2(HandleT_Matrix,Type)
 

#define Handle(Type)   name2(Handle(),Type)
 

#define INIT_CLASS_INFO( Classname )
 

Value:

  const TypeInfo Classname :: type_info (MAKESTRING(Classname));

#define INIT_CLASS_INFO1( Classname, Base1 )
 

Value:

  const TypeInfo Classname :: type_info (MAKESTRING(Classname));

#define INIT_CLASS_INFO2( Classname, Base1, Base2 )
 

Value:

  const TypeInfo Classname :: type_info (MAKESTRING(Classname));

#define Interval(Type)   name2(Interval(),Type)
 

#define MAKESTRING( a )   ADDQUOTES(a)
 

#define M_1_PI   0.31830988618379067154
 

#define M_2_PI   0.63661977236758134308
 

#define M_E   2.7182818284590452354
 

#define M_LN10   2.30258509299404568402
 

#define M_LN2   0.69314718055994530942
 

#define M_LOG10E   0.43429448190325182765
 

#define M_LOG2E   1.4426950408889634074
 

#define M_PI   3.14159265358979323846
 

#define M_PI_2   1.57079632679489661923
 

#define M_PI_4   0.78539816339744830962
 

#define MatBand(Type)   name2(MatBand(),Type)
 

MatBand(Type)::MatBand_Type MatDense(Type)   Mat(Type)
 

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.

#define MatDiag(Type)   name2(MatDiag(),Type)
 

#define MatEBE(Type)   name2(MatEBE,Type)
 

#define MatSchurUDC(Type)   name2(MatSchurUDC(),Type)
 

#define MatSchur(Type)   name2(MatSchur(),Type)
 

#define MatSimpleH(Type)   name2(MatSimpleH(),Type)
 

#define MatSimple(Type)   name2(MatSimple(),Type)
 

#define MatSimplestH(Type)   name2(MatSimplestH(),Type)
 

#define MatSimplest(Type)   name2(MatSimplest(),Type)
 

#define MatSparse(Type)   name2(MatSparse(),Type)
 

#define MatStructSparse(Type)   name2(MatStructSparse,Type)
 

#define MatTri(Type)   name2(MatTri(),Type)
 

#define Mat(Type)   name2(Mat(),Type)
 

#define Matrix2_prm(Type)   name2(Matrix2_prm(),Type)
 

MatEBE(Type)::MatEBE_Type Matrix(Type)   name2(Matrix(),Type)
 

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.

#define Matrix(prm_Type)   name2(Matrix(prm_),Type)
 

#define NULL   0
 

#define OBJECT_OK( funcname, obj, boolvar )
 

Value:

  { if (!obj.ok()) \
  { errorFP(funcname,"%s is not ok",TYPEID_STR(obj)); boolvar=false; } }

#define ONESIXTH   0.166666666666666666666666666666666666666666666666666666666666
 

#define ONETHIRD   0.333333333333333333333333333333333333333333333333333333333333
 

#define PI   3.141592653589793238462643383279502884197169399375105820974944592308
 

#define PI2   M_PI_2
 

#define Ptm(Type)   name2(Ptm(),Type)
 

#define Ptv1d(Type)   name2(Ptv1d(),Type)
 

#define Ptv2d(Type)   name2(Ptv2d(),Type)
 

#define Ptv3d(Type)   name2(Ptv3d(),Type)
 

#define Ptv(Type)   name2(Ptv(),Type)
 

#define Ptv(Type)   name4(Ptv,d,Type)
 

#define SQUAREROOTTWO   1.4142135623730950488016887242096980785696718753769480732
 

#define SetDistinct(Type)   name2(SetDistinct(),Type)
 

#define SetOfNo(Type)   name2(SetOfNo(),Type)
 

#define SetSimplest(Type)   name2(SetSimplest(),Type)
 

#define StackCell(Type)   name2(StackCell(),Type)
 

#define StackCell(Type)   name2(StackCell(),Type)
 

#define Stack(Type)   name2(Stack(),Type)
 

#define Stack(Type)   name2(Stack(),Type)
 

#define TYPEID_NAME( ptr )
 

Value:

  ptr->getInfo()->name()

#define TYPEID_PTR( ptr, Type )
 

Value:

  ptr->getInfo()->nameIs (TYPEID_STR(Type))

#define TYPEID_REF( ref, Type )
 

Value:

  ref.getInfo()->nameIs (TYPEID_STR(Type))

#define TYPEID_STR( Type )   MAKESTRING(Type)
 

#define VIRTUAL_CAST( ToType )
 

Value:

  virtual ToType* cast2(ToType) () const { return (ToType*) this; }

#define VecSimpleH(Type)   name2(VecSimpleH(),Type)
 

#define VecSimple(Type)   name2(VecSimple(),Type)
 

#define VecSimplestH(Type)   name2(VecSimplestH(),Type)
 

VecSimplestH(Type)::VecSimplestH_Type VecSimplest(Type)   name2(VecSimplest(),Type)
 

See description in VecSimplest(Type)

#define VecSort(Type)   name2(VecSort(),Type)
 

#define Vec(Type)   name2(Vec(),Type)
 

#define Vector(Type)   name2(Vector(),Type)
 

#define Vector(prm_Type)   name2(Vector(prm_),Type)
 

#define ___help_cast_ptr( arg )   arg() != NULL ? arg()
 

#define ___help_cast_ref( arg )   arg() != NULL ? *(arg())
 

#define cast2( Type )   name2(cast2,Type)
 

#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 splitMatrix(Type)   name2(splitMatrix(),Type)
 


Copyright © 2003 inuTech GmbH. All rights reserved.