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