Mercurial > public > mk2
diff 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 |
line wrap: on
line diff
--- a/code_part1/OSTC_code_c_part2/p2_tables.romdata Thu May 12 13:59:13 2011 +0200 +++ b/code_part1/OSTC_code_c_part2/p2_tables.romdata Tue May 17 15:56:09 2011 +0200 @@ -18,236 +18,117 @@ // HISTORY // 2011-01-20: jDG Cleanup addressing. // 2011-02-13: jDG Correct some typos. +// 2011-05-17: jDG Optimized using interleaved arrays. // // ************************************************************** -rom const float buhlmann_a[32] = -{ // Data ZH-L16C, from Bühlmann Tauchmedizin 2002, option 1a (4mn) -//---a for N2 ---------------------------------------------------------------- - 1.2599, - 1.0000, - 0.8618, - 0.7562, - 0.6200, - 0.5043, - 0.4410, - 0.4000, - 0.3750, - 0.3500, - 0.3295, - 0.3065, - 0.2835, - 0.2610, - 0.2480, - 0.2327, -//---- a of He --------------------------------------------------------------- - 1.7424, - 1.3830, - 1.1919, - 1.0458, - .9220, - .8205, - .7305, - .6502, - .5950, - .5545, - .5333, - .5189, - .5181, - .5176, - .5172, - .5119 +rom const float buhlmann_ab[] = { +// Data ZH-L16C, from Bühlmann Tauchmedizin 2002, option 1a (4mn) +// a for N2 b for N2 a of He b for He + 1.2599, 0.5050, 1.7424, 0.4245, + 1.0000, 0.6514, 1.3830, 0.5747, + 0.8618, 0.7222, 1.1919, 0.6527, + 0.7562, 0.7825, 1.0458, 0.7223, + 0.6200, 0.8126, 0.9220, 0.7582, + 0.5043, 0.8434, 0.8205, 0.7957, + 0.4410, 0.8693, 0.7305, 0.8279, + 0.4000, 0.8910, 0.6502, 0.8553, + 0.3750, 0.9092, 0.5950, 0.8757, + 0.3500, 0.9222, 0.5545, 0.8903, + 0.3295, 0.9319, 0.5333, 0.8997, + 0.3065, 0.9403, 0.5189, 0.9073, + 0.2835, 0.9477, 0.5181, 0.9122, + 0.2610, 0.9544, 0.5176, 0.9171, + 0.2480, 0.9602, 0.5172, 0.9217, + 0.2327, 0.9653, 0.5119, 0.9267 }; -rom const float buhlmann_b[] = -{ -//---- b for N2 -------------------------------------------------------------- - 0.5050, - 0.6514, - 0.7222, - 0.7825, - 0.8126, - 0.8434, - 0.8693, - 0.8910, - 0.9092, - 0.9222, - 0.9319, - 0.9403, - 0.9477, - 0.9544, - 0.9602, - 0.9653, -//---- b for He -------------------------------------------------------------- - 0.4245, - 0.5747, - 0.6527, - 0.7223, - 0.7582, - 0.7957, - 0.8279, - 0.8553, - 0.8757, - 0.8903, - 0.8997, - 0.9073, - 0.9122, - 0.9171, - 0.9217, - 0.9267 -}; - -rom const float buhlmann_ht[] = -{ -//---- N2 -------------------------------------------------------------------- - 4, // Compartiment half-life, in minute, for nitrogen. - 8, - 12, - 18, - 27, - 39, - 55, - 77, - 109, - 146, - 187, - 239, - 305, - 390, - 498, - 635, -//---- He -------------------------------------------------------------------- - 1.51, // Compartiment half-life, in minute, for helium. - 3.02, - 4.72, - 6.99, - 10.21, - 14.48, - 20.53, - 29.11, - 41.20, - 55.19, - 70.69, - 90.34, - 115.29, - 147.42, - 188.24, - 240.03 +rom const float buhlmann_ht[] = { +// Compartiment half-life, in minute +//-- N2 ---- He --------------------------------------------------------------------- + 4, 1.51, + 8, 3.02, + 12, 4.72, + 18, 6.99, + 27, 10.21, + 39, 14.48, + 55, 20.53, + 77, 29.11, + 109, 41.20, + 146, 55.19, + 187, 70.69, + 239, 90.34, + 305, 115.29, + 390, 147.42, + 498, 188.24, + 635, 240.03 }; -rom const float e2secs[] = -{ -//---- N2 -------------------------------------------------------------------- - 5.75958E-03, // result of 1 - 2^(-1/(30sec*HT)) - 2.88395E-03, - 1.92356E-03, - 1.28278E-03, - 8.55371E-04, - 5.92258E-04, - 4.20001E-04, - 3.00019E-04, - 2.11949E-04, - 1.58240E-04, - 1.23548E-04, - 9.66686E-05, - 7.57509E-05, - 5.92416E-05, - 4.63943E-05, - 3.63850E-05, -//---- He -------------------------------------------------------------------- - 1.51848E-02, - 7.62144E-03, - 4.88315E-03, - 3.29997E-03, - 2.26041E-03, - 1.59437E-03, - 1.12479E-03, - 7.93395E-04, - 5.60641E-04, - 4.18555E-04, - 3.26795E-04, - 2.55722E-04, - 2.00387E-04, - 1.56716E-04, - 1.22734E-04, - 9.62538E-05 +rom const float e2secs[] = { +// result of 1 - 2^(-1/(30sec*HT)) +//---- N2 ------------- He ------------ + 5.75958E-03, 1.51848E-02, + 2.88395E-03, 7.62144E-03, + 1.92356E-03, 4.88315E-03, + 1.28278E-03, 3.29997E-03, + 8.55371E-04, 2.26041E-03, + 5.92258E-04, 1.59437E-03, + 4.20001E-04, 1.12479E-03, + 3.00019E-04, 7.93395E-04, + 2.11949E-04, 5.60641E-04, + 1.58240E-04, 4.18555E-04, + 1.23548E-04, 3.26795E-04, + 9.66686E-05, 2.55722E-04, + 7.57509E-05, 2.00387E-04, + 5.92416E-05, 1.56716E-04, + 4.63943E-05, 1.22734E-04, + 3.63850E-05, 9.62538E-05 +//------------------------------------- }; -rom const float e1min[] = -{ -//---- N2 -------------------------------------------------------------------- - 1.59104E-01, // Integration constant for 1 minute, - 8.29960E-02, // Ie. 1- 2^(-1/HT) - 5.61257E-02, - 3.77762E-02, - 2.53454E-02, - 1.76160E-02, - 1.25236E-02, - 8.96152E-03, - 6.33897E-03, - 4.73633E-03, - 3.69981E-03, - 2.89600E-03, - 2.27003E-03, - 1.77572E-03, - 1.39089E-03, - 1.09097E-03, -//---- e 1min He ------------------------------------------------------------- - 3.68109E-01, - 2.05084E-01, - 1.36579E-01, - 9.44046E-02, - 6.56359E-02, - 4.67416E-02, - 3.31991E-02, - 2.35301E-02, - 1.66832E-02, - 1.24808E-02, - 9.75753E-03, - 7.64329E-03, - 5.99417E-03, - 4.69082E-03, - 3.67548E-03, - 2.88359E-03 +rom const float e1min[] = { +// Integration constant for 1 minute, +// Ie. 1- 2^(-1/HT) +//----- N2 --------- e 1min He -------- + 1.59104E-01, 3.68109E-01, + 8.29960E-02, 2.05084E-01, + 5.61257E-02, 1.36579E-01, + 3.77762E-02, 9.44046E-02, + 2.53454E-02, 6.56359E-02, + 1.76160E-02, 4.67416E-02, + 1.25236E-02, 3.31991E-02, + 8.96152E-03, 2.35301E-02, + 6.33897E-03, 1.66832E-02, + 4.73633E-03, 1.24808E-02, + 3.69981E-03, 9.75753E-03, + 2.89600E-03, 7.64329E-03, + 2.27003E-03, 5.99417E-03, + 1.77572E-03, 4.69082E-03, + 1.39089E-03, 3.67548E-03, + 1.09097E-03, 2.88359E-03 +//------------------------------------- }; -rom const float e10min[] = -{ -//---- N2 -------------------------------------------------------------------- +rom const float e10min[] = { // The 10 min Value in float notation: // result of 1 - 2^(-10/ht) - 8.23223E-01, // 1 - 2^(-10/4.0) - 5.79552E-01, - 4.38769E-01, - 3.19605E-01, - 2.26416E-01, - 1.62832E-01, - 1.18409E-01, - 8.60863E-02, - 6.16117E-02, - 4.63665E-02, - 3.63881E-02, - 2.85855E-02, - 2.24698E-02, - 1.76160E-02, - 1.38222E-02, - 1.08563E-02, -//---- He -------------------------------------------------------------------- - 9.89851E-01, - 8.99258E-01, - 7.69737E-01, - 6.29027E-01, - 4.92821E-01, - 3.80407E-01, - 2.86538E-01, - 2.11886E-01, - 1.54849E-01, - 1.18026E-01, - 9.34005E-02, - 7.38569E-02, - 5.83504E-02, - 4.59303E-02, - 3.61528E-02, - 2.84646E-02 +//---- N2 -------------- He ----------- + 8.23223E-01, 9.89851E-01, + 5.79552E-01, 8.99258E-01, + 4.38769E-01, 7.69737E-01, + 3.19605E-01, 6.29027E-01, + 2.26416E-01, 4.92821E-01, + 1.62832E-01, 3.80407E-01, + 1.18409E-01, 2.86538E-01, + 8.60863E-02, 2.11886E-01, + 6.16117E-02, 1.54849E-01, + 4.63665E-02, 1.18026E-01, + 3.63881E-02, 9.34005E-02, + 2.85855E-02, 7.38569E-02, + 2.24698E-02, 5.83504E-02, + 1.76160E-02, 4.59303E-02, + 1.38222E-02, 3.61528E-02, + 1.08563E-02, 2.84646E-02 +//------------------------------------- };