CYCLUS
Loading...
Searching...
No Matches
cram.hpp
Go to the documentation of this file.
1#ifdef PYNE_CRAM_SOLVE_C
2#error "Both cram.h (the C header for CRAM) and cram.hpp (C++) have been included, only one is allowed!"
3#endif
4
5#ifndef PYNE_CRAM_SOLVE_CPP
6#define PYNE_CRAM_SOLVE_CPP
7
8
9typedef struct pyne_cram_transmute_info_tag {
10 int n;
11 int nnz;
12 int* i;
13 int* j;
14 char** nucs;
15 int* nucids;
16 double* decay_matrix;
18
20
21int pyne_cram_transmute_ij(int i, int j);
22
24
25void pyne_cram_solve_double(double* A, double* b, double* x);
26void pyne_cram_diag_add_double(double* A, double alpha);
27void pyne_cram_dot_double(double* A, double* x, double* y);
28void pyne_cram_scalar_times_vector_double(double, double*);
29
30// double complex types are not allowed in the C++ type convention,
31// which extern "C" forced us into.
32
33void pyne_cram_expm_multiply6(double* A, double* b, double* x);
34void pyne_cram_expm_multiply8(double* A, double* b, double* x);
35void pyne_cram_expm_multiply10(double* A, double* b, double* x);
36void pyne_cram_expm_multiply12(double* A, double* b, double* x);
37void pyne_cram_expm_multiply14(double* A, double* b, double* x);
38void pyne_cram_expm_multiply16(double* A, double* b, double* x);
39void pyne_cram_expm_multiply18(double* A, double* b, double* x);
40#endif // PYNE_CRAM_SOLVE_CPP
int pyne_cram_transmute_nucid_to_i(int nucid)
Definition cram.c:30168
pyne_cram_transmute_info_t pyne_cram_transmute_info
Definition cram.c:26
void pyne_cram_expm_multiply10(double *A, double *b, double *x)
Definition cram.c:235879
void pyne_cram_expm_multiply6(double *A, double *b, double *x)
Definition cram.c:228865
void pyne_cram_expm_multiply16(double *A, double *b, double *x)
Definition cram.c:246415
void pyne_cram_expm_multiply12(double *A, double *b, double *x)
Definition cram.c:239389
void pyne_cram_dot_double(double *A, double *x, double *y)
Definition cram.c:91846
void pyne_cram_expm_multiply14(double *A, double *b, double *x)
Definition cram.c:242901
void pyne_cram_expm_multiply18(double *A, double *b, double *x)
Definition cram.c:249931
struct pyne_cram_transmute_info_tag pyne_cram_transmute_info_t
void pyne_cram_expm_multiply8(double *A, double *b, double *x)
Definition cram.c:232371
int pyne_cram_transmute_ij(int i, int j)
Definition cram.c:36
void pyne_cram_scalar_times_vector_double(double, double *)
Definition cram.c:95341
void pyne_cram_solve_double(double *A, double *b, double *x)
Definition cram.c:37156
void pyne_cram_diag_add_double(double *A, double alpha)
Definition cram.c:88351