OSDN Git Service

modified ctfDeterminationByBayes
[eos/base.git] / src / Objects / DataManip / ctfInfo / src / ctffuncforbayes.h
1 /*
2 # ctffuncforbayes.h : $Revision$  
3 # $Date$ 
4 # Created by $Author$
5 # Usage : ctffuncforbayes.h 
6 # Attention
7 #   $Loccker$
8 #       $State$ 
9 #
10 */
11 /* $Log$ */
12
13 #ifndef CTFFUNCFORBAYES_H 
14 #define CTFFUNCFORBAYES_H
15
16
17 /* constant begin */
18
19
20 /* constant end */
21
22 /* struct begin */
23
24 typedef struct ctfforbayes{
25   int n;
26   float* R;
27   float rmax;
28   float rmin;
29   float* I;
30   float* Ii;
31 } ctfforbayes;
32
33 typedef enum intensityforbayesMode{
34   normal = 0,
35   logarithm  = 1,
36 } intensityforbayesMode;
37
38
39 typedef struct intensityforbayes{
40   float* normI;
41   float* logI;
42   float* normII;
43   float* logII;
44
45   int MTFmode;
46   int Ainmode;
47   
48   intensityforbayesMode mode;
49
50 } intensityforbayes;
51
52
53 typedef enum xoflikelihoodforbayesMode{
54   difference = 0,
55   correlation = 1
56 } xoflikelihoodforbayesMode;
57
58 typedef enum widthoflikelihoodforbayesMode{
59   mean = 0,
60   median = 1
61 } widthoflikelihoodforbayesMode;
62
63 typedef enum defocuslikelihoodMode{
64   lorentz = 0
65 } defocuslikelihoodMode;
66
67
68 typedef struct defocuslikelihoodforbayes{
69   float** x;
70   double* width;
71
72   xoflikelihoodforbayesMode mode0;
73   widthoflikelihoodforbayesMode mode1;
74   defocuslikelihoodMode mode2;
75
76 } defocuslikelihoodforbayes;
77
78 /* struct end */
79
80 #ifdef __cplusplus
81 extern "C" {
82 #endif
83
84 /* prototype begin */
85
86
87 /* prototype end */
88
89 /* prototype begin */
90 /*ctfforbayes.c*/
91 extern void ctfforbayesInit(FILE* fpt, ctfforbayes* ctf, int mode);
92 extern void intensityforbayesInit(intensityforbayes* intensity,int Inum, int MTFmode, int Ainmode, int mode);
93 extern void intensitySet(ctfforbayes* ctf, intensityforbayes* intensity, int mode);
94 extern void spatialfrequencyRead(FILE* fpt, ctfforbayes* ctf, float rmax, float rmin, int mode);
95 extern void intensityRead(char* filename, intensityforbayes* intensity, int count, int mode);
96
97 extern void ctfFunctionforbayes(ctfforbayes* ctf, intensityforbayes* intensity, eosBayes* d, ctfInfo* info, defocuslikelihoodforbayes* l, int count, int mode);
98 extern float ctfforbayesIntensityCalculation(float* parameter, float R, ctfInfo* info, int MTFmode, int Ainmode,  int mode);
99 extern void ctfforbayesFree(ctfforbayes* ctf, intensityforbayes* intensity, defocuslikelihoodforbayes* likedihood, int numLikelihood);
100
101
102   /*defocuslikelihood.c*/
103 extern void defocusLikelihoodInit(defocuslikelihoodforbayes* l, eosBayes* d, int mode);
104 extern void ctfforbayesXofLikelihoodCalculation(defocuslikelihoodforbayes* l, ctfforbayes* ctf, eosBayes* d, int* L, int count, int mode);
105 extern void defocusLikelihood(defocuslikelihoodforbayes* l, ctfforbayes* ctf, eosBayes* d, int count, int mode);
106 extern void ctfforBayesDifferenceCalculation(defocuslikelihoodforbayes* l, ctfforbayes* ctf, eosBayesDistribution* d, int numLikelihood, int* L, int count, int mode);
107 extern void ctfforBayesMeanCalculation(defocuslikelihoodforbayes* l, eosBayesDistribution* d, int numLikelihood, int count, int mode);
108 extern void defocusLikelihoodCalculationLorentz(defocuslikelihoodforbayes* l, eosBayesDistribution* d, int numLikelihood, int count, int mode);
109
110 /*ctfforbayescheck.c*/
111 extern void ctfforbayescheckRvsValue(char* filename, float R,float value, int count);
112 extern void ctfforbayescheckdifference(char* filename, defocuslikelihoodforbayes* l, eosBayesDistribution* d, int numLikelihood, int count, int mode);
113 extern void ctfforbayescheckintensity(ctfforbayes ctf, eosBayesDistribution* d, int numLikelihood, int count, int mode);
114 extern void ctfforbayescheckIntensityOfMaxPosterior(ctfforbayes ctf, eosBayesDistribution* d, int numDistribution, ctfInfo* info, int MTFmode, int Ainmode, int Intensitymode, int mode);
115
116 /* prototype end */
117
118 #ifdef __cplusplus
119 };
120 #endif
121
122 #endif  /* CTFFUNCFORBAYES_H */