Rosetta
Public Member Functions | Private Member Functions | Private Attributes | List of all members
numeric::fourier::SHT Class Reference

#include <SHT.hh>

Public Member Functions

 SHT ()
 Constructor. More...
 
 SHT (int B, int nR)
 Construct with a given bandwidth, # of radial shells. More...
 
 ~SHT ()
 Destructor. More...
 
void init (int B, int nR)
 Initialize with a given bandwidth, # of radial shells. More...
 
void sharm_transform (ObjexxFCL::FArray3D< double > const &sigR, ObjexxFCL::FArray3D< double > &sigCoefR, ObjexxFCL::FArray3D< double > &sigCoefI)
 Take spherical harmonic transform of 'sigR', result in 'sigCoefR' and 'sigCoefI'. More...
 
void sharm_invTransform (ObjexxFCL::FArray3D< double > &sigR, ObjexxFCL::FArray3D< double > &sigCoefR, ObjexxFCL::FArray3D< double > &sigCoefI)
 Take inverse spherical harmonic transform of 'sigCoefR' and 'sigCoefI', result in 'sigR'. More...
 
void sph_standardize (ObjexxFCL::FArray3D< double > &sigCoefR, ObjexxFCL::FArray3D< double > &sigCoefI)
 Standardize coefficients 'sigCoefR' and 'sigCoefI'. More...
 
void so3_correlate (ObjexxFCL::FArray3D< double > &so3_correlation, ObjexxFCL::FArray3D< double > &sigCoefR, ObjexxFCL::FArray3D< double > &sigCoefI, ObjexxFCL::FArray3D< double > &tmpCoefR, ObjexxFCL::FArray3D< double > &tmpCoefI)
 Correlate two signals ('sigCoef' and 'tmpCoef') as a function of rotation of 'tmpCoef', result in 'so3_correlation'. More...
 
void idx_to_rot (int maxloc, numeric::xyzMatrix< double > &thisRot)
 Convert an index from 'so3_correlation' into a rotation matrix. More...
 
void idx_to_euler (int maxloc, numeric::xyzVector< double > &eulerAngles)
 Convert an index from 'so3_correlation' into Euler angles alpha, beta, gamma. More...
 

Private Member Functions

void so3CombineCoef (utility::vector0< double > &sigCoefR, utility::vector0< double > &sigCoefI, utility::vector0< double > &tmpCoefR, utility::vector0< double > &tmpCoefI, ObjexxFCL::FArray3D< std::complex< double > > &so3Coef)
 
void inverseSo3 (ObjexxFCL::FArray3D< std::complex< double > > &so3Coef, ObjexxFCL::FArray3D< std::complex< double > > &conv)
 
void forwardS2 (utility::vector0< double > &rdata, utility::vector0< double > &rcoeffs, utility::vector0< double > &icoeffs)
 
void inverseS2 (utility::vector0< double > &rcoeffs, utility::vector0< double > &icoeffs, utility::vector0< double > &rdata)
 
void setup_Pmls ()
 
void setup_Wig ()
 
void setup_Weights ()
 

Private Attributes

int bw
 
int nRsteps
 
SO3coeffs so3_
 
kiss_fft_cfg p1
 
kiss_fftsplit_cfg fftPlan
 
kiss_fftsplit_cfg ifftPlan
 
kiss_dct_cfg dctPlan
 
kiss_dct_cfg idctPlan
 
utility::vector0< doubleweights_
 
utility::vector0< doubleprecompute_wig_trans_
 
utility::vector0< utility::vector0< double > > precompute_pml_
 
utility::vector0< utility::vector0< double > > precompute_pml_trans_
 

Constructor & Destructor Documentation

◆ SHT() [1/2]

numeric::fourier::SHT::SHT ( )

Constructor.

References bw, dctPlan, fftPlan, idctPlan, ifftPlan, nRsteps, and p1.

◆ SHT() [2/2]

numeric::fourier::SHT::SHT ( int  B,
int  nR 
)

Construct with a given bandwidth, # of radial shells.

References bw, dctPlan, fftPlan, idctPlan, ifftPlan, init(), nRsteps, and p1.

◆ ~SHT()

numeric::fourier::SHT::~SHT ( )

Destructor.

References dctPlan, fftPlan, idctPlan, ifftPlan, and p1.

Member Function Documentation

◆ forwardS2()

void numeric::fourier::SHT::forwardS2 ( utility::vector0< double > &  rdata,
utility::vector0< double > &  rcoeffs,
utility::vector0< double > &  icoeffs 
)
private

◆ idx_to_euler()

void numeric::fourier::SHT::idx_to_euler ( int  maxloc,
numeric::xyzVector< double > &  eulerAngles 
)

Convert an index from 'so3_correlation' into Euler angles alpha, beta, gamma.

References bw, create_a3b_hbs::ii, beta_nonlocal::jj, kk, and numeric::constants::d::pi.

◆ idx_to_rot()

void numeric::fourier::SHT::idx_to_rot ( int  maxloc,
numeric::xyzMatrix< double > &  thisRot 
)

Convert an index from 'so3_correlation' into a rotation matrix.

References a, compute_difference::b, bw, g(), numeric::xyzMatrix< T >::identity(), create_a3b_hbs::ii, beta_nonlocal::jj, kk, and numeric::constants::d::pi.

◆ init()

void numeric::fourier::SHT::init ( int  B,
int  nR 
)

