#include <nf_utilities.h>
#include <ptwXY.h>
 
Go to the source code of this file.
 | 
| nf_Legendre *  | nf_Legendre_new (int initialSize, int maxOrder, double *Cls, nfu_status *status) | 
|   | 
| nfu_status  | nf_Legendre_setup (nf_Legendre *nfL, int initialSize, int maxOrder) | 
|   | 
| nfu_status  | nf_Legendre_release (nf_Legendre *nfL) | 
|   | 
| nf_Legendre *  | nf_Legendre_free (nf_Legendre *nfL) | 
|   | 
| nf_Legendre *  | nf_Legendre_clone (nf_Legendre *nfL, nfu_status *status) | 
|   | 
| nfu_status  | nf_Legendre_reallocateCls (nf_Legendre *Legendre, int size, int forceSmallerResize) | 
|   | 
| int  | nf_Legendre_maxOrder (nf_Legendre *Legendre) | 
|   | 
| int  | nf_Legendre_allocated (nf_Legendre *Legendre) | 
|   | 
| double  | nf_Legendre_getCl (nf_Legendre *Legendre, int l, nfu_status *status) | 
|   | 
| nfu_status  | nf_Legendre_setCl (nf_Legendre *Legendre, int l, double Cl) | 
|   | 
| nfu_status  | nf_Legendre_normalize (nf_Legendre *Legendre) | 
|   | 
| double  | nf_Legendre_evauluateAtMu (nf_Legendre *nfL, double mu, nfu_status *status) | 
|   | 
| double  | nf_Legendre_PofL_atMu (int l, double mu) | 
|   | 
| ptwXYPoints *  | nf_Legendre_to_ptwXY (nf_Legendre *nfL, double accuracy, int biSectionMax, int checkForRoots, nfu_status *status) | 
|   | 
| nf_Legendre *  | nf_Legendre_from_ptwXY (ptwXYPoints *ptwXY, int maxOrder, nfu_status *status) | 
|   | 
| nfu_status  | nf_Legendre_GaussianQuadrature (int degree, double x1, double x2, nf_Legendre_GaussianQuadrature_callback func, void *argList, double *integral) | 
|   | 
◆ nf_Legendre_maxMaxOrder
      
        
          | #define nf_Legendre_maxMaxOrder   64 | 
        
      
 
 
◆ nf_Legendre_minMaxOrder
      
        
          | #define nf_Legendre_minMaxOrder   4 | 
        
      
 
 
◆ nf_Legendre_sizeIncrement
      
        
          | #define nf_Legendre_sizeIncrement   8 | 
        
      
 
 
◆ nf_Legendre
◆ nf_Legendre_GaussianQuadrature_callback
      
        
          | typedef nfu_status(* nf_Legendre_GaussianQuadrature_callback) (double x, double *y, void *argList) | 
        
      
 
 
