add alternative approach from 2013-01
[synclust.git] / src / sources / convexSolver.h
... / ...
CommitLineData
1#ifndef SYNCLUST_CONVEXSOLVER_H
2#define SYNCLUST_CONVEXSOLVER_H
3
4#include "sources/utils/boolean.h"
5
6// auxiliary to compute euclidian norm
7double norm2(
8 double* v,
9 int length
10);
11
12// auxiliary to compute euclidian distance
13double distance2(
14 double* f1,
15 double* f2,
16 int length
17);
18
19// auxiliary to compute log-likelihood + penalty
20double computeLogLikelihood(
21 double** f,
22 double* theta,
23 double** Zst,
24 double*** phi,
25 int* lengthNIix,
26 int** NIix,
27 double alpha,
28 int nrow,
29 int ncol
30);
31
32// structure to return parameters (theta, f) [and others if needed later]
33typedef struct Parameters {
34 double** f;
35 double* theta;
36} Parameters;
37
38// compute estimated ("repaired", "smoothed"...) variations from rows of M
39// NOTE: geographic coordinates dropped here, since they are unused
40Parameters getVarsWithConvexOptim_core(
41 double* pM,
42 int* lengthNIix,
43 int** NIix,
44 int nrow,
45 int ncol,
46 double alpha,
47 double h,
48 double epsilon,
49 int maxiter,
50 bool symmNeighbs,
51 bool trace
52);
53
54#endif