1/* $Id$ $Revision$ */
2/* vim:set shiftwidth=4 ts=8: */
3
4/*************************************************************************
5 * Copyright (c) 2011 AT&T Intellectual Property
6 * All rights reserved. This program and the accompanying materials
7 * are made available under the terms of the Eclipse Public License v1.0
8 * which accompanies this distribution, and is available at
9 * http://www.eclipse.org/legal/epl-v10.html
10 *
11 * Contributors: See CVS logs. Details at http://www.graphviz.org/
12 *************************************************************************/
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18#ifndef _CMAJ_H_
19#define _CMAJ_H_
20
21#ifdef DIGCOLA
22
23typedef struct {
24 float **A;
25 int n;
26 int *lev;
27 int *iArray1;
28 int *iArray2;
29 int *iArray3;
30 int *iArray4;
31 float *fArray1;
32 float *fArray2;
33 float *fArray3;
34 float *fArray4;
35 float *A_r;
36 int *ordering;
37 int *levels;
38 int num_levels;
39}CMajEnv;
40
41extern CMajEnv* initConstrainedMajorization(float *, int, int*, int*, int);
42
43extern int constrained_majorization_new(CMajEnv*, float*, float**,
44 int, int, int, float*, float);
45
46extern int constrained_majorization_new_with_gaps(CMajEnv*, float*, float**,
47 int, int, int, float*, float);
48#ifdef IPSEPCOLA
49extern int constrained_majorization_gradient_projection(CMajEnv *e,
50 float * b, float ** coords, int ndims, int cur_axis, int max_iterations,
51 float * hierarchy_boundaries,float levels_gap);
52#endif
53extern void deleteCMajEnv(CMajEnv *e);
54
55extern float** unpackMatrix(float * packedMat, int n);
56
57#endif
58
59#endif /* _CMAJ_H_ */
60
61#ifdef __cplusplus
62}
63#endif
64