Marsyas  0.6.0-alpha
/usr/src/RPM/BUILD/marsyas-0.6.0/src/marsyas/vmblock.h
Go to the documentation of this file.
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 -------------------------- */