00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020
00021 #ifndef _CMAJ_H_
00022 #define _CMAJ_H_
00023
00024 #ifdef DIGCOLA
00025
00026 typedef struct {
00027 float **A;
00028 int n;
00029 int *lev;
00030 int *iArray1;
00031 int *iArray2;
00032 int *iArray3;
00033 int *iArray4;
00034 float *fArray1;
00035 float *fArray2;
00036 float *fArray3;
00037 float *fArray4;
00038 float *A_r;
00039 int *ordering;
00040 int *levels;
00041 int num_levels;
00042 }CMajEnv;
00043
00044 extern CMajEnv* initConstrainedMajorization(float *, int, int*, int*, int);
00045
00046 extern int constrained_majorization_new(CMajEnv*, float*, float**,
00047 int, int, int, float*, float);
00048
00049 extern int constrained_majorization_new_with_gaps(CMajEnv*, float*, float**,
00050 int, int, int, float*, float);
00051 #ifdef IPSEPCOLA
00052 extern int constrained_majorization_gradient_projection(CMajEnv *e,
00053 float * b, float ** coords, int ndims, int cur_axis, int max_iterations,
00054 float * hierarchy_boundaries,float levels_gap);
00055 #endif
00056 extern void deleteCMajEnv(CMajEnv *e);
00057
00058 extern float** unpackMatrix(float * packedMat, int n);
00059
00060 #endif
00061
00062 #endif
00063
00064 #ifdef __cplusplus
00065 }
00066 #endif