iterative-solver 0.0
 
Loading...
Searching...
No Matches
IterativeSolverC.h
1#ifndef LINEARALGEBRA_SRC_MOLPRO_LINALG_ITERATIVESOLVER_ITERATIVESOLVERC_H_
2#define LINEARALGEBRA_SRC_MOLPRO_LINALG_ITERATIVESOLVER_ITERATIVESOLVERC_H_
3#include <cstdint>
4#include <stddef.h>
5
6
7extern "C" void IterativeSolverLinearEigensystemInitialize(size_t nQ, size_t nroot, size_t* range_begin,
8 size_t* range_end, double thresh, double thresh_value,
9 int hermitian, int verbosity, const char* fname,
10 int64_t fcomm, const char* algorithm, const char* options);
11
12extern "C" void IterativeSolverLinearEquationsInitialize(size_t n, size_t nroot, size_t* range_begin, size_t* range_end,
13 const double* rhs, double aughes, double thresh,
14 double thresh_value, int hermitian, int verbosity,
15 const char* fname, int64_t fcomm, const char* algorithm,
16 const char* options);
17
18extern "C" void IterativeSolverNonLinearEquationsInitialize(size_t n, size_t* range_begin, size_t* range_end,
19 double thresh, int verbosity, const char* fname,
20 int64_t fcomm, const char* algorithm, const char* options);
21
22extern "C" void IterativeSolverOptimizeInitialize(size_t n, size_t* range_begin, size_t* range_end, double thresh,
23 double thresh_value, int verbosity, int minimize, const char* fname,
24 int64_t fcomm, const char* algorithm, const char* options);
25
27extern "C" void IterativeSolverFinalize();
28
30extern "C" void IterativeSolverFinalizeAll();
31
34extern "C" int64_t IterativeSolverCurrentHandle();
35
38extern "C" int IterativeSolverSelect(int64_t handle);
39
41extern "C" void IterativeSolverFinalizeHandle(int64_t handle);
42
44extern "C" size_t IterativeSolverNRoots();
45
47extern "C" size_t IterativeSolverDimension();
48
49extern "C" size_t IterativeSolverAddVector(size_t buffer_size, double* parameters, double* action, int sync);
50
51extern "C" void IterativeSolverSolution(int nroot, int* roots, double* parameters, double* action, int sync);
52
53extern "C" size_t IterativeSolverAddValue(double value, double* parameters, double* action, int sync);
54
55extern "C" size_t IterativeSolverEndIteration(size_t buffer_size, double* solution, double* residual, int sync);
56
57extern "C" int IterativeSolverEndIterationNeeded();
58
59typedef void (*cheesefunc)(char *name, void *user_data);
60extern "C" void find_cheeses(cheesefunc user_func, void *user_data);
61
62typedef void (*apply_on_p_t)(const double*, double*, const size_t, const size_t*);
63extern "C" size_t IterativeSolverAddP(size_t buffer_size, size_t nP, const size_t* offsets, const size_t* indices,
64 const double* coefficients, const double* pp, double* parameters, double* action,
65 int sync, apply_on_p_t func);
66
67extern "C" void IterativeSolverErrors(double* errors);
68
69extern "C" int IterativeSolverConverged();
70
71extern "C" void IterativeSolverEigenvalues(double* eigenvalues);
72
73extern "C" void IterativeSolverWorkingSetEigenvalues(double* eigenvalues);
74
75extern "C" size_t IterativeSolverSuggestP(const double* solution, const double* residual, size_t maximumNumber,
76 double threshold, size_t* indices);
77
78extern "C" void IterativeSolverPrintStatistics();
79
80extern "C" int IterativeSolverNonLinear();
81
82extern "C" int IterativeSolverHasValues();
83extern "C" int IterativeSolverHasEigenvalues();
84
85extern "C" void IterativeSolverSetDiagonals(const double* diagonals);
86
87extern "C" void IterativeSolverDiagonals(double* diagonals);
88
89extern "C" double IterativeSolverValue();
90
91extern "C" int IterativeSolverVerbosity();
92
93extern "C" int IterativeSolverMaxIter();
94extern "C" void IterativeSolverSetMaxIter(int max_iter);
95
96extern "C" int64_t mpicomm_self();
97
98extern "C" int64_t mpicomm_global();
99
100extern "C" int64_t IterativeSolver_mpicomm_global();
101extern "C" int64_t IterativeSolver_mpicomm_self();
102#endif // LINEARALGEBRA_SRC_MOLPRO_LINALG_ITERATIVESOLVER_ITERATIVESOLVERC_H_