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, NumericsMatrix *F);
13
14
15struct MixedComplementarityProblem {
16  int n1;
17  int n2;
18  ptrFunctionMCP2 compute_Fmcp;
19  ptrFunctionMCP_nabla compute_nabla_Fmcp;
20  NumericsMatrix *nabla_Fmcp;
21  void *env;
22};
23
24
25struct MixedComplementarityProblem_old {
26  int sizeEqualities;
27  int sizeInequalities;
28  ptrFunctionMCP computeFmcp;
29  ptrFunctionMCP computeNablaFmcp;
30
31  double *Fmcp;
32
33  double *nablaFmcp;
34};
35
36#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
37extern "C" {
38#endif
39
40
41void mixedComplementarityProblem_free(MixedComplementarityProblem *mcp);
42
43
44MixedComplementarityProblem *mixedComplementarityProblem_new(void);
45
46
47void mixedComplementarityProblem_old_free(MixedComplementarityProblem_old *problem);
48
49#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
50}
51#endif
52
53#endif