1 <H4> Update Time 06/15/13---15:00:48 </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>
31 # The latest update : %G% at %U%
39 * Edited by tacyas@tkyemg
51 typedef unsigned int llDataStatusType;
53 #define llDataStatusOK ((llDataStatusType)0x00000000)
56 #define llDataCanNotReadFile ((llDataStatusType)0x00010000);
57 #define llDataCanNotWriteFile ((llDataStatusType)0x00010001);
61 char* llDataErrorMsgReferFile[] = {
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",
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",
77 extern char* llDataErrorMsgReferFile[];
78 extern char* llDataReferenceData[];
81 #define DefaultStringLength (256)
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)
98 #define PVALUE_MODE (0x01)
99 #define QVALUE_MODE (0x02)
100 #define RVALUE_MODE (0x04)
101 #define Q2VALUE_MODE (0x08)
103 typedef int llDataParaTypeInteger;
104 typedef float llDataParaTypeReal;
105 typedef enum llDataPole {
106 llDataPoleNormal = 0,
110 typedef enum llDataMode {
111 llDataModeMemoryNotAllocate = 0,
112 llDataModeMemoryAllocate = 1
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;
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 */
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 */
148 typedef struct llData {
150 llDataParaTypeInteger llMax;
151 llDataParaTypeInteger nRMax;
152 llDataParaTypeReal truePitch;
153 llDataParaTypeReal Weight;
154 llDataParaTypeReal rScale;
156 llDataParaTypeReal Side;
157 llDataParaTypeInteger RRInfoSet;
158 llDataParaTypeInteger FmaxSet;
159 llDataParaTypeInteger RValueSet;
160 llDataParaTypeInteger ZValueSet;
164 typedef struct llDataBoth {
169 typedef struct llDataAttributes {
171 llDataParaTypeInteger llMax;
172 llDataParaTypeInteger nRMax;
173 llDataParaTypeReal truePitch;
174 llDataParaTypeReal Weight;
175 llDataParaTypeReal rScale;
177 llDataParaTypeReal Side;
181 /* in llDataIntensityInformationGet.c */
182 typedef struct onelllDataIntensityInformation {
190 } onelllDataIntensityInformation;
192 typedef struct lllDataIntensityInformation {
193 onelllDataIntensityInformation* onedata;
194 llDataParaTypeInteger llMax;
195 } lllDataIntensityInformation;
200 /* prototype begin */
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);
210 /* in llDataWrite.c */
211 extern void llDataFileWrite(FILE* fpt, llData* ll, llDataParaTypeInteger* status);
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);
223 /* in llDataInfo.c */
224 extern void llDataInfoPrint(FILE* fpt, llData* ll, long WhichLayer, long WhatInfo);
225 extern void llDataInfoPrintUsage(FILE* fpt);
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);
232 extern llDataParaTypeInteger* llDataTableBetweenTwollDataCreate(llData* ll1, llData* ll2, int mode);
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);
252 /* in lllDataAdd.c */
253 extern void lllDataAdd(llData* ll1, llData* ll2);
254 extern void lllDataAdd2(llData* ll, llData* ll1, llData* ll2);
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);
261 /* lllDataWeightSet.c */
262 extern void lllDataWeightSet(FILE* fpt, llData* ll, llDataParaTypeReal w, long mode);
266 Mode 0: llData.LL[].Weight = 0 without Definition
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);
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);
283 extern long llDataSizeCheck(llData* ll1, llData* ll2, char* message);
285 /* in llDataIntensityInformationGet.c */
286 extern void lllDataIntensityInformationGet(llData* in, lllDataIntensityInformation* data, int mode);
288 /* in llDataError.h */
289 extern void llDataError(char* s);
290 extern void llDataErrorMessage(void);
298 #endif /* LL_DATA_H */