Program listing for file numerics/src/Relay/Relay_Solvers.h

Program listing for file numerics/src/Relay/Relay_Solvers.h#

 1#ifndef RELAY_SOLVERS_H
 2#define RELAY_SOLVERS_H
 3
 4
 5
 6#include "LinearComplementarityProblem.h"
 7#include "RelayProblem.h"
 8#include "SolverOptions.h"
 9
10#ifdef __cplusplus
11#undef restrict
12#define restrict __restrict
13#endif
14
15#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
16extern "C" {
17#endif
18
19
20void relay_pgs(RelayProblem* problem, double* z, double* w, int* info, SolverOptions* options);
21
22
23void relay_lexicolemke(RelayProblem* problem, double* z, double* w, int* info,
24                       SolverOptions* options);
25
26
27void relay_enum(RelayProblem* problem, double* z, double* w, int* info,
28                SolverOptions* options);
29
30
31void relay_path(RelayProblem* problem, double* z, double* w, int* info,
32                SolverOptions* options);
33
34
35void relay_avi_caoferris(RelayProblem* problem, double* restrict z, double* restrict w,
36                         int* info, SolverOptions* options);
37
38
39void relay_avi_caoferris_test(RelayProblem* problem, double* restrict z, double* restrict w,
40                              int* info, SolverOptions* options);
41
42
43void dr_latin(RelayProblem* problem, double* z, double* w, int* info, SolverOptions* options);
44
45
46void dr_nlgs(RelayProblem* problem, double* z, double* w, int* info, SolverOptions* options);
47
48
49int relay_compute_error(RelayProblem* problem, double* restrict z, double* restrict w,
50                        double tolerance, double* restrict error);
51
52
53void project_on_box(int n, double* restrict z, double* restrict lb, double* restrict ub);
54
55
56void relay_to_lcp(RelayProblem* problem, LinearComplementarityProblem* lcp_problem);
57
58#if defined(__cplusplus) && !defined(BUILD_AS_CPP)
59}
60#endif
61
62#endif