OSDN Git Service

Merge branch 'master' of git.sourceforge.jp:/gitroot/eos/base
[eos/hostdependX86LINUX64.git] / 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 } lmrc2Dto3DMode;
35
36 typedef struct lmrc2Dto3DInfo {
37         long flagDouble;
38         long singleTiltMode;
39         long mode;
40         int  InterpolationMode;
41         long flagPlusXrot;
42         mrcImage* CounterForWeight;
43         lmrcImageRhoFilteringInfo rhoInfo;
44
45         // Size
46         int flagOutputSize;
47         int Nx;
48         int Ny;
49         int Nz;
50 } lmrc2Dto3DInfo;
51
52
53 typedef struct lmrc2Dto3DSIRTInfo {
54         lmrc3Dto2DInfo l3Dto2DInfo;
55
56         ctfInfo ctfInfo;
57         int maxIter;
58         double rms;
59         double lambda;
60 } lmrc2Dto3DSIRTInfo;
61
62 extern void lmrc2Dto3D(mrcImage* Out, mrcImage* in, lmrc2Dto3DInfo* linfo, long mode);
63 extern void lmrc2Dto3DSimpleBackProjectionForEach(mrcImage* Out, mrcImage* prj, lmrc2Dto3DInfo* linfo, Matrix3D Matrix, long mode);
64 extern void lmrc2Dto3DFilteredBackProjectionForEach(mrcImage* Out, mrcImage* prj, lmrc2Dto3DInfo* linfo, Matrix3D Matrix, long mode);
65 extern void lmrc2Dto3DSIRT(mrcImage* Out, mrcImage* in, lmrc2Dto3DInfo* linfo, lmrc2Dto3DSIRTInfo* llinfo, long mode);
66 #endif /* LMRC2DTO3D_H */