48 #define SIGNIFICANT_WEIGHT_LOW 1e-8 49 #define SMALLANGLE 1.75 50 #define DATALINELENGTH 12 53 #define FN_EXTRA(file) formatString("%sextra/%s", fn_root.c_str(), file) 54 #define FN_IMAGES_MD(base) (base) + "images.xmd" 55 #define FN_CLASSES_MD(base) formatString("classes@%sclasses.xmd", (base).c_str()) 56 #define FN_LOGS_MD(base) formatString("info@%sclasses.xmd", (base).c_str()) 57 #define FN_CLASS_IMAGES_MD(base, ref) formatString("class%06d_images@%sclasses.xmd", (ref), (base).c_str()) 58 #define FN_CLASSES_STK(base) (base) + "classes.stk" 61 #define FOR_ALL_GLOBAL_IMAGES() \ 62 for (size_t imgno = 0; imgno < nr_images_global; ++imgno) 64 #define FOR_ALL_LOCAL_IMAGES() \ 65 for (size_t imgno = myFirstImg; imgno <= myLastImg; ++imgno) 67 #define IMG_LOCAL_INDEX (imgno - myFirstImg) 68 #define IMG_REAL_INDEX(imgno) (img_id[(imgno)]) 69 #define IMG_BLOCK(imgno) (imgno) % blocks 72 #define IS_MASTER (rank == 0) 117 void print(
int tabs = 0)
const;
132 FileName fn_img, fn_ref, fn_root, fn_frac,
fn_sig, fn_doc, fn_oext, fn_scratch, fn_control;
174 std::vector<Matrix2D<double> >
F;
176 std::vector < Image<double> >
Iold;
258 void initSamplingStuff();
264 virtual void produceSideInfo() = 0;
266 virtual void produceSideInfo2() = 0;
274 virtual void expectation() = 0;
277 virtual void endIteration();
280 virtual void maximization() = 0;
283 virtual void setNumberOfLocalImages();
286 virtual void randomizeImagesOrder();
302 virtual bool checkConvergence();
313 virtual void defineAdditionalParams(
XmippProgram * prog,
const char * sectionLine);
std::vector< Matrix1D< double > > Vtrans
std::vector< size_t > img_id
n The following was calculated during iteration
virtual void destroyThreads()
Exit threads and free memory.
virtual void createThreads()
Create working threads.
bool do_student_sigma_trick
std::vector< double > mirror_fraction
void substractModel(const ModelML2D &model)
bool do_norm
Re-normalize internally.
void print(int tabs=0) const
Just for debugging now.
void combineModel(const ModelML2D &model, int sign)
MultidimArray< double > spectral_signal
std::vector< double > imgs_oldtheta
std::vector< Matrix2D< double > > F
FileName getIterExtraPath(const FileName &fn_root, int iter, bool makePath=true)
MultidimArray< double > docfiledata
std::vector< std::vector< double > > imgs_offsets
std::vector< double > alpha_k
std::vector< double > sumwsc
std::vector< int > imgs_optrefno
std::vector< Image< double > > Iref
MultidimArray< double > P_phi
std::vector< double > imgs_trymindiff
std::vector< double > sumw_mirror
std::vector< Image< double > > WsumMref
std::vector< Image< double > > Iold
std::vector< double > conv
std::vector< double > scale
void addModel(const ModelML2D &model)