OSDN Git Service

rebuild: for X86LINUX64/X86LINUX64ICC
[eos/base.git] / hostdepend / X86LINUX64ICC / include / lmrc2Dto3D.h
1 #ifndef LMRC2DTO3D_H
2 #define LMRC2DTO3D_H
3 /*
4 # %M% %Y% %I%
5 # The latest update : %G% at %U%
6 #
7 #%Z% lmrc2Dto3D.h ver %I%
8 #%Z% Created by tacyas 
9 #%Z%
10 #%Z% Usage : mrc2Dto3D
11 #%Z% Attention
12 #%Z%
13 */
14 #include <stdio.h>
15 #include <stdlib.h>
16 #include <string.h>
17 #include <math.h>                  
18
19 #undef DEBUG
20 #include "genUtil.h"
21 #include "Memory.h"
22 #include "String.h"
23 #include "mrcImage.h"
24 #include "Matrix3D.h"
25 #include "lmrcImageRhoFiltering.h"
26 #include "lmrcImageMultiplying.h"
27 #include "lmrc3Dto2D.h"
28 #include "ctfInfo.h"
29
30
31 typedef enum lmrc2Dto3DMode {
32         mrc2Dto3DModeSimpleBackProjection = 0,
33         mrc2Dto3DModeFilteredBackProjection = 1,
34         mrc2Dto3DModeWeightedBackProjection = 2
35 } lmrc2Dto3DMode;
36
37 typedef struct lmrc2Dto3DInfo {
38         // for Many Files 
39         int    inFileNum; 
40         char** inFileList;
41         mrcImageTailer* Tailer;
42
43         // For Control  
44         long flagDouble;
45         long singleTiltMode;
46         lmrcImageRhoFiltering1Mode singleFilterMode;
47         long mode;
48         int  InterpolationMode;
49         long flagPlusXrot;
50         double Rmax;
51         mrcImage* CounterForWeight;
52         lmrcImageRhoFilteringInfo rhoInfo;
53         lmrcImageRhoFiltering1Info rhoInfo1;
54
55         // Size
56         int flagOutputSize;
57         int Nx;
58         int Ny;
59         int Nz;
60 } lmrc2Dto3DInfo;
61
62
63 typedef struct lmrc2Dto3DSIRTInfo {
64         lmrc3Dto2DInfo l3Dto2DInfo;
65
66         ctfInfo ctfInfo;
67         int maxIter;
68         double rms;
69         double lambda;
70 } lmrc2Dto3DSIRTInfo;
71
72 extern void lmrc2Dto3D(mrcImage* Out, mrcImage* in, lmrc2Dto3DInfo* linfo, long mode);
73 extern void lmrc2Dto3DSimpleBackProjectionForEach(mrcImage* Out, mrcImage* prj, lmrc2Dto3DInfo* linfo, Matrix3D Matrix, long mode);
74 extern void lmrc2Dto3DFilteredBackProjectionForEach(mrcImage* Out, mrcImage* prj, lmrc2Dto3DInfo* linfo, Matrix3D Matrix, long mode);
75 extern void lmrc2Dto3DSIRT(mrcImage* Out, mrcImage* in, lmrc2Dto3DInfo* linfo, lmrc2Dto3DSIRTInfo* llinfo, long mode);
76 #endif /* LMRC2DTO3D_H */