gstlearn
1.0.0
CCC
|
#include "geoslib_d.h"
#include "geoslib_old_f.h"
#include "geoslib_define.h"
#include "Matrix/MatrixRectangular.hpp"
#include "Basic/MathFunc.hpp"
#include "Basic/Law.hpp"
#include "Basic/WarningMacro.hpp"
#include <math.h>
#include <boost/math/special_functions/legendre.hpp>
#include <boost/math/special_functions/spherical_harmonic.hpp>
#include <Geometry/GeometryHelper.hpp>
Classes | |
struct | Reg_Coor |
Macros | |
#define | COORD(i, ip) (coord[3 * (ip) + (i)]) |
#define | RCOORD(i, ip) (R_coor->coor[3 * (ip) + (i)]) |
#define | w ((double *)&equiv_99) |
#define | x ((double *)&equiv_100) |
#define | X 0.525731112119133696 |
#define | Z 0.850650808352039932 |
Functions | |
void | mvndst (int n, double *lower, double *upper, int *infin, double *correl, int maxpts, double abseps, double releps, double *error, double *value, int *inform) |
void | mvndst4 (double *lower, double *upper, double *correl, int maxpts, double abseps, double releps, double *error, double *value, int *inform) |
void | mvndst2n (double *lower, double *upper, double *means, double *correl, int maxpts, double abseps, double releps, double *error, double *value, int *inform) |
int | mvndst_infin (double low, double sup) |
int | bessel_j (double x, double alpha, int nb, double *b) |
int | bessel_k (double x, double alpha, int nb, double *bk) |
double | loggamma (double parameter) |
double | ut_legendre (int flag_norm, int n, double v) |
double | ut_flegendre (int flag_norm, int n, int k0, double theta) |
double | golden_search (double(*func_evaluate)(double test, void *user_data), void *user_data, double tolstop, double a0, double c0, double *test_loc, double *niter) |
int | ut_chebychev_count (double(*func)(double, double, int, double *), Cheb_Elem *cheb_elem, double x, int nblin, double *blin) |
int | ut_chebychev_coeffs (double(*func)(double, double, int, double *), Cheb_Elem *cheb_elem, int nblin, double *blin) |
void | ut_vandercorput (int n, int flag_sym, int flag_rot, int *ntri_arg, double **coor_arg) |
void | st_subdivide (double v1[3], double v2[3], double v3[3], int depth, Reg_Coor *R_coor) |
int | ut_icosphere (int n, int flag_rot, int *ntri_arg, double **coor_arg) |
void | ut_log_factorial (int nbpoly, double *factor) |
double | ut_factorial (int k) |
DISABLE_WARNING_POP MatrixRectangular * | vanDerCorput (int n, int nd) |
MatrixRectangular | fillLegendreMatrix (const VectorDouble &r, int legendreOrder) |
#define COORD | ( | i, | |
ip | |||
) | (coord[3 * (ip) + (i)]) |
#define RCOORD | ( | i, | |
ip | |||
) | (R_coor->coor[3 * (ip) + (i)]) |
#define w ((double *)&equiv_99) |
#define x ((double *)&equiv_100) |
#define X 0.525731112119133696 |
#define Z 0.850650808352039932 |
int bessel_j | ( | double | x, |
double | alpha, | ||
int | nb, | ||
double * | b | ||
) |
This routine calculates Bessel functions J SUB(NB+ALPHA) (X) for non-negative argument X, and non-negative order NB+ALPHA.
[in] | x | Working precision non-negative real argument for which J's are to be calculated. |
[in] | alpha | Working precision fractional part of order for which J's are to be calculated. 0 <= ALPHA < 1.0. |
[in] | nb | Integer number of functions to be calculated, NB > 0 The first function calculated is of order ALPHA, and the last is of order (NB - 1 + ALPHA). |
[out] | b | Working precision output vector of length NB. If the routine terminates normally (NCALC=NB), the vector by[] contains the functions Y(ALPHA,X), ... ,Y(NB-1+ALPHA,X), |
int bessel_k | ( | double | x, |
double | alpha, | ||
int | nb, | ||
double * | bk | ||
) |
This routine calculates modified Bessel functions of the second kind, K SUB(N+ALPHA) (X), for non-negative argument X and non-negative order N+ALPHA
[in] | x | Working precision non-negative real argument for which K's are to calculated. If K's are to be calculated, X must not be greater than XMAX. |
[in] | alpha | Working precision fractional part of order for which K's are to be calculated. 0 <= ALPHA <1.0. |
[in] | nb | Integer number of functions to be calculated, NB > 0. The first function calculated is of order ALPHA, and the last is of order (NB - 1 + ALPHA). |
[out] | bk | Working precision output vector of length NB. If the routine terminates normally (NCALC=NB), the vector BK contains the functions : K(ALPHA,X), ... , K(NB-1+ALPHA,X), |
MatrixRectangular fillLegendreMatrix | ( | const VectorDouble & | r, |
int | legendreOrder | ||
) |
double golden_search | ( | double(*)(double test, void *user_data) | func_evaluate, |
void * | user_data, | ||
double | tolstop, | ||
double | a0, | ||
double | c0, | ||
double * | test_loc, | ||
double * | niter | ||
) |
Golden Search algorithm
[in] | func_evaluate | Evaluating function |
[in] | user_data | User Data |
[in] | tolstop | Tolerance parameter |
[in] | a0 | Initial value for lower bound of interval |
[in] | c0 | Initial value for upper bound of interval |
[out] | test_loc | Final value of the evaluating function |
[out] | niter | Number of iterations |
double loggamma | ( | double | parameter | ) |
Calculation of the logarithm of the gamma function
[in] | parameter | raw value |
void mvndst | ( | int | n, |
double * | lower, | ||
double * | upper, | ||
int * | infin, | ||
double * | correl, | ||
int | maxpts, | ||
double | abseps, | ||
double | releps, | ||
double * | error, | ||
double * | value, | ||
int * | inform | ||
) |
Multivariate Normal Probability
[in] | n | Number of variables |
[in] | lower | Array of lower integration limits |
[in] | upper | Array of upper integration limits |
[in] | infin | Array of integration limit flags
|
[in] | correl | Array of correlation coefficients |
[in] | maxpts | Maximum number of function values allowed |
[in] | abseps | Absolute error tolerance |
[in] | releps | Relative error tolerance |
[out] | error | Estimated absolute error with 90% confidence level |
[out] | value | Estimated value for the integral |
[out] | inform | Returned code |
void mvndst2n | ( | double * | lower, |
double * | upper, | ||
double * | means, | ||
double * | correl, | ||
int | maxpts, | ||
double | abseps, | ||
double | releps, | ||
double * | error, | ||
double * | value, | ||
int * | inform | ||
) |
Calculate the multigaussian integral (non-normalized)
[in] | lower | Array of lower bounds (Dimension: nvar) |
[in] | upper | Array of upper bounds (Dimension: nvar) |
[in] | means | Array of means (Dimension: 2) |
[in] | correl | Correlation matrix (Dimension: 2*2) |
[in] | maxpts | Maximum number of function values allowed |
[in] | abseps | Absolute error tolerance |
[in] | releps | Relative error tolerance |
[out] | error | Estimated absolute error with 90% confidence level |
[out] | value | Estimated value for the integral |
[out] | inform | Returned code |
void mvndst4 | ( | double * | lower, |
double * | upper, | ||
double * | correl, | ||
int | maxpts, | ||
double | abseps, | ||
double | releps, | ||
double * | error, | ||
double * | value, | ||
int * | inform | ||
) |
Calculate the quadri-variable gaussian integral
[in] | lower | Array of lower bounds |
[in] | upper | Array of upper bounds |
[in] | correl | Correlation matrix (Dimension: 4*4) |
[in] | maxpts | Maximum number of function values allowed |
[in] | abseps | Absolute error tolerance |
[in] | releps | Relative error tolerance |
[out] | error | Estimated absolute error with 90% confidence level |
[out] | value | Estimated value for the integral |
[out] | inform | Returned code |
int mvndst_infin | ( | double | low, |
double | sup | ||
) |
Set the flags for the bound of numerical integration
[in] | low | Lower integration bound |
[in] | sup | Upper integration bound |
void st_subdivide | ( | double | v1[3], |
double | v2[3], | ||
double | v3[3], | ||
int | depth, | ||
Reg_Coor * | R_coor | ||
) |
int ut_chebychev_coeffs | ( | double(*)(double, double, int, double *) | func, |
Cheb_Elem * | cheb_elem, | ||
int | nblin, | ||
double * | blin | ||
) |
Calculates the coefficients of the Chebychev polynomial which is an approximation of a given function
int ut_chebychev_count | ( | double(*)(double, double, int, double *) | func, |
Cheb_Elem * | cheb_elem, | ||
double | x, | ||
int | nblin, | ||
double * | blin | ||
) |
Evaluate the number of coefficients necessary to evaluate a function (at a sample location) at a given approximation
double ut_factorial | ( | int | k | ) |
Calculates the factorial coefficient
[in] | k | Value |
double ut_flegendre | ( | int | flag_norm, |
int | n, | ||
int | k0, | ||
double | theta | ||
) |
Returns the Spherical Legendre normalized function
[in] | flag_norm | 1 for normalized and 0 otherwise |
[in] | n | Degree |
[in] | k0 | Order (ABS(k0) <= n) |
[in] | theta | Theta angle in radian |
int ut_icosphere | ( | int | n, |
int | flag_rot, | ||
int * | ntri_arg, | ||
double ** | coor_arg | ||
) |
Generate regular Icosahedron discretization
[in] | n | Number of discretization steps |
[in] | flag_rot | Perform a random rotation |
[out] | ntri_arg | Number of points |
[out] | coor_arg | Array of point coordinates (Dimension: 3*ntri) |
double ut_legendre | ( | int | flag_norm, |
int | n, | ||
double | v | ||
) |
Returns the Associated Legendre Function
[in] | flag_norm | 1 for normalized and 0 otherwise |
[in] | n | Degree |
[in] | v | Value |
void ut_log_factorial | ( | int | nbpoly, |
double * | factor | ||
) |
Calculates the nbpoly log-factorial coefficients
[in] | nbpoly | Number of terms |
[out] | factor | logarithm of factorials |
void ut_vandercorput | ( | int | n, |
int | flag_sym, | ||
int | flag_rot, | ||
int * | ntri_arg, | ||
double ** | coor_arg | ||
) |
Generate a Van Der Corput list of points in R^3
[in] | n | Number of points |
[in] | flag_sym | Duplicate the samples by symmetry |
[in] | flag_rot | Perform a random rotation |
[out] | ntri_arg | Number of points |
[out] | coor_arg | Array of point coordinates (Dimension: 3*ntri) |
DISABLE_WARNING_POP MatrixRectangular* vanDerCorput | ( | int | n, |
int | nd | ||
) |
Function to compute the vector Van der Corput sequence or the Halton sequence
n | The number of values to be computed |
nd | The dimension of output sequence |