◆ nf_Legendre_allocated()
◆ nf_Legendre_clone()
Definition at line 70 of file nf_Legendre.cc.
nf_Legendre * nf_Legendre_new(int initialSize, int maxOrder, double *Cls, nfu_status *status)
 
 
 
 
◆ nf_Legendre_evauluateAtMu()
Definition at line 160 of file nf_Legendre.cc.
  166     if( ( mu >= -1. ) && ( mu <= 1. ) ) {
   168         for( l = 0; l <= Legendre->maxOrder; l++ ) P += ( l + 0.5 ) * Legendre->Cls[
l] * 
nf_Legendre_PofL_atMu( l, mu );
 
double nf_Legendre_PofL_atMu(int l, double mu)
 
 
 
 
◆ nf_Legendre_free()
Definition at line 61 of file nf_Legendre.cc.
nfu_status nf_Legendre_release(nf_Legendre *Legendre)
 
 
 
 
◆ nf_Legendre_from_ptwXY()
Definition at line 250 of file nf_Legendre.cc.
  254     double mu1, 
mu2, 
f1, 
f2, Cl, Cls[1] = { 0 }, integral;
   271     if( ( Legendre = 
nf_Legendre_new( maxOrder + 1, -1, Cls, status ) ) == NULL ) 
return( NULL );
   274     for( l = 0; l <= maxOrder; l++ ) {
   277         for( i = 1, Cl = 0; i < 
n; i++ ) {
 
int64_t ptwXY_length(ptwXYPoints *ptwXY)
 
#define nf_Legendre_maxMaxOrder
 
nfu_status ptwXY_getStatus(ptwXYPoints *ptwXY)
 
nfu_status nf_Legendre_setCl(nf_Legendre *Legendre, int l, double Cl)
 
nf_Legendre * nf_Legendre_new(int initialSize, int maxOrder, double *Cls, nfu_status *status)
 
static nfu_status nf_Legendre_from_ptwXY_callback(double mu, double *f, void *argList)
 
nf_Legendre * nf_Legendre_free(nf_Legendre *Legendre)
 
nfu_status nf_Legendre_GaussianQuadrature(int degree, double x1, double x2, nf_Legendre_GaussianQuadrature_callback func, void *argList, double *integral)
 
nfu_status ptwXY_getXYPairAtIndex(ptwXYPoints *ptwXY, int64_t index, double *x, double *y)
 
 
 
 
◆ nf_Legendre_GaussianQuadrature()
Definition at line 63 of file nf_Legendre_GaussianQuadrature.cc.
   66     double x, mu, sum, *weights, *xis;
    71         status = func( 0.5 * ( 
x1 + 
x2 ), integral, argList );
    75         if( ( status = func( x, integral, argList ) ) == 
nfu_Okay ) {
    77             status = func( x, &sum, argList );
    81         for( i = 0; i < 
nSets - 1; i++ ) {
    87         for( i = 0; i < 
n; i++ ) {
    89             x = 0.5 * ( 
x1 * ( 1 - mu ) + 
x2 * ( mu + 1 ) );
    90             if( ( status = func( x, &sum, argList ) ) != 
nfu_Okay ) 
break;
    91             *integral += sum * weights[i];
    92             if( mu == 0 ) 
continue;
    94             if( ( status = func( x, &sum, argList ) ) != 
nfu_Okay ) 
break;
    95             *integral += sum * weights[i];
    98     *integral *= 0.5 * ( 
x2 - 
x1 );
 
enum nfu_status_e nfu_status
 
static const double degree
 
static struct nf_Legendre_GaussianQuadrature_degree GaussianQuadrature_degrees[nSets]
 
 
 
 
◆ nf_Legendre_getCl()
◆ nf_Legendre_maxOrder()
◆ nf_Legendre_new()
Definition at line 23 of file nf_Legendre.cc.
   29     if( Legendre == NULL ) 
return( NULL );
    34     for( l = 0; l <= Legendre->
maxOrder; l++ ) Legendre->
Cls[l] = Cls[l];
 
nfu_status nf_Legendre_setup(nf_Legendre *Legendre, int initialSize, int maxOrder)
 
void * nfu_malloc(size_t size)
 
 
 
 
◆ nf_Legendre_normalize()
◆ nf_Legendre_PofL_atMu()
      
        
          | double nf_Legendre_PofL_atMu  | 
          ( | 
          int  | 
          l,  | 
        
        
           | 
           | 
          double  | 
          mu  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Definition at line 175 of file nf_Legendre.cc.
  178     double Pl_minus1, Pl, Pl_plus1;
   209     for( l_ = 0, twoL_plus1 = 1; l_ < 
l; l_++, twoL_plus1 += 2 ) {
   212         Pl_plus1 = ( twoL_plus1 * mu * Pl - l_ * Pl_minus1 ) / ( l_ + 1 );
 
 
 
 
◆ nf_Legendre_reallocateCls()
Definition at line 77 of file nf_Legendre.cc.
   85             Legendre->
Cls = (
double *) 
nfu_realloc( size * 
sizeof( 
double ), Legendre->
Cls ); }
    88             if( ( Legendre->
allocated > 2 * size ) || forceSmallerResize ) {
    89                     Legendre->
Cls = (
double *) 
nfu_realloc( size * 
sizeof( 
double ), Legendre->
Cls ); } 
    94         if( Legendre->
Cls == NULL ) {
 
#define nf_Legendre_maxMaxOrder
 
enum nfu_status_e nfu_status
 
void * nfu_realloc(size_t size, void *old)
 
#define nf_Legendre_minMaxOrder
 
 
 
 
◆ nf_Legendre_release()
◆ nf_Legendre_setCl()
Definition at line 131 of file nf_Legendre.cc.
  140     Legendre->
Cls[
l] = Cl;
 #define nf_Legendre_sizeIncrement
 
enum nfu_status_e nfu_status
 
nfu_status nf_Legendre_reallocateCls(nf_Legendre *Legendre, int size, int forceSmallerResize)
 
 
 
 
◆ nf_Legendre_setup()
Definition at line 40 of file nf_Legendre.cc.
   43     if( maxOrder < 0 ) maxOrder = -1;
    45     Legendre->maxOrder = maxOrder;
    46     if( initialSize < ( maxOrder + 1 ) ) initialSize = maxOrder + 1;
 #define nf_Legendre_maxMaxOrder
 
nfu_status nf_Legendre_reallocateCls(nf_Legendre *Legendre, int size, int forceSmallerResize)
 
 
 
 
◆ nf_Legendre_to_ptwXY()
Definition at line 219 of file nf_Legendre.cc.
  223     void *argList = (
void *) Legendre;
   227     if( Legendre->maxOrder > 1 ) {
   228         n = Legendre->maxOrder - 1;
   229         if( n > 249 ) n = 249;
   232         for( i = 1; i < 
n; i++ ) xs[i] = xs[i-1] + dx;
 ptwXYPoints * ptwXY_createFromFunction(int n, double *xs, ptwXY_createFromFunction_callback func, void *argList, double accuracy, int checkForRoots, int biSectionMax, nfu_status *status)
 
static nfu_status nf_Legendre_to_ptwXY2(double mu, double *P, void *argList)