Geant4-11
nf_Legendre.h
Go to the documentation of this file.
1/*
2# <<BEGIN-copyright>>
3# <<END-copyright>>
4*/
5
6#ifndef nf_Legendre_h_included
7#define nf_Legendre_h_included
8
9#include <nf_utilities.h>
10#include <ptwXY.h>
11
12#if defined __cplusplus
13 extern "C" {
14 namespace GIDI {
15#endif
16
17#define nf_Legendre_minMaxOrder 4
18#define nf_Legendre_maxMaxOrder 64
19#define nf_Legendre_sizeIncrement 8
20
22
25 int allocated; /* Will never be less than nf_Legendre_minMaxOrder. */
26 double *Cls;
27};
28
29typedef nfu_status (*nf_Legendre_GaussianQuadrature_callback)( double x, double *y, void *argList );
30
31/*
32* Methods in nf_Legendre.c
33*/
34nf_Legendre *nf_Legendre_new( int initialSize, int maxOrder, double *Cls, nfu_status *status );
35nfu_status nf_Legendre_setup( nf_Legendre *nfL, int initialSize, int maxOrder );
39nfu_status nf_Legendre_reallocateCls( nf_Legendre *Legendre, int size, int forceSmallerResize );
40int nf_Legendre_maxOrder( nf_Legendre *Legendre );
41int nf_Legendre_allocated( nf_Legendre *Legendre );
42double nf_Legendre_getCl( nf_Legendre *Legendre, int l, nfu_status *status );
43nfu_status nf_Legendre_setCl( nf_Legendre *Legendre, int l, double Cl );
45double nf_Legendre_evauluateAtMu( nf_Legendre *nfL, double mu, nfu_status *status );
46double nf_Legendre_PofL_atMu( int l, double mu );
47ptwXYPoints *nf_Legendre_to_ptwXY( nf_Legendre *nfL, double accuracy, int biSectionMax, int checkForRoots, nfu_status *status );
48nf_Legendre *nf_Legendre_from_ptwXY( ptwXYPoints *ptwXY, int maxOrder, nfu_status *status );
49
50/*
51* Methods in nf_Legendre_GaussianQuadrature.c
52*/
53nfu_status nf_Legendre_GaussianQuadrature( int degree, double x1, double x2, nf_Legendre_GaussianQuadrature_callback func, void *argList, double *integral );
54
55#if defined __cplusplus
56 }
57 }
58#endif
59
60#endif /* End of nf_Legendre_h_included. */
static constexpr double degree
Definition: G4SIunits.hh:124
double nf_Legendre_evauluateAtMu(nf_Legendre *nfL, double mu, nfu_status *status)
Definition: nf_Legendre.cc:160
nfu_status nf_Legendre_setup(nf_Legendre *nfL, int initialSize, int maxOrder)
Definition: nf_Legendre.cc:40
nf_Legendre * nf_Legendre_clone(nf_Legendre *nfL, nfu_status *status)
Definition: nf_Legendre.cc:70
double nf_Legendre_PofL_atMu(int l, double mu)
Definition: nf_Legendre.cc:175
double nf_Legendre_getCl(nf_Legendre *Legendre, int l, nfu_status *status)
Definition: nf_Legendre.cc:119
nf_Legendre * nf_Legendre_free(nf_Legendre *nfL)
Definition: nf_Legendre.cc:61
int nf_Legendre_allocated(nf_Legendre *Legendre)
Definition: nf_Legendre.cc:112
nfu_status nf_Legendre_reallocateCls(nf_Legendre *Legendre, int size, int forceSmallerResize)
Definition: nf_Legendre.cc:77
nf_Legendre * nf_Legendre_new(int initialSize, int maxOrder, double *Cls, nfu_status *status)
Definition: nf_Legendre.cc:23
ptwXYPoints * nf_Legendre_to_ptwXY(nf_Legendre *nfL, double accuracy, int biSectionMax, int checkForRoots, nfu_status *status)
Definition: nf_Legendre.cc:219
int nf_Legendre_maxOrder(nf_Legendre *Legendre)
Definition: nf_Legendre.cc:105
nfu_status nf_Legendre_normalize(nf_Legendre *Legendre)
Definition: nf_Legendre.cc:146
nfu_status nf_Legendre_setCl(nf_Legendre *Legendre, int l, double Cl)
Definition: nf_Legendre.cc:131
nfu_status nf_Legendre_GaussianQuadrature(int degree, double x1, double x2, nf_Legendre_GaussianQuadrature_callback func, void *argList, double *integral)
nfu_status nf_Legendre_release(nf_Legendre *nfL)
Definition: nf_Legendre.cc:52
nf_Legendre * nf_Legendre_from_ptwXY(ptwXYPoints *ptwXY, int maxOrder, nfu_status *status)
Definition: nf_Legendre.cc:250
nfu_status(* nf_Legendre_GaussianQuadrature_callback)(double x, double *y, void *argList)
Definition: nf_Legendre.h:29
enum nfu_status_e nfu_status
double * Cls
Definition: nf_Legendre.h:26