File numerics/src/MCP/MCP_Solvers.h

Go to the source code of this file

List of all the available solvers for the resolution of Mixed Complementarity Problems.

See the detailed documentation in MCP available solvers

Functions

int mcp_compute_error(MixedComplementarityProblem *problem, double *z, double *w, double *error)
void mcp_newton_FB_FBLSA(MixedComplementarityProblem *problem, double *z, double *Fmcp, int *info, SolverOptions *options)

Solver based on Fischer-Burmeister reformulation and line search (VFBLSA in FacchineiPang 2003 p.

834)

Parameters
  • [in] problem: a structure which represents the MCP

  • [inout] z: a n1+n2-vector, initial solution + returns the solution of the problem.

  • [out] Fmcp: n1+n2-vector which contains the value of Fmcp(z) = (G(z), H(z))

  • [out] info: termination value: 0 if success else >0.

  • [inout] options: structure used to define the solver and its parameters.

void mcp_newton_min_FBLSA(MixedComplementarityProblem *problem, double *z, double *Fmcp, int *info, SolverOptions *options)

Solver based on Fischer-Burmeister reformulation and line search.

The descent direction is found using a min reformulation (minFBLSA in FacchineiPang 2003 p. 855)

Parameters
  • [in] problem: a structure which represents the MCP

  • [inout] z: a n1+n2-vector, initial solution + returns the solution of the problem.

  • [out] Fmcp: n1+n2-vector which contains the value of Fmcp(z) = (G(z), H(z))

  • [out] info: termination value: 0 if success else >0.

  • [inout] options: structure used to define the solver and its parameters.

int mcp_old_compute_error(MixedComplementarityProblem_old *problem, double *z, double *w, double *error)
void mcp_old_driver_init(MixedComplementarityProblem_old *problem, SolverOptions *options)

Initialisation of the MCP solver (set problem, allocate working memory and so on.

This routine must be called before any attempt to run the mcp_old_driver.

Parameters
  • [in] problem: the description of the MCP

  • [in] options: for the solver

void mcp_old_driver_reset(MixedComplementarityProblem_old *problem, SolverOptions *options)

Reset of the MCP solver.

Parameters
  • [in] problem: the description of the MCP

  • [in] options: for the solver

void mcp_old_FischerBurmeister(MixedComplementarityProblem_old *problem, double *z, double *w, int *info, SolverOptions *options)

Fischer Burmeister solver.

Parameters
  • [in] problem: a structure which represents the MCP

  • [inout] z: a m+n-vector, initial solution + returns the solution of the problem.

  • [out] w: not used

  • [out] info: termination value: 0 if success else >0.

  • [inout] options: structure used to define the solver and its parameters.

void mcp_old_FischerBurmeister_init(MixedComplementarityProblem_old *problem, SolverOptions *options)

Initialisation of the MCP Fischer solver (set problem, allocate working memory and so on.

This routine must be called before any attempt to run the mcp_old_driver.

Parameters
  • [in] problem: description of the MCP

  • [in] options: for the solver

void mcp_old_FischerBurmeister_reset(MixedComplementarityProblem_old *problem, SolverOptions *options)

Reset of the MCP Fischer solver (free local variable)

Parameters
  • [in] problem: description of the MCP

  • [in] options: for the solver