![]() |
ProSHADE
0.7.5.4 (MAR 2021)
Protein Shape Detection
|
This namespace contains all the functionality required to perform object rotation in SO(3) space. More...
Functions | |
void | allocateWignerWorkspace (proshade_double *&matIn, proshade_double *&matOut, proshade_double *&sqrts, proshade_double *&workspace, proshade_double *&alphaExponentReal, proshade_double *&alphaExponentImag, proshade_double *&gammaExponentReal, proshade_double *&gammaExponentImag, proshade_double *&trigs, proshade_unsign compBand) |
This function allocates the memory for the Wigner matrices computation. More... | |
void | releaseWignerWorkspace (proshade_double *&matIn, proshade_double *&matOut, proshade_double *&sqrts, proshade_double *&workspace, proshade_double *&alphaExponentReal, proshade_double *&alphaExponentImag, proshade_double *&gammaExponentReal, proshade_double *&gammaExponentImag, proshade_double *&trigs) |
This function releases the memory for the Wigner matrices computation. More... | |
void | prepareTrigsSqrtsAndExponents (proshade_double *sqrts, proshade_double *alphaExponentReal, proshade_double *alphaExponentImag, proshade_double *gammaExponentReal, proshade_double *gammaExponentImag, proshade_double *trigs, proshade_unsign compBand, proshade_double angAlpha, proshade_double angBeta, proshade_double angGamma) |
This function sets all the values repeatedly required for the computation. More... | |
void | computeWignerMatrices (ProSHADE_settings *settings, ProSHADE_internal_data::ProSHADE_data *obj, proshade_double *alphaExponentReal, proshade_double *alphaExponentImag, proshade_double *gammaExponentReal, proshade_double *gammaExponentImag, proshade_double *matIn, proshade_double *matOut, proshade_double *trigs, proshade_double *sqrts, proshade_double *workspace) |
This function does the actual computation of the Wigner D matrices. More... | |
void | computeWignerMatricesForRotation (ProSHADE_settings *settings, ProSHADE_internal_data::ProSHADE_data *obj, proshade_double eulerAlpha, proshade_double eulerBeta, proshade_double eulerGamma) |
This function computes the Wigner D matrices for a particular set of Euler angles. More... | |
This namespace contains all the functionality required to perform object rotation in SO(3) space.
The ProSHADE namespace wraps around all the functions required to compute Wigner d and D matrices for any perticular rotation (as given by the ZXZ Euler angles) and applying these to the SO(3) coefficients of any object.
void ProSHADE_internal_wigner::allocateWignerWorkspace | ( | proshade_double *& | matIn, |
proshade_double *& | matOut, | ||
proshade_double *& | sqrts, | ||
proshade_double *& | workspace, | ||
proshade_double *& | alphaExponentReal, | ||
proshade_double *& | alphaExponentImag, | ||
proshade_double *& | gammaExponentReal, | ||
proshade_double *& | gammaExponentImag, | ||
proshade_double *& | trigs, | ||
proshade_unsign | compBand | ||
) |
This function allocates the memory for the Wigner matrices computation.
This function allocates all the internal computation space, which will be required only for the duration of the computation and not after.
[in] | matIn | A pointer to the array holding the inputs for Wigner d matrix computation by SOFT. |
[in] | matOut | A pointer to the array holding the outputs for Wigner d matrix computation by SOFT. |
[in] | sqrts | Array of square roots of the bands. |
[in] | workspace | Array required by SOFT for internal computation space. |
[in] | alphaExponentReal | An array of exponents of the alpha angle for the real part of the Wigner matrices. |
[in] | alphaExponentImag | An array of exponents of the alpha angle for the imaginary part of the Wigner matrices. |
[in] | gammaExponentReal | An array of exponents of the gamma angle for the real part of the Wigner matrices. |
[in] | gammaExponentImag | An array of exponents of the gamma angle for the imaginary part of the Wigner matrices. |
[in] | trigs | Array of 2 doubles holding the trigonometric results for the beta angle. |
[in] | compBand | The bendwidth of the computation. |
Definition at line 77 of file ProSHADE_wignerMatrices.cpp.
void ProSHADE_internal_wigner::computeWignerMatrices | ( | ProSHADE_settings * | settings, |
ProSHADE_internal_data::ProSHADE_data * | obj, | ||
proshade_double * | alphaExponentReal, | ||
proshade_double * | alphaExponentImag, | ||
proshade_double * | gammaExponentReal, | ||
proshade_double * | gammaExponentImag, | ||
proshade_double * | matIn, | ||
proshade_double * | matOut, | ||
proshade_double * | trigs, | ||
proshade_double * | sqrts, | ||
proshade_double * | workspace | ||
) |
This function does the actual computation of the Wigner D matrices.
This function is the workhorse of the Wigner D matrices computation. It does iterate throught all the appropriate bands and order combinations and it computes the Wigner D matrix (l,m,m') values using the Wigner d matrices (which only take into account the beta Euler ZXZ angle) and the exponents obtained using the Euler ZXZ alpha and gamma angles. It also deals with the signs, but it does not deal with the memory allocation, release and general value set-up.
[in] | settings | A pointer to settings class containing all the information required for the task. |
[in] | obj | A ProSHADE_data class object for which the Wigner matrices should be computed. |
[in] | alphaExponentReal | An array of exponents of the alpha angle for the real part of the Wigner matrices. |
[in] | alphaExponentImag | An array of exponents of the alpha angle for the imaginary part of the Wigner matrices. |
[in] | gammaExponentReal | An array of exponents of the gamma angle for the real part of the Wigner matrices. |
[in] | gammaExponentImag | An array of exponents of the gamma angle for the imaginary part of the Wigner matrices. |
[in] | matIn | A pointer to the array holding the inputs for Wigner d matrix computation by SOFT. |
[in] | matOut | A pointer to the array holding the outputs for Wigner d matrix computation by SOFT. |
[in] | trigs | proshade_complex pointer which holds the beta angle trigonometric function results. |
[in] | sqrts | Array of square roots of the bands. |
[in] | workspace | Array required by SOFT for internal computation space. |
Definition at line 189 of file ProSHADE_wignerMatrices.cpp.
void ProSHADE_internal_wigner::computeWignerMatricesForRotation | ( | ProSHADE_settings * | settings, |
ProSHADE_internal_data::ProSHADE_data * | obj, | ||
proshade_double | eulerAlpha, | ||
proshade_double | eulerBeta, | ||
proshade_double | eulerGamma | ||
) |
This function computes the Wigner D matrices for a particular set of Euler angles.
This function starts by allocating the required memory to store the Wigner D matrices for a particular object and then it proceeds to allocate all the computation memory as well. Subsequently, it prepares all the values needed for the computation and it calls the workhhorse computing function. Once complete, it deletes all the now redundant memory and exits.
[in] | settings | A pointer to settings class containing all the information required for the task. |
[in] | obj | A ProSHADE_data class object for which the Wigner matrices should be computed. |
[in] | eulerAlpha | The Euler ZXZ convention alpha angle value for the rotation in SO(3) space. |
[in] | eulerBeta | The Euler ZXZ convention beta angle value for the rotation in SO(3) space. |
[in] | eulerGamma | The Euler ZXZ convention gamma angle value for the rotation in SO(3) space. |
Definition at line 260 of file ProSHADE_wignerMatrices.cpp.
void ProSHADE_internal_wigner::prepareTrigsSqrtsAndExponents | ( | proshade_double * | sqrts, |
proshade_double * | alphaExponentReal, | ||
proshade_double * | alphaExponentImag, | ||
proshade_double * | gammaExponentReal, | ||
proshade_double * | gammaExponentImag, | ||
proshade_double * | trigs, | ||
proshade_unsign | compBand, | ||
proshade_double | angAlpha, | ||
proshade_double | angBeta, | ||
proshade_double | angGamma | ||
) |
This function sets all the values repeatedly required for the computation.
[in] | sqrts | Array of square roots of the bands. |
[in] | alphaExponentReal | An array of exponents of the alpha angle for the real part of the Wigner matrices. |
[in] | alphaExponentImag | An array of exponents of the alpha angle for the imaginary part of the Wigner matrices. |
[in] | gammaExponentReal | An array of exponents of the gamma angle for the real part of the Wigner matrices. |
[in] | gammaExponentImag | An array of exponents of the gamma angle for the imaginary part of the Wigner matrices. |
[in] | trigs | proshade_complex pointer which will hold the beta angle trigonometric function results. |
[in] | compBand | The bendwidth of the computation. |
[in] | angAlpha | The Euler alpha angle by which to rotate. |
[in] | angBeta | The Euler beta angle by which to rotate. |
[in] | angGamma | The Euler gamma angle by which to rotate. |
Definition at line 149 of file ProSHADE_wignerMatrices.cpp.
void ProSHADE_internal_wigner::releaseWignerWorkspace | ( | proshade_double *& | matIn, |
proshade_double *& | matOut, | ||
proshade_double *& | sqrts, | ||
proshade_double *& | workspace, | ||
proshade_double *& | alphaExponentReal, | ||
proshade_double *& | alphaExponentImag, | ||
proshade_double *& | gammaExponentReal, | ||
proshade_double *& | gammaExponentImag, | ||
proshade_double *& | trigs | ||
) |
This function releases the memory for the Wigner matrices computation.
[in] | matIn | A pointer to the array holding the inputs for Wigner d matrix computation by SOFT. |
[in] | matOut | A pointer to the array holding the outputs for Wigner d matrix computation by SOFT. |
[in] | sqrts | Array of square roots of the bands. |
[in] | workspace | Array required by SOFT for internal computation space. |
[in] | alphaExponentReal | An array of exponents of the alpha angle for the real part of the Wigner matrices. |
[in] | alphaExponentImag | An array of exponents of the alpha angle for the imaginary part of the Wigner matrices. |
[in] | gammaExponentReal | An array of exponents of the gamma angle for the real part of the Wigner matrices. |
[in] | gammaExponentImag | An array of exponents of the gamma angle for the imaginary part of the Wigner matrices. |
Definition at line 118 of file ProSHADE_wignerMatrices.cpp.