OSDN Git Service

Modified: doc
[eos/optional.git] / doc / Objects / llData.html
1 <H2> API(Application Interface)</H2>
2 <UL>
3         <LI> llDataFileRead
4                 <DD> llDataFileRead( <BR>
5                 FILE* fptIn, <BR>
6                 llData* llDataIn, <BR>
7                 llDataParaTypeInteger* status<BR>
8                 )
9         <LI> llDataFileWrite
10                 <DD> llDataFileRead( <BR>
11                 FILE* fptIn, <BR>
12                 llData* llDataIn, <BR>
13                 llDataParaTypeInteger* status<BR>
14                 )
15                             
16 </UL>
17 <HR>
18 <A NAME="Information">
19 <H2>Information from source codes</H2>
20 </A>
21 <PRE>
22 </PRE>
23 <HR>
24 <A NAME="include">
25 <H2>llData.h</H2>
26 </A>
27 <PRE>
28 /*
29 # %M% %Y% %I%
30 # The latest update : %G% at %U%
31 #
32 #%Z% llData.h ver %I%
33 #%Z% Created by 
34 #%Z%
35 #%Z% Usage : llData.h 
36 #%Z% Attention
37 #%Z%
38 *       Edited by tacyas@tkyemg
39 *       1992.10.24-
40 */    
41
42 #ifndef LL_DATA_H
43 #define LL_DATA_H
44
45 #include <stdio.h>
46 #include <math.h>
47 #include "ctfInfo.h"
48
49 /* constant begin */
50 typedef unsigned int llDataStatusType;
51
52 #define llDataStatusOK          ((llDataStatusType)0x00000000)
53
54 /* ReferFile */
55 #define llDataCanNotReadFile    ((llDataStatusType)0x00010000);
56 #define llDataCanNotWriteFile   ((llDataStatusType)0x00010001);
57
58
59 #ifdef __LLDATAINIT__ 
60 char* llDataErrorMsgReferFile[] = {
61     "File Pointer ",
62     ""
63 };
64
65 char* llDataReferenceData[] = {
66 "Amos,L.A. & Klug,A. J.Mol.Biol(1975),99,51-73",
67 "  Three-dimensional Image Reconstructions of the Contractile Tail of T4 Bacteriophage",
68 "  Appendix: Combination of Data from Helical Particles : Correlation and Selection",
69 "              Amos,L.A",
70 "              delta(theta)= -n*delta(phi) + 2*PI*Z*delta(z)",
71 "                Klug,A. Crick,A., F.H.C. & Wyckoff,H.W. Acta Crystallogr.sect.(1958),11,199-213",
72 NULL
73 }; 
74
75 #else
76 extern char* llDataErrorMsgReferFile[];
77 extern char* llDataReferenceData[]; 
78 #endif
79
80 #define DefaultStringLength (256)
81 #define NearSide    (0)
82 #define FarSide     (1)
83 #define AverageSide (2)
84 #define SidePosition (14)
85 #define CommentLength  (80)
86 #define WeightPosition (SidePosition+4+CommentLength)
87 #define NNPosition     (WeightPosition+12)
88 #define NLPosition     (NNPosition+5)
89 #define LLDataFormat  "%12.5e%12.5e%12.5e\n"
90 #define LLDataFormat0 "%12.5e%12.5e%12.5e"
91 #define LLDataFormat1 "%12.5e %12.5e %12.5e"
92 #define RRPosition     (0)
93 #define FPosition      (RRPosition+12)
94 #define PHIPosition    (FPosition +12)
95
96
97 #define PVALUE_MODE  (0x01)
98 #define QVALUE_MODE  (0x02)
99 #define RVALUE_MODE  (0x04)
100 #define Q2VALUE_MODE (0x08)
101
102 typedef int   llDataParaTypeInteger;
103 typedef float llDataParaTypeReal;
104 typedef enum llDataPole {
105         llDataPoleNormal = 0,
106         llDataPoleAnti   = 1
107 } llDataPole;
108
109 typedef enum llDataMode {
110     llDataModeMemoryNotAllocate = 0, 
111     llDataModeMemoryAllocate = 1
112 } llDataMode;
113 /* contant end */
114
115 /* struct begin */
116
117 typedef struct llComplex {
118     llDataParaTypeReal      R;  /* Spherical R */ 
119     llDataParaTypeReal      RR; /* Radial R    */ 
120     llDataParaTypeReal      F;  /* F*exp(PHI)  */
121     llDataParaTypeReal      PHI;
122     llDataParaTypeReal      Re; /* Re + i * Im */
123     llDataParaTypeReal      Im;
124 } llComplex;
125
126 typedef struct oneLLData {
127     char                                        Head[DefaultStringLength]; /* Comment */
128         llDataParaTypeReal      Weight;  /* Weight of This Layer Line */
129     llDataParaTypeInteger   nn;      /* The [n] dim. Bessel function */
130     llDataParaTypeInteger   nl;      /* The [l]th layer line  */
131     llDataParaTypeInteger   nm;      /* [l] = t*[n]+s*[m] */
132     llComplex*              data;    /* Layer line data */
133         llDataParaTypeInteger   Side;    /* Near/Far Side/Average */
134     llDataParaTypeInteger   nR;      /* Number of layer line data */
135
136         llDataParaTypeReal     Z;   
137         llDataParaTypeInteger iZ;
138         llDataParaTypeReal     RMin; /* Radial R Info */
139         llDataParaTypeInteger iRMin;
140         llDataParaTypeReal     RMax;
141         llDataParaTypeInteger iRMax;
142         llDataParaTypeReal    delBR;
143         llDataParaTypeReal    Fmax;  /* Fmax */
144     long dummy;
145 } oneLLData;
146
147 typedef struct llData {
148     llDataMode            mode;
149     llDataParaTypeInteger llMax;
150     llDataParaTypeInteger nRMax;
151     llDataParaTypeReal    truePitch;
152     llDataParaTypeReal    Weight;
153     llDataParaTypeReal    rScale;
154         llDataPole            Pole;
155         llDataParaTypeReal    Side;
156         llDataParaTypeInteger RRInfoSet;
157         llDataParaTypeInteger FmaxSet;
158         llDataParaTypeInteger RValueSet;
159         llDataParaTypeInteger ZValueSet;
160     oneLLData* LL;
161 } llData;
162
163 typedef struct llDataBoth {
164         llData Nea;
165         llData Far;
166 } llDataBoth;
167
168 typedef struct llDataAttributes {
169     llDataMode            mode;
170     llDataParaTypeInteger llMax;
171     llDataParaTypeInteger nRMax;
172     llDataParaTypeReal    truePitch;
173     llDataParaTypeReal    Weight;
174     llDataParaTypeReal    rScale;
175         llDataPole            Pole;
176         llDataParaTypeReal    Side;
177     oneLLData* LL;
178 } llDataAttributes;
179
180 /* in llDataIntensityInformationGet.c */
181 typedef struct onelllDataIntensityInformation {
182         int LL;
183         int n;
184         int l;
185         int flagI;
186         double I;
187         int flagPeak;
188         double Peak;
189 } onelllDataIntensityInformation;
190
191 typedef struct lllDataIntensityInformation {
192         onelllDataIntensityInformation* onedata;
193     llDataParaTypeInteger llMax;
194 } lllDataIntensityInformation;
195
196 /* struct end */
197
198
199 /* prototype begin */
200 #ifdef __cplusplus
201 extern "C" {
202 #endif
203
204 /* in llDataRead.c */
205 extern void llDataFileRead(FILE* fpt, llData* ll, llDataParaTypeInteger* status);
206 extern void llDataFileReadFollowingllData(FILE* fpt, llData* ll, llData* Ref, llDataParaTypeInteger* status);
207 extern void llDataFileReadFollowingAttributes(FILE* fpt, llData* ll, llDataAttributes* attr, llDataParaTypeInteger* status);
208
209 /* in llDataWrite.c */
210 extern void llDataFileWrite(FILE* fpt, llData* ll, llDataParaTypeInteger* status);
211
212 /* in llDataInit.c */
213 extern void llDataInit(llData* ll);
214 extern void llDataInitWithReference(llData* ll, llData* ref);
215 extern void llDataInitWithReference2(llData* ll, llData* ref, int side);
216 extern void llDataHeaderInit(llData* ll);
217 extern void llDataDataInit(llData* ll);
218 extern void llDataFree(llData* ll);
219 extern void llDataHeaderFree(llData* ll);
220 extern void llDataDataFree(llData* ll);
221
222 /* in llDataInfo.c */
223 extern void llDataInfoPrint(FILE* fpt, llData* ll, long WhichLayer, long WhatInfo);
224 extern void llDataInfoPrintUsage(FILE* fpt);
225
226 /* in llDataUtil.c */
227 extern void llDataRValueSet(llData* dst, int mode);
228 extern void llDataFmaxSet(llData* dst, int mode);
229 extern void llDataZValueSet(llData* dst, int mode);
230
231 extern llDataParaTypeInteger* llDataTableBetweenTwollDataCreate(llData* ll1, llData* ll2, int mode);
232
233 extern inline llDataParaTypeReal nearSidePhaseGet(llDataParaTypeReal phase, 
234     llDataParaTypeInteger nn, 
235     llDataParaTypeInteger side, 
236     llDataParaTypeInteger pole);
237 extern inline llDataParaTypeReal farSidePhaseGet(llDataParaTypeReal phase, 
238     llDataParaTypeInteger nn, 
239     llDataParaTypeInteger side, 
240     llDataParaTypeInteger pole);
241 extern void lllDataAttributeCopy(llData* ll1, llData* ll2);
242 extern void lllDataHeaderCopy(llData* ll1, llData* ll2);
243 extern void lllDataCopy(llData* ll1, llData* ll2);
244 extern void lllDataClear(llData* ll1);
245 extern void lllDataMul(llData* ll1, llData* ll2);
246 extern void lllDataPoleSet(llData* ll1, llDataPole pole);
247 extern void lllDataSideSet(llData* ll1, llDataParaTypeInteger Side);
248 extern void lllDataMultiplyReal(llData* ll1, llDataParaTypeReal f);
249 extern void lllDataDevidedByReal(llData* ll1, llDataParaTypeReal f);
250
251 /* in lllDataAdd.c */
252 extern void lllDataAdd(llData* ll1, llData* ll2);
253 extern void lllDataAdd2(llData* ll, llData* ll1, llData* ll2);
254
255 /* in lllDataAvgTo */
256 extern void lllDataAvgTo(llData* dst, llData* src, llDataParaTypeInteger Side);
257 extern void lllDataAvgToNea(llData* nea, llData* avg);
258 extern void lllDataAvgToFar(llData* far, llData* avg);
259
260 /* lllDataWeightSet.c */
261 extern void lllDataWeightSet(FILE* fpt, llData* ll, llDataParaTypeReal w, long mode); 
262                                         /* FILE FORMAT 
263                                            nn nl weight
264                                            ............
265                                            Mode 0: llData.LL[].Weight = 0 without Definition 
266                                         */
267
268 /* llDataGet.c */
269 extern inline long llDataValueGet(llData* ll, long l, double R, double* re, double *im);
270 extern inline long llDataValueGet2(llData* ll, long nn, long nl, double R, double* re, double *im);
271 extern long llDataLayerNumberGet(llData* ll, long n, long l);
272 extern long llDataNLNumberGet(llData* ll);
273
274 /* llDataSet.c */
275 extern void llDataFandPHISet(llData* ll);
276 extern void llDataReAndImSet(llData* ll);
277 extern void llDataRRSet(llData* ll);
278 extern void llDataRRInfoSet(llData* ll);
279 extern void llDataAttributesSet2(llData* dst, llData* src);
280
281 /* llDataCheck.c */
282 extern long llDataSizeCheck(llData* ll1, llData* ll2, char* message);
283
284 /* in llDataIntensityInformationGet.c */
285 extern void lllDataIntensityInformationGet(llData* in, lllDataIntensityInformation* data, int mode);
286
287 /* in llDataError.h */
288 extern void llDataError(char* s);
289 extern void llDataErrorMessage(void);
290
291 #ifdef __cplusplus
292 };
293 #endif
294
295 /* prototype end */
296
297 #endif /* LL_DATA_H */ 
298
299 </PRE>