Ssht  1.3.3
Fast and exact spin spherical harmonic transforms
Macros | Functions
ssht_sampling.c File Reference
#include "ssht/ssht_types.h"
Include dependency graph for ssht_sampling.c:

Macros

#define ABS(x)   ((x) >= 0 ? (x) : -(x))
 

Functions

void gauleg (double x1, double x2, double *x, double *w, int n)
 
ssht_complex_double ssht_sampling_weight_mw (int p)
 
double ssht_sampling_weight_dh (double theta_t, int L)
 
void ssht_sampling_gl_thetas_weights (double *thetas, double *weights, int L)
 
int ssht_sampling_mw_ntheta (int L)
 
double ssht_sampling_mw_t2theta (int t, int L)
 
int ssht_sampling_mw_nphi (int L)
 
double ssht_sampling_mw_p2phi (int p, int L)
 
int ssht_sampling_mw_n (int L)
 
double ssht_sampling_mw_ss_t2theta (int t, int L)
 
int ssht_sampling_mw_ss_ntheta (int L)
 
double ssht_sampling_mw_ss_p2phi (int p, int L)
 
int ssht_sampling_mw_ss_nphi (int L)
 
int ssht_sampling_mw_ss_n (int L)
 
double ssht_sampling_dh_t2theta (int t, int L)
 
int ssht_sampling_dh_ntheta (int L)
 
double ssht_sampling_dh_p2phi (int p, int L)
 
int ssht_sampling_dh_nphi (int L)
 
int ssht_sampling_dh_n (int L)
 
int ssht_sampling_gl_ntheta (int L)
 
double ssht_sampling_gl_p2phi (int p, int L)
 
int ssht_sampling_gl_nphi (int L)
 
int ssht_sampling_gl_n (int L)
 

Detailed Description

Functionality to define sample positions for various algorithms, to compute weights and to convert 1D and 2D harmonic indices.

Author
Jason McEwen

Macro Definition Documentation

◆ ABS

#define ABS (   x)    ((x) >= 0 ? (x) : -(x))

Function Documentation

◆ gauleg()

void gauleg ( double  x1,
double  x2,
double *  x,
double *  w,
int  n 
)

Given the lower and upper limits of integration x1 and x2, this routine returns arrays x[1..n] and w[1..n] of length n, containing the abscissas and weights of the Gauss-Legendre n-point quadrature formula.

Parameters
[in]x1Lower bound of range.
[in]x2Upper bound of range.
[out]xNode positions (i.e. roots of Legendre polynomials).
[out]wCorresponding weights.
[in]nNumber of points (note memory must already be allocated for x and w to store n terms).
Author
Numerical recipes.

◆ ssht_sampling_dh_n()

int ssht_sampling_dh_n ( int  L)

Compute total number of samples for Driscoll and Healy sampling.

Parameters
[in]LHarmonic band-limit.
Return values
nNumber of samples.
Author
Jason McEwen

◆ ssht_sampling_dh_nphi()

int ssht_sampling_dh_nphi ( int  L)

Compute number of phi samples for Driscoll and Healy sampling.

Parameters
[in]LHarmonic band-limit.
Return values
nphiNumber of phi samples.
Author
Jason McEwen

◆ ssht_sampling_dh_ntheta()

int ssht_sampling_dh_ntheta ( int  L)

Compute number of theta samples for Driscoll and Healy sampling.

Parameters
[in]LHarmonic band-limit.
Return values
nthetaNumber of theta samples.
Author
Jason McEwen

◆ ssht_sampling_dh_p2phi()

double ssht_sampling_dh_p2phi ( int  p,
int  L 
)

Convert phi index to angle for Driscoll and Healy sampling.

Note
  • p ranges from [0 .. 2*L-2] => 2*L-1 points in [0,2*pi).
Parameters
[in]pPhi index.
[in]LHarmonic band-limit.
Return values
phiPhi angle.
Author
Jason McEwen

◆ ssht_sampling_dh_t2theta()

double ssht_sampling_dh_t2theta ( int  t,
int  L 
)

Convert theta index to angle for Driscoll and Healy sampling.

Note
  • t ranges from [0 .. 2*L-1] => 2*L points in (0,pi).
Parameters
[in]tTheta index.
[in]LHarmonic band-limit.
Return values
thetaTheta angle.
Author
Jason McEwen

◆ ssht_sampling_gl_n()

int ssht_sampling_gl_n ( int  L)

Compute total number of samples for Gauss-Legendre sampling.

Parameters
[in]LHarmonic band-limit.
Return values
nNumber of samples.
Author
Jason McEwen

◆ ssht_sampling_gl_nphi()

int ssht_sampling_gl_nphi ( int  L)

Compute number of phi samples for Gauss-Legendre sampling.

Parameters
[in]LHarmonic band-limit.
Return values
nphiNumber of phi samples.
Author
Jason McEwen

◆ ssht_sampling_gl_ntheta()

int ssht_sampling_gl_ntheta ( int  L)

Compute number of theta samples for Gauss-Legendre sampling.

Parameters
[in]LHarmonic band-limit.
Return values
nthetaNumber of theta samples.
Author
Jason McEwen

◆ ssht_sampling_gl_p2phi()

