「llData(API)」の版間の差分
提供: Eospedia
(ページの作成:「DataManip/'''llData'''はAPI です。 == 定数 == #define LTLG_TITLE_LENGTH (80) #define LTLG_SIDE_LENGTH ( 4) #define LTLG_FTN_RECORD (64*4) == 構造体 == t...」) |
|||
| 行1: | 行1: | ||
| − | DataManip/'''llData''' | + | DataManip/'''llData'''は[[LL]]データのための[[API]]です。 |
== 定数 == | == 定数 == | ||
| − | #define | + | #define llDataStatusOK ((llDataStatusType)0x00000000) |
| − | #define | + | |
| − | #define | + | === ReferFile === |
| + | #define llDataCanNotReadFile ((llDataStatusType)0x00010000); | ||
| + | #define llDataCanNotWriteFile ((llDataStatusType)0x00010001); | ||
| + | |||
| + | char* llDataReferenceData[] = { | ||
| + | "Amos,L.A. & Klug,A. J.Mol.Biol(1975),99,51-73", | ||
| + | " Three-dimensional Image Reconstructions of the Contractile Tail of T4 Bacteriophage", | ||
| + | " Appendix: Combination of Data from Helical Particles : Correlation and Selection", | ||
| + | " Amos,L.A", | ||
| + | " delta(theta)= -n*delta(phi) + 2*PI*Z*delta(z)", | ||
| + | " Klug,A. Crick,A., F.H.C. & Wyckoff,H.W. Acta Crystallogr.sect.(1958),11,199-213", | ||
| + | NULL | ||
| + | }; | ||
| + | |||
| + | #else | ||
| + | extern char* llDataErrorMsgReferFile[]; | ||
| + | extern char* llDataReferenceData[]; | ||
| + | #endif | ||
| + | |||
| + | #define DefaultStringLength (256) | ||
| + | #define NearSide (0) | ||
| + | #define FarSide (1) | ||
| + | #define AverageSide (2) | ||
| + | #define SidePosition (14) | ||
| + | #define CommentLength (80) | ||
| + | #define WeightPosition (SidePosition+4+CommentLength) | ||
| + | #define NNPosition (WeightPosition+12) | ||
| + | #define NLPosition (NNPosition+5) | ||
| + | #define LLDataFormat "%12.5e%12.5e%12.5e\n" | ||
| + | #define LLDataFormat0 "%12.5e%12.5e%12.5e" | ||
| + | #define LLDataFormat1 "%12.5e %12.5e %12.5e" | ||
| + | #define RRPosition (0) | ||
| + | #define FPosition (RRPosition+12) | ||
| + | #define PHIPosition (FPosition +12) | ||
| + | |||
| + | #define PVALUE_MODE (0x01) | ||
| + | #define QVALUE_MODE (0x02) | ||
| + | #define RVALUE_MODE (0x04) | ||
| + | #define Q2VALUE_MODE (0x08) | ||
| + | |||
| + | typedef enum llDataPole { | ||
| + | llDataPoleNormal = 0, | ||
| + | llDataPoleAnti = 1 | ||
| + | } llDataPole; | ||
| + | |||
| + | typedef enum llDataMode { | ||
| + | llDataModeMemoryNotAllocate = 0, | ||
| + | llDataModeMemoryAllocate = 1 | ||
| + | } llDataMode; | ||
== 構造体 == | == 構造体 == | ||
| − | typedef | + | typedef unsigned int llDataStatusType; |
| − | typedef float | + | typedef int llDataParaTypeInteger; |
| + | typedef float llDataParaTypeReal; | ||
| − | typedef | + | typedef struct llComplex { |
| − | + | llDataParaTypeReal R; /* Spherical R */ | |
| − | + | llDataParaTypeReal RR; /* Radial R */ | |
| − | } | + | llDataParaTypeReal F; /* F*exp(PHI) */ |
| + | llDataParaTypeReal PHI; | ||
| + | llDataParaTypeReal Re; /* Re + i * Im */ | ||
| + | llDataParaTypeReal Im; | ||
| + | } llComplex; | ||
| − | typedef | + | typedef struct oneLLData { |
| − | + | char Head[DefaultStringLength]; /* Comment */ | |
| − | + | llDataParaTypeReal Weight; /* Weight of This Layer Line */ | |
| − | + | llDataParaTypeInteger nn; /* The [n] dim. Bessel function */ | |
| − | + | llDataParaTypeInteger nl; /* The [l]th layer line */ | |
| − | + | llDataParaTypeInteger nm; /* [l] = t*[n]+s*[m] */ | |
| + | llComplex* data; /* Layer line data */ | ||
| + | llDataParaTypeInteger Side; /* Near/Far Side/Average */ | ||
| + | llDataParaTypeInteger nR; /* Number of layer line data */ | ||
| − | + | llDataParaTypeReal Z; | |
| − | + | llDataParaTypeInteger iZ; | |
| − | + | llDataParaTypeReal RMin; /* Radial R Info */ | |
| − | + | llDataParaTypeInteger iRMin; | |
| − | } | + | llDataParaTypeReal RMax; |
| + | llDataParaTypeInteger iRMax; | ||
| + | llDataParaTypeReal delBR; | ||
| + | llDataParaTypeReal Fmax; /* Fmax */ | ||
| + | long dummy; | ||
| + | } oneLLData; | ||
| − | typedef struct | + | typedef struct llData { |
| − | + | llDataMode mode; | |
| − | + | llDataParaTypeInteger llMax; | |
| − | + | llDataParaTypeInteger nRMax; | |
| − | } | + | llDataParaTypeReal truePitch; |
| + | llDataParaTypeReal Weight; | ||
| + | llDataParaTypeReal rScale; | ||
| + | llDataPole Pole; | ||
| + | llDataParaTypeReal Side; | ||
| + | llDataParaTypeInteger RRInfoSet; | ||
| + | llDataParaTypeInteger FmaxSet; | ||
| + | llDataParaTypeInteger RValueSet; | ||
| + | llDataParaTypeInteger ZValueSet; | ||
| + | oneLLData* LL; | ||
| + | } llData; | ||
| − | typedef struct | + | typedef struct llDataBoth { |
| − | + | llData Nea; | |
| − | + | llData Far; | |
| − | + | } llDataBoth; | |
| − | + | ||
| − | + | ||
| − | } | + | |
| − | typedef struct | + | typedef struct llDataAttributes { |
| − | + | llDataMode mode; | |
| − | + | llDataParaTypeInteger llMax; | |
| − | + | llDataParaTypeInteger nRMax; | |
| − | + | llDataParaTypeReal truePitch; | |
| − | + | llDataParaTypeReal Weight; | |
| − | + | llDataParaTypeReal rScale; | |
| − | + | llDataPole Pole; | |
| − | + | llDataParaTypeReal Side; | |
| − | } | + | oneLLData* LL; |
| + | } llDataAttributes; | ||
| + | |||
| + | /* in llDataIntensityInformationGet.c */ | ||
| + | typedef struct onelllDataIntensityInformation { | ||
| + | int LL; | ||
| + | int n; | ||
| + | int l; | ||
| + | int flagI; | ||
| + | double I; | ||
| + | int flagPeak; | ||
| + | double Peak; | ||
| + | } onelllDataIntensityInformation; | ||
| + | |||
| + | typedef struct lllDataIntensityInformation { | ||
| + | onelllDataIntensityInformation* onedata; | ||
| + | llDataParaTypeInteger llMax; | ||
| + | } lllDataIntensityInformation; | ||
== API == | == API == | ||
| − | + | ==== llDataRead ==== | |
| − | + | extern void llDataFileRead(FILE* fpt, llData* ll, llDataParaTypeInteger* status); | |
| + | extern void llDataFileReadFollowingllData(FILE* fpt, llData* ll, llData* Ref, llDataParaTypeInteger* status); | ||
| + | extern void llDataFileReadFollowingAttributes(FILE* fpt, llData* ll, llDataAttributes* attr, llDataParaTypeInteger* status); | ||
| + | |||
| + | ==== llDataWrite ==== | ||
| + | extern void llDataFileWrite(FILE* fpt, llData* ll, llDataParaTypeInteger* status); | ||
| + | |||
| + | ==== llDataInit ==== | ||
| + | extern void llDataInit(llData* ll); | ||
| + | extern void llDataInitWithReference(llData* ll, llData* ref); | ||
| + | extern void llDataInitWithReference2(llData* ll, llData* ref, int side); | ||
| + | extern void llDataHeaderInit(llData* ll); | ||
| + | extern void llDataDataInit(llData* ll); | ||
| + | extern void llDataFree(llData* ll); | ||
| + | extern void llDataHeaderFree(llData* ll); | ||
| + | extern void llDataDataFree(llData* ll); | ||
| + | |||
| + | ==== llDataInfo ==== | ||
| + | extern void llDataInfoPrint(FILE* fpt, llData* ll, long WhichLayer, long WhatInfo); | ||
| + | extern void llDataInfoPrintUsage(FILE* fpt); | ||
| + | |||
| + | ==== llDataUtil ==== | ||
| + | extern void llDataRValueSet(llData* dst, int mode); | ||
| + | extern void llDataFmaxSet(llData* dst, int mode); | ||
| + | extern void llDataZValueSet(llData* dst, int mode); | ||
| + | |||
| + | extern llDataParaTypeInteger* llDataTableBetweenTwollDataCreate(llData* ll1, llData* ll2, int mode); | ||
| + | |||
| + | extern inline llDataParaTypeReal nearSidePhaseGet(llDataParaTypeReal phase, | ||
| + | llDataParaTypeInteger nn, | ||
| + | llDataParaTypeInteger side, | ||
| + | llDataParaTypeInteger pole); | ||
| + | extern inline llDataParaTypeReal farSidePhaseGet(llDataParaTypeReal phase, | ||
| + | llDataParaTypeInteger nn, | ||
| + | llDataParaTypeInteger side, | ||
| + | llDataParaTypeInteger pole); | ||
| + | extern void lllDataAttributeCopy(llData* ll1, llData* ll2); | ||
| + | extern void lllDataHeaderCopy(llData* ll1, llData* ll2); | ||
| + | extern void lllDataCopy(llData* ll1, llData* ll2); | ||
| + | extern void lllDataClear(llData* ll1); | ||
| + | extern void lllDataMul(llData* ll1, llData* ll2); | ||
| + | extern void lllDataPoleSet(llData* ll1, llDataPole pole); | ||
| + | extern void lllDataSideSet(llData* ll1, llDataParaTypeInteger Side); | ||
| + | extern void lllDataMultiplyReal(llData* ll1, llDataParaTypeReal f); | ||
| + | extern void lllDataDevidedByReal(llData* ll1, llDataParaTypeReal f); | ||
| + | |||
| + | ==== lllDataAdd ==== | ||
| + | extern void lllDataAdd(llData* ll1, llData* ll2); | ||
| + | extern void lllDataAdd2(llData* ll, llData* ll1, llData* ll2); | ||
| − | extern void | + | ==== lllDataAvgTo ==== |
| − | extern void | + | extern void lllDataAvgTo(llData* dst, llData* src, llDataParaTypeInteger Side); |
| + | extern void lllDataAvgToNea(llData* nea, llData* avg); | ||
| + | extern void lllDataAvgToFar(llData* far, llData* avg); | ||
| − | extern void | + | ==== lllDataWeightSet ==== |
| − | + | extern void lllDataWeightSet(FILE* fpt, llData* ll, llDataParaTypeReal w, long mode); | |
| − | + | /* FILE FORMAT | |
| − | + | nn nl weight | |
| + | ............ | ||
| + | Mode 0: llData.LL[].Weight = 0 without Definition | ||
| + | */ | ||
| − | extern | + | ==== llDataGet ==== |
| − | extern | + | extern inline long llDataValueGet(llData* ll, long l, double R, double* re, double *im); |
| + | extern inline long llDataValueGet2(llData* ll, long nn, long nl, double R, double* re, double *im); | ||
| + | extern long llDataLayerNumberGet(llData* ll, long n, long l); | ||
| + | extern long llDataNLNumberGet(llData* ll); | ||
| − | extern void | + | ==== llDataSet ==== |
| − | extern void | + | extern void llDataFandPHISet(llData* ll); |
| − | extern void | + | extern void llDataReAndImSet(llData* ll); |
| + | extern void llDataRRSet(llData* ll); | ||
| + | extern void llDataRRInfoSet(llData* ll); | ||
| + | extern void llDataAttributesSet2(llData* dst, llData* src); | ||
| − | extern long | + | ==== llDataCheck ==== |
| − | + | extern long llDataSizeCheck(llData* ll1, llData* ll2, char* message); | |
| − | + | ||
| − | + | ||
| − | extern | + | ==== llDataIntensityInformationGet ==== |
| − | + | extern void lllDataIntensityInformationGet(llData* in, lllDataIntensityInformation* data, int mode); | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | extern | + | ==== llDataError ==== |
| − | + | extern void llDataError(char* s); | |
| − | + | extern void llDataErrorMessage(void); | |
| − | + | ||
| − | + | ||
| − | + | ||
2015年3月18日 (水) 06:02時点における最新版
DataManip/llDataはLLデータのためのAPIです。
目次
定数
#define llDataStatusOK ((llDataStatusType)0x00000000)
ReferFile
#define llDataCanNotReadFile ((llDataStatusType)0x00010000); #define llDataCanNotWriteFile ((llDataStatusType)0x00010001);
char* llDataReferenceData[] = {
"Amos,L.A. & Klug,A. J.Mol.Biol(1975),99,51-73",
" Three-dimensional Image Reconstructions of the Contractile Tail of T4 Bacteriophage",
" Appendix: Combination of Data from Helical Particles : Correlation and Selection",
" Amos,L.A",
" delta(theta)= -n*delta(phi) + 2*PI*Z*delta(z)",
" Klug,A. Crick,A., F.H.C. & Wyckoff,H.W. Acta Crystallogr.sect.(1958),11,199-213",
NULL
};
- else
extern char* llDataErrorMsgReferFile[]; extern char* llDataReferenceData[];
- endif
#define DefaultStringLength (256) #define NearSide (0) #define FarSide (1) #define AverageSide (2) #define SidePosition (14) #define CommentLength (80) #define WeightPosition (SidePosition+4+CommentLength) #define NNPosition (WeightPosition+12) #define NLPosition (NNPosition+5) #define LLDataFormat "%12.5e%12.5e%12.5e\n" #define LLDataFormat0 "%12.5e%12.5e%12.5e" #define LLDataFormat1 "%12.5e %12.5e %12.5e" #define RRPosition (0) #define FPosition (RRPosition+12) #define PHIPosition (FPosition +12)
#define PVALUE_MODE (0x01) #define QVALUE_MODE (0x02) #define RVALUE_MODE (0x04) #define Q2VALUE_MODE (0x08)
typedef enum llDataPole {
llDataPoleNormal = 0,
llDataPoleAnti = 1
} llDataPole;
typedef enum llDataMode {
llDataModeMemoryNotAllocate = 0,
llDataModeMemoryAllocate = 1
} llDataMode;
構造体
typedef unsigned int llDataStatusType; typedef int llDataParaTypeInteger; typedef float llDataParaTypeReal;
typedef struct llComplex {
llDataParaTypeReal R; /* Spherical R */
llDataParaTypeReal RR; /* Radial R */
llDataParaTypeReal F; /* F*exp(PHI) */
llDataParaTypeReal PHI;
llDataParaTypeReal Re; /* Re + i * Im */
llDataParaTypeReal Im;
} llComplex;
typedef struct oneLLData {
char Head[DefaultStringLength]; /* Comment */
llDataParaTypeReal Weight; /* Weight of This Layer Line */
llDataParaTypeInteger nn; /* The [n] dim. Bessel function */
llDataParaTypeInteger nl; /* The [l]th layer line */
llDataParaTypeInteger nm; /* [l] = t*[n]+s*[m] */
llComplex* data; /* Layer line data */
llDataParaTypeInteger Side; /* Near/Far Side/Average */
llDataParaTypeInteger nR; /* Number of layer line data */
llDataParaTypeReal Z; llDataParaTypeInteger iZ; llDataParaTypeReal RMin; /* Radial R Info */ llDataParaTypeInteger iRMin; llDataParaTypeReal RMax; llDataParaTypeInteger iRMax; llDataParaTypeReal delBR; llDataParaTypeReal Fmax; /* Fmax */ long dummy; } oneLLData;
typedef struct llData {
llDataMode mode;
llDataParaTypeInteger llMax;
llDataParaTypeInteger nRMax;
llDataParaTypeReal truePitch;
llDataParaTypeReal Weight;
llDataParaTypeReal rScale;
llDataPole Pole;
llDataParaTypeReal Side;
llDataParaTypeInteger RRInfoSet;
llDataParaTypeInteger FmaxSet;
llDataParaTypeInteger RValueSet;
llDataParaTypeInteger ZValueSet;
oneLLData* LL;
} llData;
typedef struct llDataBoth {
llData Nea;
llData Far;
} llDataBoth;
typedef struct llDataAttributes {
llDataMode mode;
llDataParaTypeInteger llMax;
llDataParaTypeInteger nRMax;
llDataParaTypeReal truePitch;
llDataParaTypeReal Weight;
llDataParaTypeReal rScale;
llDataPole Pole;
llDataParaTypeReal Side;
oneLLData* LL;
} llDataAttributes;
/* in llDataIntensityInformationGet.c */
typedef struct onelllDataIntensityInformation {
int LL;
int n;
int l;
int flagI;
double I;
int flagPeak;
double Peak;
} onelllDataIntensityInformation;
typedef struct lllDataIntensityInformation {
onelllDataIntensityInformation* onedata;
llDataParaTypeInteger llMax;
} lllDataIntensityInformation;
API
llDataRead
extern void llDataFileRead(FILE* fpt, llData* ll, llDataParaTypeInteger* status); extern void llDataFileReadFollowingllData(FILE* fpt, llData* ll, llData* Ref, llDataParaTypeInteger* status); extern void llDataFileReadFollowingAttributes(FILE* fpt, llData* ll, llDataAttributes* attr, llDataParaTypeInteger* status);
llDataWrite
extern void llDataFileWrite(FILE* fpt, llData* ll, llDataParaTypeInteger* status);
llDataInit
extern void llDataInit(llData* ll); extern void llDataInitWithReference(llData* ll, llData* ref); extern void llDataInitWithReference2(llData* ll, llData* ref, int side); extern void llDataHeaderInit(llData* ll); extern void llDataDataInit(llData* ll); extern void llDataFree(llData* ll); extern void llDataHeaderFree(llData* ll); extern void llDataDataFree(llData* ll);
llDataInfo
extern void llDataInfoPrint(FILE* fpt, llData* ll, long WhichLayer, long WhatInfo); extern void llDataInfoPrintUsage(FILE* fpt);
llDataUtil
extern void llDataRValueSet(llData* dst, int mode); extern void llDataFmaxSet(llData* dst, int mode); extern void llDataZValueSet(llData* dst, int mode);
extern llDataParaTypeInteger* llDataTableBetweenTwollDataCreate(llData* ll1, llData* ll2, int mode);
extern inline llDataParaTypeReal nearSidePhaseGet(llDataParaTypeReal phase, llDataParaTypeInteger nn, llDataParaTypeInteger side, llDataParaTypeInteger pole); extern inline llDataParaTypeReal farSidePhaseGet(llDataParaTypeReal phase, llDataParaTypeInteger nn, llDataParaTypeInteger side, llDataParaTypeInteger pole); extern void lllDataAttributeCopy(llData* ll1, llData* ll2); extern void lllDataHeaderCopy(llData* ll1, llData* ll2); extern void lllDataCopy(llData* ll1, llData* ll2); extern void lllDataClear(llData* ll1); extern void lllDataMul(llData* ll1, llData* ll2); extern void lllDataPoleSet(llData* ll1, llDataPole pole); extern void lllDataSideSet(llData* ll1, llDataParaTypeInteger Side); extern void lllDataMultiplyReal(llData* ll1, llDataParaTypeReal f); extern void lllDataDevidedByReal(llData* ll1, llDataParaTypeReal f);
lllDataAdd
extern void lllDataAdd(llData* ll1, llData* ll2); extern void lllDataAdd2(llData* ll, llData* ll1, llData* ll2);
lllDataAvgTo
extern void lllDataAvgTo(llData* dst, llData* src, llDataParaTypeInteger Side); extern void lllDataAvgToNea(llData* nea, llData* avg); extern void lllDataAvgToFar(llData* far, llData* avg);
lllDataWeightSet
extern void lllDataWeightSet(FILE* fpt, llData* ll, llDataParaTypeReal w, long mode); /* FILE FORMAT nn nl weight ............ Mode 0: llData.LL[].Weight = 0 without Definition */
llDataGet
extern inline long llDataValueGet(llData* ll, long l, double R, double* re, double *im); extern inline long llDataValueGet2(llData* ll, long nn, long nl, double R, double* re, double *im); extern long llDataLayerNumberGet(llData* ll, long n, long l); extern long llDataNLNumberGet(llData* ll);
llDataSet
extern void llDataFandPHISet(llData* ll); extern void llDataReAndImSet(llData* ll); extern void llDataRRSet(llData* ll); extern void llDataRRInfoSet(llData* ll); extern void llDataAttributesSet2(llData* dst, llData* src);
llDataCheck
extern long llDataSizeCheck(llData* ll1, llData* ll2, char* message);
llDataIntensityInformationGet
extern void lllDataIntensityInformationGet(llData* in, lllDataIntensityInformation* data, int mode);
llDataError
extern void llDataError(char* s); extern void llDataErrorMessage(void);