-
Notifications
You must be signed in to change notification settings - Fork 0
/
cmaxent_fortran_interface.cpp
36 lines (33 loc) · 2.07 KB
/
cmaxent_fortran_interface.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "cmaxent.h"
#include <iostream>
/**
* @param xqmc the tau/i-omega resolved monte carlo data
* @param xtau the tau/i-omega grid
* @param len the number of grid points
* @param xmom1 the first moment
* @param xker the kernel to use
* @param backtrans the back-transformation
* @param beta The inverse temperature beta
* @param alpha_tot
* @param n_alpha
* @param ngamma The number of delta functions
* @param omega_start the beginning of the energy window
* @param omega_end The end of the energy window
* @param omega_points the number of points in the omega spectrum
* @param nsweeps
* @param nbins The number of bins
* @param nwarmup the number of configurations that get discarded from the beginning
* @param u the matrix of eigenvectors or a NULL-pointer if the covariance matrix shall be assumed diagonal
* @param sigma eigenvalues of the covariance matrix or errors
* */
void cmaxent_fortran( double* xqmc, double* xtau, int32_t len, double xmom1, double ( *xker ) ( const double&, double&, double& ),
double ( *backtrans ) ( double&, double&, double& ), double beta, double* alpha_tot, int32_t n_alpha, int32_t ngamma, double omega_start, double omega_end,
int32_t omega_points, int32_t nsweeps, int32_t nbins, int32_t nwarmup,/* double* u,*/ double* sigma) asm("cmaxent_fortran");
void cmaxent_fortran( double* xqmc, double* xtau, int32_t len, double xmom1, double ( *xker ) ( const double&, double&, double& ),
double ( *backtrans ) ( double&, double&, double& ), double beta, double* alpha_tot, int32_t n_alpha, int32_t ngamma, double omega_start, double omega_end,
int32_t omega_points, int32_t nsweeps, int32_t nbins, int32_t nwarmup,/* double* u,*/ double* sigma)
{
std::string fr("Aom"); std::string dA("dump_Aom"); std::string ml("max_stoch_log"); std::string energies("energies"); std::string bf("best_fit"); std::string dump("dump");
cmaxent(xqmc, xtau, len, xmom1, xker, backtrans, beta, alpha_tot, n_alpha, ngamma, omega_start, omega_end, omega_points, nsweeps, nbins, nwarmup,
fr, dA, ml, energies, bf, dump, /*u*/NULL, sigma);
}