33 #define FOR_ALL_THREAD_REFNO() \ 35 while ((load = getThreadRefnoJob(refno)) > 0) \ 36 for (int i = 0; i < load; i++, refno = (refno + 1) % model.n_ref) 37 #define FOR_ALL_THREAD_REFNO_NODECL() \ 39 while ((load = getThreadRefnoJob(refno)) > 0) \ 40 for (int i = 0; i < load; i++, refno = (refno + 1) % model.n_ref) 51 #define SPECIAL_ITER 0 81 std::vector<MultidimArray<double> >
mref;
82 std::vector<MultidimArray<std::complex<double> > >
fref;
83 std::vector<MultidimArray<std::complex<double > > >
wsumimgs;
105 std::vector<double>
A2;
int getThreadRefnoJob(int &refno)
Assign refno jobs to threads.
virtual void printModel(const String &msg, const ModelML2D &model)
void preselectLimitedDirections(double &phi, double &theta)
virtual void addPartialDocfileData(const MultidimArray< double > &data, size_t first, size_t last)
Add docfiledata to docfile.
MultidimArray< double > Mimg
std::vector< double > sumw_mirror
std::vector< int > iopty_ref
void createThreads()
Create working threads.
std::vector< int > ioptx_ref
void readParams()
Read arguments from command line.
std::vector< MultidimArray< std::complex< double > > > fref
virtual void maximization()
Update all model parameters, adapted for IEM blocks use.
void doThreadExpectationSingleImageRefno()
Thread code to parallelize refno loop in expectationSingleImage.
MultidimArray< int > omask
void destroyThreads()
Exit threads and free memory.
virtual void produceSideInfo2()
Try to merge produceSideInfo1 and 2.
structThreadTasks * threads_d
virtual void readModel(ModelML2D &model, int block)
Read model from file.
std::vector< MultidimArray< std::complex< double > > > Fimg_flip
virtual void expectation()
Integrate over all experimental images.
std::vector< int > ioptflip_ref
std::vector< MultidimArray< std::complex< double > > > wsumimgs
void doThreadRotateReferenceRefno()
Thread code to parallelize refno loop in rotateReference.
std::vector< double > sumw
void doThreadReverseRotateReferenceRefno()
Thread code to parallelize refno loop in reverseRotateReference.
void maximizeModel(ModelML2D &model)
Update all model parameters.
void preselectFastSignificant()
std::vector< double > refw_mirror
void defineParams()
Params definition.
void doThreadPreselectFastSignificantRefno()
Thread code to parallelize refno loop in preselectFastSignificant.
virtual void writeOutputFiles(const ModelML2D &model, OutputType outputType=OUT_FINAL)
Write model parameters.
std::vector< double > pdf_directions
std::vector< double > sumwsc2
MultidimArray< int > mask
std::vector< double > refwsc2
std::vector< MultidimArray< double > > mref
std::vector< double > allref_offsets
std::vector< double > refw2
void calculatePdfInplane()
Calculate probability density distribution for in-plane transformations.
void rotateReference()
Fill vector of matrices with all rotations of reference.
void reverseRotateReference()
Apply reverse rotations to all matrices in vector and fill new matrix with their sum.
void expectationSingleImage(Matrix1D< double > &opt_offsets)
ML-integration over all (or -fast) translations.
std::vector< double > sumwsc
std::vector< MultidimArray< double > > wsum_Mref
void doThreadESIUpdateRefno()
Thread code to parallelize update loop in ESI.
void awakeThreads(ThreadTask task, int start_refno, int load=1)
Awake threads for different tasks.
std::vector< double > refw
std::vector< double > sumw_refpsi
void * doThreadsTasks(void *data)
Function for threads do different tasks.
void correctScaleAverage()
Correct references scale.
FileName getBaseName(String suffix="", int number=-1)
Get base name based on fn_root and some number.
virtual void show()
Show info at starting program.
MultidimArray< double > pfs_weight
virtual void iteration()
Perform an iteration.
std::vector< MultidimArray< std::complex< double > > > mysumimgs
MultidimArray< int > Msignificant
std::vector< double > sumw2
virtual void produceSideInfo()
Try to merge produceSideInfo1 and 2.
MultidimArray< double > pfs_maxweight