Developer documentation
Version 3.0.3-105-gd3941f44
Zonal Spherical Harmonics

Classes & functions to manage zonal spherical harmonics (spherical harmonic functions containing only m=0 terms). More...

Classes

class  MR::Math::ZSH::Transform< ValueType >
 

Functions

size_t MR::Math::ZSH::NforL (int lmax)
 the number of (even-degree) coefficients for the given value of lmax More...
 
size_t MR::Math::ZSH::index (int l)
 compute the index for coefficient l More...
 
size_t MR::Math::ZSH::LforN (int N)
 returns the largest lmax given N parameters More...
 
template<typename value_type , class VectorType >
Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > MR::Math::ZSH::init_amp_transform (const VectorType &els, const size_t lmax)
 form the ZSH->amplitudes matrix for a set of elevation angles More...
 
template<typename value_type , class VectorType >
Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > MR::Math::ZSH::init_deriv_transform (const VectorType &els, const size_t lmax)
 form the ZSH->derivatives matrix for a set of elevation angles More...
 
template<class VectorType >
VectorType::Scalar MR::Math::ZSH::value (const VectorType &coefs, typename VectorType::Scalar elevation, const size_t lmax)
 
template<class VectorType >
VectorType::Scalar MR::Math::ZSH::derivative (const VectorType &coefs, const typename VectorType::Scalar elevation, const size_t lmax)
 
template<class VectorType1 , class VectorType2 >
VectorType1 & MR::Math::ZSH::ZSH2SH (VectorType1 &sh, const VectorType2 &zsh)
 
template<class VectorType >
Eigen::Matrix< typename VectorType::Scalar, Eigen::Dynamic, 1 > MR::Math::ZSH::ZSH2SH (const VectorType &zsh)
 
template<class VectorType1 , class VectorType2 >
VectorType1 & MR::Math::ZSH::SH2ZSH (VectorType1 &zsh, const VectorType2 &sh)
 
template<class VectorType >
Eigen::Matrix< typename VectorType::Scalar, Eigen::Dynamic, 1 > MR::Math::ZSH::SH2ZSH (const VectorType &sh)
 
template<class VectorType1 , class VectorType2 >
VectorType1 & MR::Math::ZSH::ZSH2RH (VectorType1 &rh, const VectorType2 &zsh)
 
template<class VectorType >
Eigen::Matrix< typename VectorType::Scalar, Eigen::Dynamic, 1 > MR::Math::ZSH::ZSH2RH (const VectorType &zsh)
 
template<class VectorType1 , class VectorType2 >
VectorType1 & MR::Math::ZSH::zsconv (VectorType1 &zsh, const VectorType2 &RH)
 perform zonal spherical convolution, in place More...
 
template<class VectorType1 , class VectorType2 , class VectorType3 >
VectorType1 & MR::Math::ZSH::zsconv (VectorType1 &C, const VectorType2 &RH, const VectorType3 &zsh)
 perform zonal spherical convolution More...
 
template<class VectorType >
VectorType & MR::Math::ZSH::FA2ZSH (VectorType &zsh, default_type FA, default_type ADC, default_type bvalue, const size_t lmax, const size_t precision=100)
 compute ZSH coefficients corresponding to specified tensor More...
 

Variables

matrix_type MR::Math::ZSH::Transform< ValueType >::ZSHT
 
matrix_type MR::Math::ZSH::Transform< ValueType >::iZSHT
 

Detailed Description

Classes & functions to manage zonal spherical harmonics (spherical harmonic functions containing only m=0 terms).

Function Documentation

◆ derivative()

template<class VectorType >
VectorType::Scalar MR::Math::ZSH::derivative ( const VectorType &  coefs,
const typename VectorType::Scalar  elevation,
const size_t  lmax 
)
inline

Definition at line 161 of file ZSH.h.

◆ FA2ZSH()

template<class VectorType >
VectorType & MR::Math::ZSH::FA2ZSH ( VectorType &  zsh,
default_type  FA,
default_type  ADC,
default_type  bvalue,
const size_t  lmax,
const size_t  precision = 100 
)
inline

compute ZSH coefficients corresponding to specified tensor

Definition at line 274 of file ZSH.h.

◆ index()

size_t MR::Math::ZSH::index ( int  l)
inline

compute the index for coefficient l

Definition at line 48 of file ZSH.h.

◆ init_amp_transform()

