OSDN Git Service

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