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 |