double ssht_sampling_gl_p2phi ( int  p,
int  L 
)

Convert phi index to angle for Gauss-Legendre sampling.

Note
  • p ranges from [0 .. 2*L-2] => 2*L-1 points in [0,2*pi).
Parameters
[in]pPhi index.
[in]LHarmonic band-limit.
Return values
phiPhi angle.
Author
Jason McEwen

◆ ssht_sampling_gl_thetas_weights()

void ssht_sampling_gl_thetas_weights ( double *  thetas,
double *  weights,
int  L 
)

Compute Gauss-Legendre theta positions (roots of Legendre polynomials) and corresponding weights.

Parameters
[out]thetasL theta positions (memory must already be allocated to store the L theta positions).
[out]weightsCorresponding weights (memory must already be allocated to store the L weights corresponding to each theta position).
[in]LHarmonic band-limit.
Return values
none
Author
Jason McEwen

◆ ssht_sampling_mw_n()

int ssht_sampling_mw_n ( int  L)

Compute total number of samples for McEwen and Wiaux sampling.

/note Computes number of samples on sphere, not over extended domain.

Parameters
[in]LHarmonic band-limit.
Return values
nNumber of samples.
Author
Jason McEwen

◆ ssht_sampling_mw_nphi()

int ssht_sampling_mw_nphi ( int  L)

Compute number of phi samples for McEwen and Wiaux sampling.

Parameters
[in]LHarmonic band-limit.
Return values
nphiNumber of phi samples.
Author
Jason McEwen

◆ ssht_sampling_mw_ntheta()

int ssht_sampling_mw_ntheta ( int  L)

Compute number of theta samples for McEwen and Wiaux sampling.

/note Computes number of samples in (0,pi], not over extended domain.

Parameters
[in]LHarmonic band-limit.
Return values
nthetaNumber of theta samples.
Author
Jason McEwen

◆ ssht_sampling_mw_p2phi()

double ssht_sampling_mw_p2phi ( int  p,
int  L 
)

Convert phi index to angle for McEwen and Wiaux sampling.

Note
  • p ranges from [0 .. 2*L-2] => 2*L-1 points in [0,2*pi).
Parameters
[in]pPhi index.
[in]LHarmonic band-limit.
Return values
phiPhi angle.
Author
Jason McEwen

◆ ssht_sampling_mw_ss_n()

int ssht_sampling_mw_ss_n ( int  L)

Compute total number of samples for McEwen and Wiaux symmetric sampling.

/note Computes number of samples on sphere, not over extended domain.

Parameters
[in]LHarmonic band-limit.
Return values
nNumber of samples.
Author
Jason McEwen

◆ ssht_sampling_mw_ss_nphi()

int ssht_sampling_mw_ss_nphi ( int  L)

Compute number of phi samples for McEwen and Wiaux symmetric sampling.

Parameters
[in]LHarmonic band-limit.
Return values
nphiNumber of phi samples.
Author
Jason McEwen

◆ ssht_sampling_mw_ss_ntheta()

int ssht_sampling_mw_ss_ntheta ( int  L)

Compute number of theta samples for McEwen and Wiaux symmetric sampling.

/note Computes number of samples in [0,pi], not over extended domain.

Parameters
[in]LHarmonic band-limit.
Return values
nthetaNumber of theta samples.
Author
Jason McEwen

◆ ssht_sampling_mw_ss_p2phi()

double ssht_sampling_mw_ss_p2phi ( int  p,
int  L 
)

Convert phi index to angle for McEwen and Wiaux symmetric sampling.

Note
  • p ranges from [0 .. 2*L-1] => 2*L points in [0,2*pi).
Parameters
[in]pPhi index.
[in]LHarmonic band-limit.
Return values
phiPhi angle.
Author
Jason McEwen

◆ ssht_sampling_mw_ss_t2theta()

double ssht_sampling_mw_ss_t2theta ( int  t,
int  L 
)

Convert theta index to angle for McEwen and Wiaux symmetric sampling.

Note
  • t ranges from [0 .. 2*L-1] => 2*L points in (0,2*pi).
Parameters
[in]tTheta index.
[in]LHarmonic band-limit.
Return values
thetaTheta angle.
Author
Jason McEwen

◆ ssht_sampling_mw_t2theta()

double ssht_sampling_mw_t2theta ( int  t,
int  L 
)

Convert theta index to angle for McEwen and Wiaux sampling.

Note
  • t ranges from [0 .. 2*L-2] => 2*L-1 points in (0,2*pi).
Parameters
[in]tTheta index.
[in]LHarmonic band-limit.
Return values
thetaTheta angle.
Author
Jason McEwen

◆ ssht_sampling_weight_dh()

double ssht_sampling_weight_dh ( double  theta_t,
int  L 
)

Compute Driscoll and Healy weights.

Parameters
[in]theta_tTheta value to compute weight for.
[in]LHarmonic band-limit. return w Weight value computed.
Author
Jason McEwen

◆ ssht_sampling_weight_mw()

ssht_complex_double ssht_sampling_weight_mw ( int  p)

Compute weights for toroidal extension.

Parameters
[in]pInteger index to compute weight for.
[out]wCorresponding weight.
Return values
Weightvalue computed.
Author
Jason McEwen