1 <H4> Update Time 02/03/13---05:38:45 </H4>
2 <H2> API(Application Interface)</H2>
5 <DD> llDataFileRead( <BR>
8 llDataParaTypeInteger* status<BR>
11 <DD> llDataFileRead( <BR>
13 llData* llDataIn, <BR>
14 llDataParaTypeInteger* status<BR>
19 <A NAME="Information">
20 <H2>Information from source codes</H2>
35 ../src/llDataIntensityInformationGet.c:
51 ../src/lllDataAverage.c:
53 ../src/lllDataAvgTo.c:
55 ../src/lllDataAxisSearch.c:
57 ../src/lllDataAxisSearch2.c:
59 ../src/lllDataAxisSearchAndAverage.c:
61 ../src/lllDataCTFCompensate.c:
63 ../src/lllDataCTFObservation.c:
65 ../src/lllDataCompare.c:
67 ../src/lllDataContributionCalcDifferentN.c:
69 ../src/lllDataDifferenceCalc.c:
71 ../src/lllDataEquatorAdd.c:
73 ../src/lllDataExtract.c:
79 ../src/lllDataFitAndAverage.c:
81 ../src/lllDataFitMergedLL.c:
83 ../src/lllDataFitOut.c:
85 ../src/lllDataFitParamInverse.c:
87 ../src/lllDataFitUtil.c:
89 ../src/lllDataFitUtilPVM.c:
91 ../src/lllDataInterpolate.c:
93 ../src/lllDataLowPassFiltering.c:
95 ../src/lllDataMergeDifferentN.c:
97 ../src/lllDataMultiCTFCompensation.c:
99 ../src/lllDataPhaseShift.c:
101 ../src/lllDataPrint.c:
103 ../src/lllDataRescaling.c:
105 ../src/lllDataSingleCTFCompensation.c:
107 ../src/lllDataWeightSet.c:
109 ../src/lllDatarMaxLimit.c:
118 # The latest update : %G% at %U%
120 #%Z% llData.h ver %I%
123 #%Z% Usage : llData.h
126 * Edited by tacyas@tkyemg
138 typedef unsigned int llDataStatusType;
140 #define llDataStatusOK ((llDataStatusType)0x00000000)
143 #define llDataCanNotReadFile ((llDataStatusType)0x00010000);
144 #define llDataCanNotWriteFile ((llDataStatusType)0x00010001);
147 #ifdef __LLDATAINIT__
148 char* llDataErrorMsgReferFile[] = {
153 char* llDataReferenceData[] = {
154 "Amos,L.A. & Klug,A. J.Mol.Biol(1975),99,51-73",
155 " Three-dimensional Image Reconstructions of the Contractile Tail of T4 Bacteriophage",
156 " Appendix: Combination of Data from Helical Particles : Correlation and Selection",
158 " delta(theta)= -n*delta(phi) + 2*PI*Z*delta(z)",
159 " Klug,A. Crick,A., F.H.C. & Wyckoff,H.W. Acta Crystallogr.sect.(1958),11,199-213",
164 extern char* llDataErrorMsgReferFile[];
165 extern char* llDataReferenceData[];
168 #define DefaultStringLength (256)
171 #define AverageSide (2)
172 #define SidePosition (14)
173 #define CommentLength (80)
174 #define WeightPosition (SidePosition+4+CommentLength)
175 #define NNPosition (WeightPosition+12)
176 #define NLPosition (NNPosition+5)
177 #define LLDataFormat "%12.5e%12.5e%12.5e\n"
178 #define LLDataFormat0 "%12.5e%12.5e%12.5e"
179 #define LLDataFormat1 "%12.5e %12.5e %12.5e"
180 #define RRPosition (0)
181 #define FPosition (RRPosition+12)
182 #define PHIPosition (FPosition +12)
185 #define PVALUE_MODE (0x01)
186 #define QVALUE_MODE (0x02)
187 #define RVALUE_MODE (0x04)
188 #define Q2VALUE_MODE (0x08)
190 typedef int llDataParaTypeInteger;
191 typedef float llDataParaTypeReal;
192 typedef enum llDataPole {
193 llDataPoleNormal = 0,
197 typedef enum llDataMode {
198 llDataModeMemoryNotAllocate = 0,
199 llDataModeMemoryAllocate = 1
205 typedef struct llComplex {
206 llDataParaTypeReal R; /* Spherical R */
207 llDataParaTypeReal RR; /* Radial R */
208 llDataParaTypeReal F; /* F*exp(PHI) */
209 llDataParaTypeReal PHI;
210 llDataParaTypeReal Re; /* Re + i * Im */
211 llDataParaTypeReal Im;
214 typedef struct oneLLData {
215 char Head[DefaultStringLength]; /* Comment */
216 llDataParaTypeReal Weight; /* Weight of This Layer Line */
217 llDataParaTypeInteger nn; /* The [n] dim. Bessel function */
218 llDataParaTypeInteger nl; /* The [l]th layer line */
219 llDataParaTypeInteger nm; /* [l] = t*[n]+s*[m] */
220 llComplex* data; /* Layer line data */
221 llDataParaTypeInteger Side; /* Near/Far Side/Average */
222 llDataParaTypeInteger nR; /* Number of layer line data */
224 llDataParaTypeReal Z;
225 llDataParaTypeInteger iZ;
226 llDataParaTypeReal RMin; /* Radial R Info */
227 llDataParaTypeInteger iRMin;
228 llDataParaTypeReal RMax;
229 llDataParaTypeInteger iRMax;
230 llDataParaTypeReal delBR;
231 llDataParaTypeReal Fmax; /* Fmax */
235 typedef struct llData {
237 llDataParaTypeInteger llMax;
238 llDataParaTypeInteger nRMax;
239 llDataParaTypeReal truePitch;
240 llDataParaTypeReal Weight;
241 llDataParaTypeReal rScale;
243 llDataParaTypeReal Side;
244 llDataParaTypeInteger RRInfoSet;
245 llDataParaTypeInteger FmaxSet;
246 llDataParaTypeInteger RValueSet;
247 llDataParaTypeInteger ZValueSet;
251 typedef struct llDataBoth {
256 typedef struct llDataAttributes {
258 llDataParaTypeInteger llMax;
259 llDataParaTypeInteger nRMax;
260 llDataParaTypeReal truePitch;
261 llDataParaTypeReal Weight;
262 llDataParaTypeReal rScale;
264 llDataParaTypeReal Side;
268 /* in llDataIntensityInformationGet.c */
269 typedef struct onelllDataIntensityInformation {
277 } onelllDataIntensityInformation;
279 typedef struct lllDataIntensityInformation {
280 onelllDataIntensityInformation* onedata;
281 llDataParaTypeInteger llMax;
282 } lllDataIntensityInformation;
287 /* prototype begin */
292 /* in llDataRead.c */
293 extern void llDataFileRead(FILE* fpt, llData* ll, llDataParaTypeInteger* status);
294 extern void llDataFileReadFollowingllData(FILE* fpt, llData* ll, llData* Ref, llDataParaTypeInteger* status);
295 extern void llDataFileReadFollowingAttributes(FILE* fpt, llData* ll, llDataAttributes* attr, llDataParaTypeInteger* status);
297 /* in llDataWrite.c */
298 extern void llDataFileWrite(FILE* fpt, llData* ll, llDataParaTypeInteger* status);
300 /* in llDataInit.c */
301 extern void llDataInit(llData* ll);
302 extern void llDataInitWithReference(llData* ll, llData* ref);
303 extern void llDataInitWithReference2(llData* ll, llData* ref, int side);
304 extern void llDataHeaderInit(llData* ll);
305 extern void llDataDataInit(llData* ll);
306 extern void llDataFree(llData* ll);
307 extern void llDataHeaderFree(llData* ll);
308 extern void llDataDataFree(llData* ll);
310 /* in llDataInfo.c */
311 extern void llDataInfoPrint(FILE* fpt, llData* ll, long WhichLayer, long WhatInfo);
312 extern void llDataInfoPrintUsage(FILE* fpt);
314 /* in llDataUtil.c */
315 extern void llDataRValueSet(llData* dst, int mode);
316 extern void llDataFmaxSet(llData* dst, int mode);
317 extern void llDataZValueSet(llData* dst, int mode);
319 extern llDataParaTypeInteger* llDataTableBetweenTwollDataCreate(llData* ll1, llData* ll2, int mode);
321 extern inline llDataParaTypeReal nearSidePhaseGet(llDataParaTypeReal phase,
322 llDataParaTypeInteger nn,
323 llDataParaTypeInteger side,
324 llDataParaTypeInteger pole);
325 extern inline llDataParaTypeReal farSidePhaseGet(llDataParaTypeReal phase,
326 llDataParaTypeInteger nn,
327 llDataParaTypeInteger side,
328 llDataParaTypeInteger pole);
329 extern void lllDataAttributeCopy(llData* ll1, llData* ll2);
330 extern void lllDataHeaderCopy(llData* ll1, llData* ll2);
331 extern void lllDataCopy(llData* ll1, llData* ll2);
332 extern void lllDataClear(llData* ll1);
333 extern void lllDataMul(llData* ll1, llData* ll2);
334 extern void lllDataPoleSet(llData* ll1, llDataPole pole);
335 extern void lllDataSideSet(llData* ll1, llDataParaTypeInteger Side);
336 extern void lllDataMultiplyReal(llData* ll1, llDataParaTypeReal f);
337 extern void lllDataDevidedByReal(llData* ll1, llDataParaTypeReal f);
339 /* in lllDataAdd.c */
340 extern void lllDataAdd(llData* ll1, llData* ll2);
341 extern void lllDataAdd2(llData* ll, llData* ll1, llData* ll2);
343 /* in lllDataAvgTo */
344 extern void lllDataAvgTo(llData* dst, llData* src, llDataParaTypeInteger Side);
345 extern void lllDataAvgToNea(llData* nea, llData* avg);
346 extern void lllDataAvgToFar(llData* far, llData* avg);
348 /* lllDataWeightSet.c */
349 extern void lllDataWeightSet(FILE* fpt, llData* ll, llDataParaTypeReal w, long mode);
353 Mode 0: llData.LL[].Weight = 0 without Definition
357 extern inline long llDataValueGet(llData* ll, long l, double R, double* re, double *im);
358 extern inline long llDataValueGet2(llData* ll, long nn, long nl, double R, double* re, double *im);
359 extern long llDataLayerNumberGet(llData* ll, long n, long l);
360 extern long llDataNLNumberGet(llData* ll);
363 extern void llDataFandPHISet(llData* ll);
364 extern void llDataReAndImSet(llData* ll);
365 extern void llDataRRSet(llData* ll);
366 extern void llDataRRInfoSet(llData* ll);
367 extern void llDataAttributesSet2(llData* dst, llData* src);
370 extern long llDataSizeCheck(llData* ll1, llData* ll2, char* message);
372 /* in llDataIntensityInformationGet.c */
373 extern void lllDataIntensityInformationGet(llData* in, lllDataIntensityInformation* data, int mode);
375 /* in llDataError.h */
376 extern void llDataError(char* s);
377 extern void llDataErrorMessage(void);
385 #endif /* LL_DATA_H */