1 <H2> API(Application Interface)</H2>
4 <DD> llDataFileRead( <BR>
7 llDataParaTypeInteger* status<BR>
10 <DD> llDataFileRead( <BR>
12 llData* llDataIn, <BR>
13 llDataParaTypeInteger* status<BR>
18 <A NAME="Information">
19 <H2>Information from source codes</H2>
30 # The latest update : %G% at %U%
38 * Edited by tacyas@tkyemg
50 typedef unsigned int llDataStatusType;
52 #define llDataStatusOK ((llDataStatusType)0x00000000)
55 #define llDataCanNotReadFile ((llDataStatusType)0x00010000);
56 #define llDataCanNotWriteFile ((llDataStatusType)0x00010001);
60 char* llDataErrorMsgReferFile[] = {
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",
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",
76 extern char* llDataErrorMsgReferFile[];
77 extern char* llDataReferenceData[];
80 #define DefaultStringLength (256)
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)
97 #define PVALUE_MODE (0x01)
98 #define QVALUE_MODE (0x02)
99 #define RVALUE_MODE (0x04)
100 #define Q2VALUE_MODE (0x08)
102 typedef int llDataParaTypeInteger;
103 typedef float llDataParaTypeReal;
104 typedef enum llDataPole {
105 llDataPoleNormal = 0,
109 typedef enum llDataMode {
110 llDataModeMemoryNotAllocate = 0,
111 llDataModeMemoryAllocate = 1
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;
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 */
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 */
147 typedef struct llData {
149 llDataParaTypeInteger llMax;
150 llDataParaTypeInteger nRMax;
151 llDataParaTypeReal truePitch;
152 llDataParaTypeReal Weight;
153 llDataParaTypeReal rScale;
155 llDataParaTypeReal Side;
156 llDataParaTypeInteger RRInfoSet;
157 llDataParaTypeInteger FmaxSet;
158 llDataParaTypeInteger RValueSet;
159 llDataParaTypeInteger ZValueSet;
163 typedef struct llDataBoth {
168 typedef struct llDataAttributes {
170 llDataParaTypeInteger llMax;
171 llDataParaTypeInteger nRMax;
172 llDataParaTypeReal truePitch;
173 llDataParaTypeReal Weight;
174 llDataParaTypeReal rScale;
176 llDataParaTypeReal Side;
180 /* in llDataIntensityInformationGet.c */
181 typedef struct onelllDataIntensityInformation {
189 } onelllDataIntensityInformation;
191 typedef struct lllDataIntensityInformation {
192 onelllDataIntensityInformation* onedata;
193 llDataParaTypeInteger llMax;
194 } lllDataIntensityInformation;
199 /* prototype begin */
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);
209 /* in llDataWrite.c */
210 extern void llDataFileWrite(FILE* fpt, llData* ll, llDataParaTypeInteger* status);
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);
222 /* in llDataInfo.c */
223 extern void llDataInfoPrint(FILE* fpt, llData* ll, long WhichLayer, long WhatInfo);
224 extern void llDataInfoPrintUsage(FILE* fpt);
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);
231 extern llDataParaTypeInteger* llDataTableBetweenTwollDataCreate(llData* ll1, llData* ll2, int mode);
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);
251 /* in lllDataAdd.c */
252 extern void lllDataAdd(llData* ll1, llData* ll2);
253 extern void lllDataAdd2(llData* ll, llData* ll1, llData* ll2);
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);
260 /* lllDataWeightSet.c */
261 extern void lllDataWeightSet(FILE* fpt, llData* ll, llDataParaTypeReal w, long mode);
265 Mode 0: llData.LL[].Weight = 0 without Definition
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);
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);
282 extern long llDataSizeCheck(llData* ll1, llData* ll2, char* message);
284 /* in llDataIntensityInformationGet.c */
285 extern void lllDataIntensityInformationGet(llData* in, lllDataIntensityInformation* data, int mode);
287 /* in llDataError.h */
288 extern void llDataError(char* s);
289 extern void llDataErrorMessage(void);
297 #endif /* LL_DATA_H */