Program listing for file numerics/src/MCP/MixedComplementarityProblem.h

Program listing for file numerics/src/MCP/MixedComplementarityProblem.h#

 1#ifndef MCP_PROBLEM_H
 2#define MCP_PROBLEM_H
 3
 4
 5
 6#include "NumericsFwd.h"
 7#include "SiconosConfig.h"
 8
 9
10typedef void (*ptrFunctionMCP)(int size, double *z, double *F);
11typedef void (*ptrFunctionMCP2)(void *env, int n, double *z, double *F);
12typedef void (*ptrFunctionMCP_nabla)(void *env, int n, double *z,
13                                     NumericsMatrix *F);
14
15
16struct MixedComplementarityProblem {
17  int n1;
18  int n2;
19  ptrFunctionMCP2 compute_Fmcp;
20  ptrFunctionMCP_nabla compute_nabla_Fmcp;
21  NumericsMatrix *nabla_Fmcp;
22  void *env;
23};
24
25
26struct MixedComplementarityProblem_old {
27  int sizeEqualities;
28  int sizeInequalities;
29  ptrFunctionMCP computeFmcp;
30  ptrFunctionMCP computeNablaFmcp;
31
32  double *Fmcp;
33
34  double *nablaFmcp;
35};
36
37#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
38extern "C" {
39#endif
40
41
42void mixedComplementarityProblem_free(MixedComplementarityProblem *mcp);
43
44
45MixedComplementarityProblem *mixedComplementarityProblem_new(void);
46
47
48void mixedComplementarityProblem_old_free(
49    MixedComplementarityProblem_old *problem);
50
51#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
52}
53#endif
54
55#endif