template<typename value_type , class VectorType >
Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > MR::Math::ZSH::init_amp_transform ( const VectorType &  els,
const size_t  lmax 
)

form the ZSH->amplitudes matrix for a set of elevation angles

This computes the matrix ZSHT mapping zonal spherical harmonic coefficients up to maximum harmonic degree lmax onto amplitudes on a set of elevations stored in a vector

Definition at line 66 of file ZSH.h.

◆ init_deriv_transform()

template<typename value_type , class VectorType >
Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > MR::Math::ZSH::init_deriv_transform ( const VectorType &  els,
const size_t  lmax 
)

form the ZSH->derivatives matrix for a set of elevation angles

This computes the matrix ZSHT mapping zonal spherical harmonic coefficients up to maximum harmonic degree lmax onto derivatives with respect to elevation angle, for a set of elevations stored in a vector

Definition at line 87 of file ZSH.h.

◆ LforN()

size_t MR::Math::ZSH::LforN ( int  N)
inline

returns the largest lmax given N parameters

Definition at line 54 of file ZSH.h.

◆ NforL()

size_t MR::Math::ZSH::NforL ( int  lmax)
inline

the number of (even-degree) coefficients for the given value of lmax

Definition at line 42 of file ZSH.h.

◆ SH2ZSH() [1/2]

template<class VectorType >
Eigen::Matrix< typename VectorType::Scalar, Eigen::Dynamic, 1 > MR::Math::ZSH::SH2ZSH ( const VectorType &  sh)
inline

Definition at line 211 of file ZSH.h.

◆ SH2ZSH() [2/2]

template<class VectorType1 , class VectorType2 >
VectorType1 & MR::Math::ZSH::SH2ZSH ( VectorType1 &  zsh,
const VectorType2 &  sh 
)
inline

Definition at line 201 of file ZSH.h.

◆ value()

template<class VectorType >
VectorType::Scalar MR::Math::ZSH::value ( const VectorType &  coefs,
typename VectorType::Scalar  elevation,
const size_t  lmax 
)
inline

Definition at line 144 of file ZSH.h.

◆ zsconv() [1/2]

template<class VectorType1 , class VectorType2 , class VectorType3 >
VectorType1 & MR::Math::ZSH::zsconv ( VectorType1 &  C,
const VectorType2 &  RH,
const VectorType3 &  zsh 
)
inline

perform zonal spherical convolution

perform zonal spherical convolution of SH coefficients sh with response function RH, storing the results in vector C.

Definition at line 260 of file ZSH.h.

◆ zsconv() [2/2]

template<class VectorType1 , class VectorType2 >
VectorType1 & MR::Math::ZSH::zsconv ( VectorType1 &  zsh,
const VectorType2 &  RH 
)
inline

perform zonal spherical convolution, in place

perform zonal spherical convolution of ZSH coefficients zsh with response function RH, storing the results in place in vector zsh.

Definition at line 247 of file ZSH.h.

◆ ZSH2RH() [1/2]

template<class VectorType >
Eigen::Matrix< typename VectorType::Scalar, Eigen::Dynamic, 1 > MR::Math::ZSH::ZSH2RH ( const VectorType &  zsh)
inline

Definition at line 234 of file ZSH.h.

◆ ZSH2RH() [2/2]

template<class VectorType1 , class VectorType2 >
VectorType1 & MR::Math::ZSH::ZSH2RH ( VectorType1 &  rh,
const VectorType2 &  zsh 
)
inline

Definition at line 221 of file ZSH.h.

◆ ZSH2SH() [1/2]

template<class VectorType >
Eigen::Matrix< typename VectorType::Scalar, Eigen::Dynamic, 1 > MR::Math::ZSH::ZSH2SH ( const VectorType &  zsh)
inline

Definition at line 190 of file ZSH.h.

◆ ZSH2SH() [2/2]

template<class VectorType1 , class VectorType2 >
VectorType1 & MR::Math::ZSH::ZSH2SH ( VectorType1 &  sh,
const VectorType2 &  zsh 
)
inline

Definition at line 178 of file ZSH.h.

Variable Documentation

◆ iZSHT

template<typename ValueType >
matrix_type MR::Math::ZSH::Transform< ValueType >::iZSHT
protected

Definition at line 138 of file ZSH.h.

◆ ZSHT

template<typename ValueType >
matrix_type MR::Math::ZSH::Transform< ValueType >::ZSHT
protected

Definition at line 138 of file ZSH.h.