OSDN Git Service

Merge branch 'master' of git.sourceforge.jp:/gitroot/eos/base
[eos/hostdependX86LINUX64.git] / include / ltlgData.h
1 #ifndef LTLG_DATA_H
2 #define LTLG_DATA_H
3
4 /*
5 * ltlgData.h
6 *
7 *
8 */
9 #include <stdio.h>
10
11 /* constant begin */                        
12 #define LTLG_TITLE_LENGTH (80)
13 #define LTLG_SIDE_LENGTH  ( 4)
14 #define LTLG_FTN_RECORD   (64*4)
15 /* constant end */
16
17 /* struct begin */
18 typedef short ltlgDataParaTypeInteger; 
19 typedef float ltlgDataParaTypeReal; 
20
21 typedef enum ltlgDataHow {
22         ltlgDataHowNearest,
23         ltlgDataHowLinear
24 } ltlgDataHow;
25
26 typedef enum ltlgDataType {
27         ltlgDataTypeRePart,
28         ltlgDataTypeImPart,
29         ltlgDataTypeMag,
30         ltlgDataTypePhase
31 } ltlgDataType;
32
33 typedef struct ltlgDataLLDataInfo {
34     ltlgDataParaTypeInteger  NN;
35     ltlgDataParaTypeInteger  NL;
36     ltlgDataParaTypeReal     WT;
37 } ltlgDataLLDataInfo;
38
39 typedef struct ltlgDataLLData {
40         ltlgDataParaTypeReal r;
41     ltlgDataParaTypeReal Re;
42     ltlgDataParaTypeReal Im;
43 }ltlgDataLLData;
44
45 typedef struct ltlgDataParaInfo {
46     ltlgDataParaTypeReal    d;
47     ltlgDataParaTypeReal    Min;
48     ltlgDataParaTypeReal    Max;
49     ltlgDataParaTypeInteger n;
50     ltlgDataParaTypeInteger dummy;
51 } ltlgDataParaInfo;
52
53 typedef struct ltlgData {
54     char title1[LTLG_TITLE_LENGTH+1];
55     char title2[LTLG_TITLE_LENGTH+1];
56     char side[LTLG_SIDE_LENGTH+1];
57     ltlgDataParaInfo R;
58     ltlgDataParaInfo ll;
59     ltlgDataParaInfo r;
60     ltlgDataLLDataInfo* llInfo;
61     ltlgDataLLData** ltlg;
62 } ltlgData;
63 /* struct end */
64
65 /* prototype begin */
66 /* Utilty Funcitions */
67 #define ltlgDataFileRead  ltlgDataReadFile
68 #define ltlgDataFileWrite ltlgDataWriteFile
69
70 extern void ltlgDataReadFile(FILE* fpt, ltlgData* ltlg, ltlgDataParaTypeInteger mode, ltlgDataParaTypeInteger* status);
71 extern void ltlgDataWriteFile(FILE* fpt, ltlgData* ltlg, ltlgDataParaTypeInteger mode, ltlgDataParaTypeInteger* status);
72
73 extern void ltlgDataPrint(FILE* fpt, ltlgData ltlg, ltlgDataParaTypeInteger mode);
74 extern void ltlgDataPrintInfo(FILE* fpt, ltlgData ltlg);
75 extern void ltlgDataPrintllInfo(FILE* fpt, ltlgData ltlg);
76 extern void ltlgDataPrintllData(FILE* fpt, ltlgData ltlg);
77
78 extern void ltlgDataAllocate(ltlgData* ltlg, ltlgDataParaTypeInteger* status);
79 extern void ltlgDataFree(ltlgData* ltlg);
80
81 extern void ltlgDataWeightModifyFromFile(ltlgData* ltlg, FILE* fpt, long mode);
82 extern void ltlgDataWeightModify(ltlgData* ltlg, ltlgDataLLDataInfo Weight, long mode);
83 extern void ltlgDataWeightOfNEqualLOnly(ltlgData* ltlg);
84
85
86
87 extern long
88 ltlgDataLNumberGet(ltlgData* ltlg,
89                          ltlgDataParaTypeInteger n,
90                          ltlgDataParaTypeInteger l);
91
92 extern ltlgDataParaTypeReal
93 ltlgDataGet(ltlgData* ltlg,
94                          ltlgDataParaTypeInteger n,
95                          ltlgDataParaTypeInteger l,
96                          ltlgDataParaTypeReal r,
97                          ltlgDataParaTypeReal* data,
98                      ltlgDataType type, ltlgDataHow how);
99                                                  
100
101 extern ltlgDataParaTypeReal
102 ltlgDataGet2(ltlgData* ltlg,
103                          long ll,                       /* layer */
104                          ltlgDataParaTypeReal r,
105                          ltlgDataParaTypeReal* data,
106                      ltlgDataType type, ltlgDataHow how);
107
108 /* prototype end */
109 #endif /* LTLG_DATA_H */