Mercurial > public > mk2
comparison code_part1/OSTC_code_c_part2/p2_tables.romdata @ 338:b75564fb3d4b
Optimizing access to B?hlmann coefficient (speed).
Define number of compartiments, stops and gases.
author | JeanDo |
---|---|
date | Tue, 17 May 2011 15:56:09 +0200 |
parents | 1d98f30ed44e |
children | bdcc5a5aa8d5 |
comparison
equal
deleted
inserted
replaced
334:4ccdc72ec0e5 | 338:b75564fb3d4b |
---|---|
16 // along with this program. If not, see <http://www.gnu.org/licenses/>. | 16 // along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 // | 17 // |
18 // HISTORY | 18 // HISTORY |
19 // 2011-01-20: jDG Cleanup addressing. | 19 // 2011-01-20: jDG Cleanup addressing. |
20 // 2011-02-13: jDG Correct some typos. | 20 // 2011-02-13: jDG Correct some typos. |
21 // 2011-05-17: jDG Optimized using interleaved arrays. | |
21 // | 22 // |
22 // ************************************************************** | 23 // ************************************************************** |
23 | 24 |
24 rom const float buhlmann_a[32] = | 25 rom const float buhlmann_ab[] = { |
25 { // Data ZH-L16C, from Bühlmann Tauchmedizin 2002, option 1a (4mn) | 26 // Data ZH-L16C, from Bühlmann Tauchmedizin 2002, option 1a (4mn) |
26 //---a for N2 ---------------------------------------------------------------- | 27 // a for N2 b for N2 a of He b for He |
27 1.2599, | 28 1.2599, 0.5050, 1.7424, 0.4245, |
28 1.0000, | 29 1.0000, 0.6514, 1.3830, 0.5747, |
29 0.8618, | 30 0.8618, 0.7222, 1.1919, 0.6527, |
30 0.7562, | 31 0.7562, 0.7825, 1.0458, 0.7223, |
31 0.6200, | 32 0.6200, 0.8126, 0.9220, 0.7582, |
32 0.5043, | 33 0.5043, 0.8434, 0.8205, 0.7957, |
33 0.4410, | 34 0.4410, 0.8693, 0.7305, 0.8279, |
34 0.4000, | 35 0.4000, 0.8910, 0.6502, 0.8553, |
35 0.3750, | 36 0.3750, 0.9092, 0.5950, 0.8757, |
36 0.3500, | 37 0.3500, 0.9222, 0.5545, 0.8903, |
37 0.3295, | 38 0.3295, 0.9319, 0.5333, 0.8997, |
38 0.3065, | 39 0.3065, 0.9403, 0.5189, 0.9073, |
39 0.2835, | 40 0.2835, 0.9477, 0.5181, 0.9122, |
40 0.2610, | 41 0.2610, 0.9544, 0.5176, 0.9171, |
41 0.2480, | 42 0.2480, 0.9602, 0.5172, 0.9217, |
42 0.2327, | 43 0.2327, 0.9653, 0.5119, 0.9267 |
43 //---- a of He --------------------------------------------------------------- | |
44 1.7424, | |
45 1.3830, | |
46 1.1919, | |
47 1.0458, | |
48 .9220, | |
49 .8205, | |
50 .7305, | |
51 .6502, | |
52 .5950, | |
53 .5545, | |
54 .5333, | |
55 .5189, | |
56 .5181, | |
57 .5176, | |
58 .5172, | |
59 .5119 | |
60 }; | 44 }; |
61 | 45 |
62 rom const float buhlmann_b[] = | 46 rom const float buhlmann_ht[] = { |
63 { | 47 // Compartiment half-life, in minute |
64 //---- b for N2 -------------------------------------------------------------- | 48 //-- N2 ---- He --------------------------------------------------------------------- |
65 0.5050, | 49 4, 1.51, |
66 0.6514, | 50 8, 3.02, |
67 0.7222, | 51 12, 4.72, |
68 0.7825, | 52 18, 6.99, |
69 0.8126, | 53 27, 10.21, |
70 0.8434, | 54 39, 14.48, |
71 0.8693, | 55 55, 20.53, |
72 0.8910, | 56 77, 29.11, |
73 0.9092, | 57 109, 41.20, |
74 0.9222, | 58 146, 55.19, |
75 0.9319, | 59 187, 70.69, |
76 0.9403, | 60 239, 90.34, |
77 0.9477, | 61 305, 115.29, |
78 0.9544, | 62 390, 147.42, |
79 0.9602, | 63 498, 188.24, |
80 0.9653, | 64 635, 240.03 |
81 //---- b for He -------------------------------------------------------------- | |
82 0.4245, | |
83 0.5747, | |
84 0.6527, | |
85 0.7223, | |
86 0.7582, | |
87 0.7957, | |
88 0.8279, | |
89 0.8553, | |
90 0.8757, | |
91 0.8903, | |
92 0.8997, | |
93 0.9073, | |
94 0.9122, | |
95 0.9171, | |
96 0.9217, | |
97 0.9267 | |
98 }; | 65 }; |
99 | 66 |
100 rom const float buhlmann_ht[] = | 67 rom const float e2secs[] = { |
101 { | 68 // result of 1 - 2^(-1/(30sec*HT)) |
102 //---- N2 -------------------------------------------------------------------- | 69 //---- N2 ------------- He ------------ |
103 4, // Compartiment half-life, in minute, for nitrogen. | 70 5.75958E-03, 1.51848E-02, |
104 8, | 71 2.88395E-03, 7.62144E-03, |
105 12, | 72 1.92356E-03, 4.88315E-03, |
106 18, | 73 1.28278E-03, 3.29997E-03, |
107 27, | 74 8.55371E-04, 2.26041E-03, |
108 39, | 75 5.92258E-04, 1.59437E-03, |
109 55, | 76 4.20001E-04, 1.12479E-03, |
110 77, | 77 3.00019E-04, 7.93395E-04, |
111 109, | 78 2.11949E-04, 5.60641E-04, |
112 146, | 79 1.58240E-04, 4.18555E-04, |
113 187, | 80 1.23548E-04, 3.26795E-04, |
114 239, | 81 9.66686E-05, 2.55722E-04, |
115 305, | 82 7.57509E-05, 2.00387E-04, |
116 390, | 83 5.92416E-05, 1.56716E-04, |
117 498, | 84 4.63943E-05, 1.22734E-04, |
118 635, | 85 3.63850E-05, 9.62538E-05 |
119 //---- He -------------------------------------------------------------------- | 86 //------------------------------------- |
120 1.51, // Compartiment half-life, in minute, for helium. | |
121 3.02, | |
122 4.72, | |
123 6.99, | |
124 10.21, | |
125 14.48, | |
126 20.53, | |
127 29.11, | |
128 41.20, | |
129 55.19, | |
130 70.69, | |
131 90.34, | |
132 115.29, | |
133 147.42, | |
134 188.24, | |
135 240.03 | |
136 }; | 87 }; |
137 | 88 |
138 rom const float e2secs[] = | 89 rom const float e1min[] = { |
139 { | 90 // Integration constant for 1 minute, |
140 //---- N2 -------------------------------------------------------------------- | 91 // Ie. 1- 2^(-1/HT) |
141 5.75958E-03, // result of 1 - 2^(-1/(30sec*HT)) | 92 //----- N2 --------- e 1min He -------- |
142 2.88395E-03, | 93 1.59104E-01, 3.68109E-01, |
143 1.92356E-03, | 94 8.29960E-02, 2.05084E-01, |
144 1.28278E-03, | 95 5.61257E-02, 1.36579E-01, |
145 8.55371E-04, | 96 3.77762E-02, 9.44046E-02, |
146 5.92258E-04, | 97 2.53454E-02, 6.56359E-02, |
147 4.20001E-04, | 98 1.76160E-02, 4.67416E-02, |
148 3.00019E-04, | 99 1.25236E-02, 3.31991E-02, |
149 2.11949E-04, | 100 8.96152E-03, 2.35301E-02, |
150 1.58240E-04, | 101 6.33897E-03, 1.66832E-02, |
151 1.23548E-04, | 102 4.73633E-03, 1.24808E-02, |
152 9.66686E-05, | 103 3.69981E-03, 9.75753E-03, |
153 7.57509E-05, | 104 2.89600E-03, 7.64329E-03, |
154 5.92416E-05, | 105 2.27003E-03, 5.99417E-03, |
155 4.63943E-05, | 106 1.77572E-03, 4.69082E-03, |
156 3.63850E-05, | 107 1.39089E-03, 3.67548E-03, |
157 //---- He -------------------------------------------------------------------- | 108 1.09097E-03, 2.88359E-03 |
158 1.51848E-02, | 109 //------------------------------------- |
159 7.62144E-03, | |
160 4.88315E-03, | |
161 3.29997E-03, | |
162 2.26041E-03, | |
163 1.59437E-03, | |
164 1.12479E-03, | |
165 7.93395E-04, | |
166 5.60641E-04, | |
167 4.18555E-04, | |
168 3.26795E-04, | |
169 2.55722E-04, | |
170 2.00387E-04, | |
171 1.56716E-04, | |
172 1.22734E-04, | |
173 9.62538E-05 | |
174 }; | 110 }; |
175 | 111 |
176 rom const float e1min[] = | 112 rom const float e10min[] = { |
177 { | 113 // The 10 min Value in float notation: |
178 //---- N2 -------------------------------------------------------------------- | 114 // result of 1 - 2^(-10/ht) |
179 1.59104E-01, // Integration constant for 1 minute, | 115 //---- N2 -------------- He ----------- |
180 8.29960E-02, // Ie. 1- 2^(-1/HT) | 116 8.23223E-01, 9.89851E-01, |
181 5.61257E-02, | 117 5.79552E-01, 8.99258E-01, |
182 3.77762E-02, | 118 4.38769E-01, 7.69737E-01, |
183 2.53454E-02, | 119 3.19605E-01, 6.29027E-01, |
184 1.76160E-02, | 120 2.26416E-01, 4.92821E-01, |
185 1.25236E-02, | 121 1.62832E-01, 3.80407E-01, |
186 8.96152E-03, | 122 1.18409E-01, 2.86538E-01, |
187 6.33897E-03, | 123 8.60863E-02, 2.11886E-01, |
188 4.73633E-03, | 124 6.16117E-02, 1.54849E-01, |
189 3.69981E-03, | 125 4.63665E-02, 1.18026E-01, |
190 2.89600E-03, | 126 3.63881E-02, 9.34005E-02, |
191 2.27003E-03, | 127 2.85855E-02, 7.38569E-02, |
192 1.77572E-03, | 128 2.24698E-02, 5.83504E-02, |
193 1.39089E-03, | 129 1.76160E-02, 4.59303E-02, |
194 1.09097E-03, | 130 1.38222E-02, 3.61528E-02, |
195 //---- e 1min He ------------------------------------------------------------- | 131 1.08563E-02, 2.84646E-02 |
196 3.68109E-01, | 132 //------------------------------------- |
197 2.05084E-01, | |
198 1.36579E-01, | |
199 9.44046E-02, | |
200 6.56359E-02, | |
201 4.67416E-02, | |
202 3.31991E-02, | |
203 2.35301E-02, | |
204 1.66832E-02, | |
205 1.24808E-02, | |
206 9.75753E-03, | |
207 7.64329E-03, | |
208 5.99417E-03, | |
209 4.69082E-03, | |
210 3.67548E-03, | |
211 2.88359E-03 | |
212 }; | 133 }; |
213 | 134 |
214 rom const float e10min[] = | |
215 { | |
216 //---- N2 -------------------------------------------------------------------- | |
217 // The 10 min Value in float notation: | |
218 // result of 1 - 2^(-10/ht) | |
219 8.23223E-01, // 1 - 2^(-10/4.0) | |
220 5.79552E-01, | |
221 4.38769E-01, | |
222 3.19605E-01, | |
223 2.26416E-01, | |
224 1.62832E-01, | |
225 1.18409E-01, | |
226 8.60863E-02, | |
227 6.16117E-02, | |
228 4.63665E-02, | |
229 3.63881E-02, | |
230 2.85855E-02, | |
231 2.24698E-02, | |
232 1.76160E-02, | |
233 1.38222E-02, | |
234 1.08563E-02, | |
235 //---- He -------------------------------------------------------------------- | |
236 9.89851E-01, | |
237 8.99258E-01, | |
238 7.69737E-01, | |
239 6.29027E-01, | |
240 4.92821E-01, | |
241 3.80407E-01, | |
242 2.86538E-01, | |
243 2.11886E-01, | |
244 1.54849E-01, | |
245 1.18026E-01, | |
246 9.34005E-02, | |
247 7.38569E-02, | |
248 5.83504E-02, | |
249 4.59303E-02, | |
250 3.61528E-02, | |
251 2.84646E-02 | |
252 }; | |
253 |