#include // for malloc #include // for printf #include // for floor and isnan - compile with flag -lm void displayMatrix_u(unsigned**, unsigned, unsigned); void displayMatrix(double**, unsigned, unsigned); extern int CaseRotationFlip[256][3]; extern size_t indexArray[8][3]; extern unsigned edgesLengths[254]; extern unsigned EdgePoints[13][3]; extern unsigned (*Edges[])[]; void freeMatrix_u(unsigned**, unsigned); void freeMatrix_s(size_t**, size_t); void freeMatrix_d(double**, unsigned); unsigned** copyMatrix(unsigned**, unsigned, unsigned); size_t** minorMatrix(size_t**, unsigned, unsigned, unsigned, unsigned); size_t** scaleMatrix(size_t, size_t**, unsigned, unsigned); size_t** scaleMinorMatrix(size_t, size_t**, unsigned, unsigned, unsigned, unsigned); size_t** matricialSum(size_t**, size_t**, size_t, unsigned); size_t** levelMatrix(double**, unsigned, unsigned, double, unsigned); double** toMatrix(double***, unsigned, unsigned, unsigned); unsigned** whichIndicesAndItems(size_t**, unsigned, unsigned, unsigned*); void freeArray(double***, unsigned, unsigned); size_t** kro1(size_t**, unsigned, unsigned, size_t); size_t** kro2(size_t**, size_t, unsigned, unsigned); size_t* replicate(size_t*, unsigned*, size_t); double*** vector2array(double*, unsigned, unsigned, unsigned); size_t** faceType(double**, unsigned, unsigned, double, double); unsigned** levCells(double***, unsigned, unsigned, unsigned, double, double, size_t*); size_t** GetBasic1(unsigned*, size_t, size_t**); double* GetBasic2(double***, double, unsigned*, size_t, size_t**); unsigned* get_tcase(unsigned*, size_t); unsigned* getR(unsigned*, size_t, size_t*); double** LambdaMu(double*, size_t); double* average(double**, double*, double*, size_t); double* average7(double**, double*, size_t); double* average8(double**, double*, size_t); double** GetPoints(size_t**, double*, size_t*, unsigned*, unsigned*, size_t); double** CalPoints(double**, size_t); double** computeContour3d(double*, unsigned, unsigned, unsigned, double, double, size_t*); /* Special cases */ extern int (*Faces[])[]; extern unsigned FacesSizes[254]; extern unsigned FacePoints[6][6]; extern unsigned (*Edges2[])[]; extern unsigned Edges2Sizes[254]; extern unsigned special_name[7]; extern unsigned special_nface[7]; extern unsigned special_nedge[7]; extern unsigned (*special_ind[])[]; extern unsigned special_indSizes[7]; extern unsigned (*(*special_pos[])[])[]; extern unsigned* (*(special_posSize)[])[]; int* unlist(int (*jagged[])[], unsigned*, unsigned*, unsigned, unsigned*); unsigned* unlist_u(unsigned (*jagged[])[], unsigned*, unsigned*, unsigned, unsigned*); unsigned upow(unsigned, unsigned); unsigned* FacesNo7(int*, size_t*, double*, size_t, unsigned); unsigned* Faces7(int*, size_t*, double*, size_t, unsigned); unsigned** vector2matrix(unsigned*, unsigned, unsigned); unsigned** cbind(unsigned**, size_t*, unsigned*, unsigned, unsigned); unsigned** subsetMatrix(unsigned**, unsigned*, unsigned*, unsigned, unsigned); unsigned* whichEqual(unsigned*, unsigned, unsigned, unsigned*); //unsigned* matrix2vector(unsigned**, unsigned, unsigned); unsigned* matrix2vectorMinusFirstColumn(unsigned**, unsigned, unsigned); size_t* repeach(size_t*, unsigned, size_t); unsigned* replicatex(unsigned, unsigned); int* jthColumn(int*, unsigned, unsigned, unsigned); double** transpose(double**, size_t, size_t); unsigned* vectorialSum(unsigned*, unsigned*, unsigned);