27 #ifndef _PROG_PARALLEL_FORWARD_ART_ZERNIKE3D 28 #define _PROG_PARALLEL_FORWARD_ART_ZERNIKE3D 94 std::vector<Image<double>>
P;
96 std::vector<Image<double>>
W;
98 std::vector<std::unique_ptr<std::atomic<double*>>>
p_busy_elem;
99 std::vector<std::unique_ptr<std::atomic<double*>>>
w_busy_elem;
184 double rot,
double tilt,
double psi);
190 enum class Direction { Forward, Backward };
193 template <Direction DIRECTION>
197 template<
bool USESZERNIKE, Direction DIRECTION>
201 void splattingAtPos(std::array<double, 2> r,
double weight,
208 void sortOrthogonal();
210 void forwardModel(
int k,
bool usesZernike);
211 void backwardModel(
int k,
bool usesZernike);
std::vector< std::unique_ptr< std::atomic< double * > > > w_busy_elem
void deformVol(MultidimArray< double > &mP, MultidimArray< double > &mW, const MultidimArray< double > &mV, double rot, double tilt, double psi)
Deform a volumen using Zernike-Spherical harmonic basis.
MultidimArray< int > VRecMaskF
virtual void finishProcessing()
void fillVectorTerms(int l1, int l2, Matrix1D< int > &vL1, Matrix1D< int > &vN, Matrix1D< int > &vL2, Matrix1D< int > &vM)
Zernike and SPH coefficients allocation.
void numCoefficients(int l1, int l2, int &vecSize)
Length of coefficients vector.
ql0001_ & k(htemp+1),(cvec+1),(atemp+1),(bj+1),(bl+1),(bu+1),(x+1),(clamda+1), &iout, infoqp, &zero,(w+1), &lenw,(iw+1), &leniw, &glob_grd.epsmac
MultidimArray< size_t > ordered_list
std::vector< Image< double > > W
std::vector< Image< double > > P
ProgParallelForwardArtZernike3D()
Empty constructor.
~ProgParallelForwardArtZernike3D()
Destructor.
ctpl::thread_pool m_threadPool
Image< double > Ifilteredp
void defineParams()
Define parameters.
MultidimArray< int > VRecMaskB
std::vector< std::unique_ptr< std::atomic< double * > > > p_busy_elem
std::vector< double > clnm
MultidimArray< int > mask2D
void processImage(const FileName &fnImg, const FileName &fnImgOut, const MDRow &rowIn, MDRow &rowOut)
FileName fnOutDir
Output directory.
std::vector< double > sigma
void readParams()
Read argument from command line.