00001 // Header file of vmblock.cpp 00002 00003 #ifndef VMBLOCK_H_INCLUDED 00004 #define VMBLOCK_H_INCLUDED 00005 00006 /*********************************************************************** 00007 * symbolic names that let the user choose the kind of dynamical data * 00008 * structure to be allocated upon calling vmalloc() * 00009 ***********************************************************************/ 00010 00011 #define VEKTOR 0 /* for a REAL vector */ 00012 /*.IX{VEKTOR}*/ 00013 #define VVEKTOR 1 /* for a vector with elements */ 00014 /*.IX{VVEKTOR}*/ 00015 /* of given size */ 00016 #define MATRIX 2 /* for a REAL matrix */ 00017 /*.IX{MATRIX}*/ 00018 #define IMATRIX 3 /* for an int matrix */ 00019 /*.IX{IMATRIX}*/ 00020 #define MMATRIX 4 /* for a matrix of 4x4 matrices */ 00021 /*.IX{PMATRIX}*/ 00022 /* (with elements of type `mat4x4') */ 00023 #define UMATRIX 5 /* for a lower triangular matrix */ 00024 /*.IX{UMATRIX}*/ 00025 #define PMATRIX 6 /* for a matrix of points in R3 */ 00026 /*.IX{PMATRIX}*/ 00027 00028 00029 /*********************************************************************** 00030 * operations on a vector matrix list * 00031 ***********************************************************************/ 00032 00033 void *vminit /* create an empty vector/matrix list ...........*/ 00034 ( 00035 void 00036 ); /* address of list ...................*/ 00037 00038 00039 void *vmalloc /* create a dynamic vector or matrix ............*/ 00040 ( 00041 void *vmblock, /* address of a vector/matrix list ...*/ 00042 int typ, /* kind of vector or matrix ..........*/ 00043 size_t zeilen, /* length (vector) or number of rows .*/ 00044 size_t spalten /* number of columns or element size .*/ 00045 ); /* address of the created object .....*/ 00046 00047 00048 bool vmcomplete /* check vector/matrix list for lack of memory ..*/ 00049 ( 00050 void *vmblock /* address of list ...................*/ 00051 ); /* no lack of memory? ................*/ 00052 00053 00054 void vmfree /* free the memory for a vektor/matrix list .....*/ 00055 ( 00056 void *vmblock /* address of list ...................*/ 00057 ); 00058 00059 #endif 00060 00061 /* ------------------------- END vmblock.h -------------------------- */