◆ inverseS2()

void numeric::fourier::SHT::inverseS2 ( utility::vector0< double > &  rcoeffs,
utility::vector0< double > &  icoeffs,
utility::vector0< double > &  rdata 
)
private

◆ inverseSo3()

void numeric::fourier::SHT::inverseSo3 ( ObjexxFCL::FArray3D< std::complex< double > > &  so3Coef,
ObjexxFCL::FArray3D< std::complex< double > > &  conv 
)
private

◆ setup_Pmls()

void numeric::fourier::SHT::setup_Pmls ( )
private

◆ setup_Weights()

void numeric::fourier::SHT::setup_Weights ( )
private

◆ setup_Wig()

void numeric::fourier::SHT::setup_Wig ( )
private

◆ sharm_invTransform()

void numeric::fourier::SHT::sharm_invTransform ( ObjexxFCL::FArray3D< double > &  sigR,
ObjexxFCL::FArray3D< double > &  sigCoefR,
ObjexxFCL::FArray3D< double > &  sigCoefI 
)

Take inverse spherical harmonic transform of 'sigCoefR' and 'sigCoefI', result in 'sigR'.

References bw, ObjexxFCL::FArray3D< T >::dimension(), create_a3b_hbs::i, init(), inverseS2(), nRsteps, docking::R, ObjexxFCL::FArray3D< T >::u2(), and ObjexxFCL::FArray3D< T >::u3().

◆ sharm_transform()

void numeric::fourier::SHT::sharm_transform ( ObjexxFCL::FArray3D< double > const &  sigR,
ObjexxFCL::FArray3D< double > &  sigCoefR,
ObjexxFCL::FArray3D< double > &  sigCoefI 
)

Take spherical harmonic transform of 'sigR', result in 'sigCoefR' and 'sigCoefI'.

References bw, ObjexxFCL::FArray3D< T >::dimension(), forwardS2(), create_a3b_hbs::i, init(), nRsteps, docking::R, ObjexxFCL::FArray3D< T >::u2(), and ObjexxFCL::FArray3D< T >::u3().

◆ so3_correlate()

void numeric::fourier::SHT::so3_correlate ( ObjexxFCL::FArray3D< double > &  so3_correlation,
ObjexxFCL::FArray3D< double > &  sigCoefR,
ObjexxFCL::FArray3D< double > &  sigCoefI,
ObjexxFCL::FArray3D< double > &  tmpCoefR,
ObjexxFCL::FArray3D< double > &  tmpCoefI 
)

Correlate two signals ('sigCoef' and 'tmpCoef') as a function of rotation of 'tmpCoef', result in 'so3_correlation'.

References bw, ObjexxFCL::FArray3D< T >::dimension(), create_a3b_hbs::i, init(), inverseSo3(), nRsteps, docking::R, so3CombineCoef(), numeric::square(), ObjexxFCL::FArray3D< T >::u2(), and ObjexxFCL::FArray3D< T >::u3().

◆ so3CombineCoef()

void numeric::fourier::SHT::so3CombineCoef ( utility::vector0< double > &  sigCoefR,
utility::vector0< double > &  sigCoefI,
utility::vector0< double > &  tmpCoefR,
utility::vector0< double > &  tmpCoefI,
ObjexxFCL::FArray3D< std::complex< double > > &  so3Coef 
)
private

◆ sph_standardize()

void numeric::fourier::SHT::sph_standardize ( ObjexxFCL::FArray3D< double > &  sigCoefR,
ObjexxFCL::FArray3D< double > &  sigCoefI 
)

Member Data Documentation

◆ bw

int numeric::fourier::SHT::bw
private

◆ dctPlan

kiss_dct_cfg numeric::fourier::SHT::dctPlan
private

Referenced by forwardS2(), init(), SHT(), and ~SHT().

◆ fftPlan

kiss_fftsplit_cfg numeric::fourier::SHT::fftPlan
private

Referenced by forwardS2(), init(), SHT(), and ~SHT().

◆ idctPlan

kiss_dct_cfg numeric::fourier::SHT::idctPlan
private

Referenced by init(), inverseS2(), SHT(), and ~SHT().

◆ ifftPlan

kiss_fftsplit_cfg numeric::fourier::SHT::ifftPlan
private

Referenced by init(), inverseS2(), SHT(), and ~SHT().

◆ nRsteps

int numeric::fourier::SHT::nRsteps
private

◆ p1

kiss_fft_cfg numeric::fourier::SHT::p1
private

Referenced by init(), inverseSo3(), SHT(), and ~SHT().

◆ precompute_pml_

utility::vector0< utility::vector0<double> > numeric::fourier::SHT::precompute_pml_
private

Referenced by forwardS2(), init(), and setup_Pmls().

◆ precompute_pml_trans_

utility::vector0< utility::vector0<double> > numeric::fourier::SHT::precompute_pml_trans_
private

Referenced by init(), inverseS2(), and setup_Pmls().

◆ precompute_wig_trans_

utility::vector0< double > numeric::fourier::SHT::precompute_wig_trans_
private

Referenced by init(), inverseSo3(), and setup_Wig().

◆ so3_

SO3coeffs numeric::fourier::SHT::so3_
private

◆ weights_

utility::vector0< double > numeric::fourier::SHT::weights_
private

Referenced by forwardS2(), and setup_Weights().


The documentation for this class was generated from the following files: