iterative-solver 0.0
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
26extern "C" void IterativeSolverFinalize();
27
28extern "C" size_t IterativeSolverAddVector(size_t buffer_size, double* parameters, double* action, int sync);
29
30extern "C" void IterativeSolverSolution(int nroot, int* roots, double* parameters, double* action, int sync);
31
32extern "C" size_t IterativeSolverAddValue(double value, double* parameters, double* action, int sync);
33
34extern "C" size_t IterativeSolverEndIteration(size_t buffer_size, double* solution, double* residual, int sync);
35
36extern "C" int IterativeSolverEndIterationNeeded();
37
38typedef void (*cheesefunc)(char *name, void *user_data);
39extern "C" void find_cheeses(cheesefunc user_func, void *user_data);
40
41typedef void (*apply_on_p_t)(const double*, double*, const size_t, const size_t*);
42extern "C" size_t IterativeSolverAddP(size_t buffer_size, size_t nP, const size_t* offsets, const size_t* indices,
43 const double* coefficients, const double* pp, double* parameters, double* action,
44 int sync, apply_on_p_t func);
45
46extern "C" void IterativeSolverErrors(double* errors);
47
48extern "C" int IterativeSolverConverged();
49
50extern "C" void IterativeSolverEigenvalues(double* eigenvalues);
51
52extern "C" void IterativeSolverWorkingSetEigenvalues(double* eigenvalues);
53
54extern "C" size_t IterativeSolverSuggestP(const double* solution, const double* residual, size_t maximumNumber,
55 double threshold, size_t* indices);
56
57extern "C" void IterativeSolverPrintStatistics();
58
59extern "C" int IterativeSolverNonLinear();
60
61extern "C" int IterativeSolverHasValues();
62extern "C" int IterativeSolverHasEigenvalues();
63
64extern "C" void IterativeSolverSetDiagonals(const double* diagonals);
65
66extern "C" void IterativeSolverDiagonals(double* diagonals);
67
68extern "C" double IterativeSolverValue();
69
70extern "C" int IterativeSolverVerbosity();
71
72extern "C" int IterativeSolverMaxIter();
73extern "C" void IterativeSolverSetMaxIter(int max_iter);
74
75extern "C" int64_t mpicomm_self();
76
77extern "C" int64_t mpicomm_global();
78
79extern "C" int64_t IterativeSolver_mpicomm_global();
80extern "C" int64_t IterativeSolver_mpicomm_self();
81#endif // LINEARALGEBRA_SRC_MOLPRO_LINALG_ITERATIVESOLVER_ITERATIVESOLVERC_H_