diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt index 4a389718..0ff79783 100644 --- a/Testing/CMakeLists.txt +++ b/Testing/CMakeLists.txt @@ -150,6 +150,7 @@ set (NNSRC Source/Benchmarks/ComplexMathsBenchmarksF32.cpp Source/Benchmarks/ComplexMathsBenchmarksQ31.cpp Source/Benchmarks/ComplexMathsBenchmarksQ15.cpp + Source/Benchmarks/BayesF32.cpp Source/Benchmarks/FIRF32.cpp Source/Benchmarks/FIRQ31.cpp Source/Benchmarks/FIRQ15.cpp diff --git a/Testing/Include/Benchmarks/BayesF32.h b/Testing/Include/Benchmarks/BayesF32.h new file mode 100755 index 00000000..d1f77acf --- /dev/null +++ b/Testing/Include/Benchmarks/BayesF32.h @@ -0,0 +1,37 @@ +#include "Test.h" +#include "Pattern.h" + +#include "dsp/bayes_functions.h" + +class BayesF32:public Client::Suite + { + public: + BayesF32(Testing::testID_t id); + virtual void setUp(Testing::testID_t,std::vector& paramsArgs,Client::PatternMgr *mgr); + virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr); + private: + #include "BayesF32_decl.h" + + Client::Pattern input; + Client::Pattern params; + Client::Pattern dims; + + Client::LocalPattern outputProbas; + Client::LocalPattern outputPredicts; + + // Reference patterns are not loaded when we are in dump mode + Client::RefPattern predicts; + + int classNb,vecDim; + int nb=0; + const float32_t *theta; + const float32_t *sigma; + const float32_t *classPrior; + float32_t epsilon; + + arm_gaussian_naive_bayes_instance_f32 bayes; + + const float32_t *inp; + float32_t *bufp; + + }; diff --git a/Testing/Parameters/DSP/Bayes/BayesF16/Params1.txt b/Testing/Parameters/DSP/Bayes/BayesF16/Params1.txt new file mode 100755 index 00000000..7e5d4550 --- /dev/null +++ b/Testing/Parameters/DSP/Bayes/BayesF16/Params1.txt @@ -0,0 +1,19 @@ +18 +12 +3 +12 +5 +12 +4 +14 +3 +14 +5 +14 +4 +20 +3 +20 +5 +20 +4 diff --git a/Testing/Parameters/DSP/Bayes/BayesF16/Params2.txt b/Testing/Parameters/DSP/Bayes/BayesF16/Params2.txt new file mode 100755 index 00000000..7e5d4550 --- /dev/null +++ b/Testing/Parameters/DSP/Bayes/BayesF16/Params2.txt @@ -0,0 +1,19 @@ +18 +12 +3 +12 +5 +12 +4 +14 +3 +14 +5 +14 +4 +20 +3 +20 +5 +20 +4 diff --git a/Testing/Parameters/DSP/Bayes/BayesF32/Params1.txt b/Testing/Parameters/DSP/Bayes/BayesF32/Params1.txt new file mode 100755 index 00000000..7e5d4550 --- /dev/null +++ b/Testing/Parameters/DSP/Bayes/BayesF32/Params1.txt @@ -0,0 +1,19 @@ +18 +12 +3 +12 +5 +12 +4 +14 +3 +14 +5 +14 +4 +20 +3 +20 +5 +20 +4 diff --git a/Testing/Parameters/DSP/Bayes/BayesF32/Params2.txt b/Testing/Parameters/DSP/Bayes/BayesF32/Params2.txt new file mode 100755 index 00000000..7e5d4550 --- /dev/null +++ b/Testing/Parameters/DSP/Bayes/BayesF32/Params2.txt @@ -0,0 +1,19 @@ +18 +12 +3 +12 +5 +12 +4 +14 +3 +14 +5 +14 +4 +20 +3 +20 +5 +20 +4 diff --git a/Testing/PatternGeneration/Bayes.py b/Testing/PatternGeneration/Bayes.py index e1ca0f9c..4aaef05d 100755 --- a/Testing/PatternGeneration/Bayes.py +++ b/Testing/PatternGeneration/Bayes.py @@ -142,6 +142,52 @@ def generateNewTest(config,nb): def writeTests(config): generateNewTest(config,1) +def writeBenchmark(config): + someLists=[VECDIM,BAYESCLASSES] + + r=np.array([element for element in itertools.product(*someLists)]) + nbtests=len(VECDIM)*len(BAYESCLASSES)*2 + config.writeParam(2, r.reshape(nbtests)) + + params=[] + inputs=[] + referencepredict=[] + dims=[] + nbin=0 + nbparam=0; + + for vecDim, classNb in r: + gb = trainGaussian(classNb,vecDim) + p = [] + p += list(np.reshape(gb.theta_,np.size(gb.theta_))) + p += list(np.reshape(gb.sigma_,np.size(gb.sigma_))) + p += list(np.reshape(gb.class_prior_,np.size(gb.class_prior_))) + p.append(gb.epsilon_) + + params += p + dims += [nbin,nbparam] + nbparam = nbparam + len(p) + + v,c=newRandomVector(classNb,vecDim,PREDICTRATIO) + inputs += v + + nbin = nbin + len(v) + + y_pred = gb.predict([v]) + referencepredict.append(y_pred[0]) + + + inputs = np.array(inputs) + params = np.array(params) + referencepredict = np.array(referencepredict) + dims = np.array(dims) + + config.writeInput(2, inputs,"Inputs") + config.writeReferenceS16(2, referencepredict,"Predicts") + config.writeReference(2, params,"Params") + config.writeInputS16(2, dims,"DimsBench") + + def generatePatterns(): PATTERNDIR = os.path.join("Patterns","DSP","Bayes","Bayes") PARAMDIR = os.path.join("Parameters","DSP","Bayes","Bayes") @@ -152,5 +198,8 @@ def generatePatterns(): writeTests(configf32) writeTests(configf16) + writeBenchmark(configf32) + writeBenchmark(configf16) + if __name__ == '__main__': generatePatterns() \ No newline at end of file diff --git a/Testing/Patterns/DSP/Bayes/BayesF16/DimsBench2_s16.txt b/Testing/Patterns/DSP/Bayes/BayesF16/DimsBench2_s16.txt new file mode 100755 index 00000000..5fffc668 --- /dev/null +++ b/Testing/Patterns/DSP/Bayes/BayesF16/DimsBench2_s16.txt @@ -0,0 +1,38 @@ +H +18 +// 0 +0x0000 +// 0 +0x0000 +// 12 +0x000C +// 76 +0x004C +// 24 +0x0018 +// 202 +0x00CA +// 36 +0x0024 +// 303 +0x012F +// 50 +0x0032 +// 391 +0x0187 +// 64 +0x0040 +// 537 +0x0219 +// 78 +0x004E +// 654 +0x028E +// 98 +0x0062 +// 778 +0x030A +// 118 +0x0076 +// 984 +0x03D8 diff --git a/Testing/Patterns/DSP/Bayes/BayesF16/Inputs2_f16.txt b/Testing/Patterns/DSP/Bayes/BayesF16/Inputs2_f16.txt new file mode 100755 index 00000000..bd53b40f --- /dev/null +++ b/Testing/Patterns/DSP/Bayes/BayesF16/Inputs2_f16.txt @@ -0,0 +1,278 @@ +H +138 +// -0.040186 +0xa925 +// 1.073982 +0x3c4c +// 0.028277 +0x273d +// 0.011638 +0x21f5 +// 0.028431 +0x2747 +// 0.025892 +0x26a1 +// 0.019511 +0x24ff +// 0.010574 +0x216a +// -0.000066 +0x8455 +// 0.046097 +0x29e6 +// 0.016035 +0x241b +// -0.053561 +0xaadb +// 0.013593 +0x22f6 +// 0.021897 +0x259b +// 1.003003 +0x3c03 +// 0.038005 +0x28dd +// -0.023690 +0xa611 +// -0.011551 +0xa1ea +// 0.025625 +0x268f +// 0.012535 +0x226b +// 0.024917 +0x2661 +// -0.011525 +0xa1e7 +// -0.073949 +0xacbc +// 0.022863 +0x25da +// -0.048628 +0xaa39 +// 0.969280 +0x3bc1 +// -0.051026 +0xaa88 +// 0.049948 +0x2a65 +// -0.001735 +0x971b +// 0.028726 +0x275b +// -0.024842 +0xa65c +// -0.013571 +0xa2f3 +// -0.007444 +0x9f9f +// 0.012261 +0x2247 +// -0.006992 +0x9f29 +// -0.018144 +0xa4a5 +// 0.063726 +0x2c14 +// 0.014435 +0x2364 +// 1.070055 +0x3c48 +// 0.011378 +0x21d3 +// 0.020624 +0x2548 +// 0.012175 +0x223c +// -0.060880 +0xabcb +// -0.003673 +0x9b86 +// 0.066080 +0x2c3b +// -0.030483 +0xa7ce +// -0.026682 +0xa6d5 +// -0.041411 +0xa94d +// 0.030163 +0x27b9 +// -0.024941 +0xa663 +// -0.006896 +0x9f10 +// -0.024445 +0xa642 +// 0.018958 +0x24da +// -0.014716 +0xa389 +// 1.017171 +0x3c12 +// -0.024220 +0xa633 +// -0.043287 +0xa98a +// 0.029118 +0x2774 +// -0.008586 +0xa065 +// 0.029317 +0x2781 +// -0.000696 +0x91b4 +// 0.007286 +0x1f76 +// -0.044731 +0xa9ba +// -0.024640 +0xa64f +// -0.010476 +0xa15d +// 0.005055 +0x1d2d +// 0.038301 +0x28e7 +// 0.931977 +0x3b75 +// -0.028171 +0xa736 +// 0.037370 +0x28c9 +// -0.041713 +0xa957 +// -0.039430 +0xa90c +// 0.034133 +0x285e +// -0.059803 +0xaba8 +// -0.008422 +0xa050 +// 0.035178 +0x2881 +// 0.048290 +0x2a2e +// -0.018230 +0xa4ab +// 0.004761 +0x1ce0 +// -0.034561 +0xa86c +// 0.977494 +0x3bd2 +// -0.056634 +0xab40 +// 0.020863 +0x2557 +// 0.039257 +0x2906 +// 0.034689 +0x2871 +// 0.007272 +0x1f72 +// 0.072741 +0x2ca8 +// 0.011958 +0x221f +// -0.004184 +0x9c49 +// 0.080404 +0x2d25 +// -0.093746 +0xae00 +// 0.046717 +0x29fb +// 0.034230 +0x2862 +// 0.037576 +0x28cf +// -0.030905 +0xa7e9 +// -0.002138 +0x9861 +// -0.014129 +0xa33c +// 0.014546 +0x2373 +// 0.006195 +0x1e58 +// 0.979450 +0x3bd6 +// 0.008912 +0x2090 +// -0.036559 +0xa8ae +// -0.027870 +0xa722 +// -0.017747 +0xa48b +// 0.050483 +0x2a76 +// 0.073055 +0x2cad +// 0.046158 +0x29e9 +// -0.009757 +0xa0ff +// 0.085861 +0x2d7f +// -0.019322 +0xa4f2 +// -0.020828 +0xa555 +// -0.055185 +0xab10 +// -0.005840 +0x9dfb +// 0.007642 +0x1fd3 +// -0.012141 +0xa237 +// -0.005708 +0x9dd8 +// -0.073105 +0xacae +// 0.004961 +0x1d14 +// -0.025444 +0xa684 +// 0.038032 +0x28de +// -0.023309 +0xa5f8 +// 0.984341 +0x3be0 +// 0.057406 +0x2b59 +// 0.038917 +0x28fb +// -0.034246 +0xa862 +// -0.030406 +0xa7c9 +// -0.015718 +0xa406 +// -0.025802 +0xa69b +// 0.081464 +0x2d37 +// 0.026505 +0x26c9 +// 0.006918 +0x1f16 +// 0.029659 +0x2798 +// 0.091538 +0x2ddc +// 0.065798 +0x2c36 +// 0.016095 +0x241f +// 0.019768 +0x250f +// 0.023790 +0x2617 +// -0.034357 +0xa866 diff --git a/Testing/Patterns/DSP/Bayes/BayesF16/Params2_f16.txt b/Testing/Patterns/DSP/Bayes/BayesF16/Params2_f16.txt new file mode 100755 index 00000000..aa1bdaf4 --- /dev/null +++ b/Testing/Patterns/DSP/Bayes/BayesF16/Params2_f16.txt @@ -0,0 +1,2300 @@ +H +1149 +// 0.983829 +0x3bdf +// 0.005621 +0x1dc2 +// 0.004413 +0x1c85 +// -0.017935 +0xa497 +// -0.034612 +0xa86e +// -0.025683 +0xa693 +// -0.010004 +0xa11f +// -0.005606 +0x9dbe +// 0.024607 +0x264d +// -0.001692 +0x96ee +// 0.043807 +0x299b +// -0.003162 +0x9a7a +// -0.031019 +0xa7f1 +// 0.993772 +0x3bf3 +// 0.021192 +0x256d +// -0.003230 +0x9a9e +// -0.034274 +0xa863 +// 0.054109 +0x2aed +// -0.007622 +0x9fce +// -0.030267 +0xa7c0 +// -0.033150 +0xa83e +// 0.042005 +0x2960 +// -0.059618 +0xaba2 +// -0.010150 +0xa132 +// 0.017402 +0x2474 +// 0.009890 +0x2110 +// 1.056018 +0x3c39 +// -0.009728 +0xa0fb +// -0.041447 +0xa94e +// -0.020208 +0xa52c +// -0.015372 +0xa3df +// 0.029051 +0x2770 +// 0.026884 +0x26e2 +// -0.012022 +0xa228 +// -0.019280 +0xa4f0 +// -0.006548 +0x9eb4 +// 0.005342 +0x1d78 +// 0.008358 +0x2048 +// 0.007740 +0x1fed +// 0.004908 +0x1d07 +// 0.006067 +0x1e36 +// 0.008801 +0x2082 +// 0.007712 +0x1fe6 +// 0.010846 +0x218e +// 0.001426 +0x15d7 +// 0.005154 +0x1d47 +// 0.009515 +0x20df +// 0.003042 +0x1a3b +// 0.004754 +0x1cde +// 0.013943 +0x2324 +// 0.001865 +0x17a3 +// 0.002782 +0x19b3 +// 0.002673 +0x1979 +// 0.006625 +0x1ec9 +// 0.002138 +0x1861 +// 0.008970 +0x2098 +// 0.010279 +0x2143 +// 0.003375 +0x1aea +// 0.008186 +0x2031 +// 0.006111 +0x1e42 +// 0.008978 +0x2099 +// 0.002134 +0x185f +// 0.008790 +0x2080 +// 0.005920 +0x1e10 +// 0.005103 +0x1d3a +// 0.005647 +0x1dc8 +// 0.014678 +0x2384 +// 0.007364 +0x1f8a +// 0.012766 +0x2289 +// 0.007028 +0x1f32 +// 0.006743 +0x1ee8 +// 0.006864 +0x1f07 +// 0.366667 +0x35de +// 0.200000 +0x3266 +// 0.433333 +0x36ef +// 0.000000 +0x0 +// 0.991996 +0x3bf0 +// 0.000064 +0x42f +// -0.048482 +0xaa35 +// 0.034834 +0x2875 +// -0.034249 +0xa862 +// 0.006099 +0x1e3f +// 0.004956 +0x1d13 +// -0.011214 +0xa1be +// 0.046157 +0x29e8 +// -0.069255 +0xac6f +// 0.050094 +0x2a69 +// 0.018516 +0x24bd +// -0.013443 +0xa2e2 +// 1.021038 +0x3c16 +// -0.026793 +0xa6dc +// 0.024903 +0x2660 +// 0.050317 +0x2a71 +// 0.028467 +0x274a +// -0.003057 +0x9a43 +// 0.051589 +0x2a9a +// 0.017025 +0x245c +// 0.039709 +0x2915 +// -0.042718 +0xa978 +// 0.004809 +0x1ced +// -0.002606 +0x9956 +// -0.001341 +0x957e +// 1.085785 +0x3c58 +// 0.012466 +0x2262 +// -0.009553 +0xa0e4 +// -0.023658 +0xa60e +// -0.059324 +0xab98 +// -0.070892 +0xac8a +// 0.001411 +0x15c8 +// -0.077300 +0xacf2 +// 0.015077 +0x23b8 +// -0.011474 +0xa1e0 +// -0.057030 +0xab4d +// -0.002849 +0x99d6 +// 0.032491 +0x2829 +// 1.033893 +0x3c23 +// -0.003619 +0x9b69 +// 0.027789 +0x271d +// 0.021422 +0x257c +// -0.025661 +0xa692 +// -0.037423 +0xa8ca +// -0.008156 +0xa02d +// -0.049411 +0xaa53 +// 0.039484 +0x290e +// -0.008153 +0xa02d +// -0.025152 +0xa670 +// 0.050802 +0x2a81 +// -0.028082 +0xa730 +// 1.008863 +0x3c09 +// 0.015980 +0x2417 +// -0.019183 +0xa4e9 +// 0.042806 +0x297b +// 0.019733 +0x250d +// -0.023283 +0xa5f6 +// -0.025813 +0xa69c +// -0.001019 +0x942c +// 0.002248 +0x189b +// 0.005164 +0x1d4a +// 0.007565 +0x1fbf +// 0.011771 +0x2207 +// 0.009123 +0x20ac +// 0.016237 +0x2428 +// 0.007859 +0x2006 +// 0.010163 +0x2134 +// 0.004596 +0x1cb5 +// 0.000385 +0xe50 +// 0.006118 +0x1e44 +// 0.004283 +0x1c63 +// 0.005680 +0x1dd1 +// 0.006780 +0x1ef1 +// 0.006990 +0x1f29 +// 0.006166 +0x1e50 +// 0.001365 +0x1598 +// 0.010322 +0x2149 +// 0.005864 +0x1e01 +// 0.001268 +0x1531 +// 0.007482 +0x1fa9 +// 0.014206 +0x2346 +// 0.001235 +0x150f +// 0.006496 +0x1ea7 +// 0.009693 +0x20f6 +// 0.009820 +0x2107 +// 0.011140 +0x21b4 +// 0.011330 +0x21cd +// 0.006314 +0x1e77 +// 0.002880 +0x19e6 +// 0.001791 +0x1756 +// 0.002772 +0x19ae +// 0.006212 +0x1e5c +// 0.002470 +0x190f +// 0.005798 +0x1df0 +// 0.005157 +0x1d48 +// 0.004189 +0x1c4a +// 0.012427 +0x225d +// 0.009306 +0x20c4 +// 0.000279 +0xc94 +// 0.006300 +0x1e74 +// 0.003190 +0x1a89 +// 0.010066 +0x2127 +// 0.008780 +0x207f +// 0.006215 +0x1e5d +// 0.000484 +0xfed +// 0.002267 +0x18a4 +// 0.001979 +0x180d +// 0.008777 +0x207e +// 0.005728 +0x1dde +// 0.008357 +0x2047 +// 0.004168 +0x1c44 +// 0.005142 +0x1d44 +// 0.003391 +0x1af2 +// 0.001894 +0x17c2 +// 0.006299 +0x1e73 +// 0.006492 +0x1ea6 +// 0.002118 +0x1857 +// 0.004394 +0x1c80 +// 0.002669 +0x1978 +// 0.233333 +0x3377 +// 0.166667 +0x3155 +// 0.300000 +0x34cd +// 0.100000 +0x2e66 +// 0.200000 +0x3266 +// 0.000000 +0x0 +// 0.998076 +0x3bfc +// 0.000449 +0xf5d +// 0.011419 +0x21d9 +// 0.024029 +0x2627 +// 0.027622 +0x2712 +// 0.021298 +0x2574 +// 0.038396 +0x28ea +// -0.029632 +0xa796 +// 0.005077 +0x1d33 +// -0.024558 +0xa649 +// -0.035566 +0xa88d +// -0.034119 +0xa85e +// 0.016193 +0x2425 +// 0.993976 +0x3bf4 +// 0.044072 +0x29a4 +// -0.090755 +0xadcf +// -0.012505 +0xa267 +// -0.017968 +0xa49a +// -0.024547 +0xa649 +// -0.004409 +0x9c84 +// -0.037411 +0xa8ca +// -0.010381 +0xa151 +// 0.066773 +0x2c46 +// -0.008017 +0xa01b +// -0.030000 +0xa7ae +// -0.017411 +0xa475 +// 1.015866 +0x3c10 +// 0.010520 +0x2163 +// -0.005253 +0x9d61 +// 0.054615 +0x2afe +// 0.012195 +0x223e +// -0.011843 +0xa210 +// 0.032920 +0x2837 +// 0.026304 +0x26bc +// -0.044008 +0xa9a2 +// -0.045924 +0xa9e1 +// -0.016752 +0xa44a +// -0.018524 +0xa4be +// -0.059188 +0xab93 +// 1.039033 +0x3c28 +// -0.027764 +0xa71c +// -0.039217 +0xa905 +// 0.021946 +0x259e +// 0.004339 +0x1c72 +// 0.033759 +0x2852 +// 0.027174 +0x26f5 +// 0.025997 +0x26a8 +// 0.027110 +0x26f1 +// 0.005142 +0x1d44 +// 0.006615 +0x1ec6 +// 0.007552 +0x1fbc +// 0.006223 +0x1e5f +// 0.004708 +0x1cd2 +// 0.014057 +0x2332 +// 0.008549 +0x2061 +// 0.006179 +0x1e54 +// 0.004217 +0x1c51 +// 0.006051 +0x1e32 +// 0.005938 +0x1e14 +// 0.007089 +0x1f42 +// 0.000548 +0x107c +// 0.000681 +0x1195 +// 0.004063 +0x1c29 +// 0.003811 +0x1bce +// 0.004112 +0x1c36 +// 0.000694 +0x11af +// 0.003394 +0x1af3 +// 0.007680 +0x1fdd +// 0.004610 +0x1cb8 +// 0.008612 +0x2069 +// 0.004125 +0x1c39 +// 0.010112 +0x212d +// 0.004761 +0x1ce0 +// 0.001534 +0x1648 +// 0.003329 +0x1ad1 +// 0.002283 +0x18ad +// 0.004970 +0x1d17 +// 0.010224 +0x213c +// 0.001214 +0x14f9 +// 0.004092 +0x1c31 +// 0.006807 +0x1ef9 +// 0.001200 +0x14ea +// 0.001904 +0x17cc +// 0.004903 +0x1d05 +// 0.004531 +0x1ca4 +// 0.001415 +0x15cc +// 0.005405 +0x1d89 +// 0.002557 +0x193c +// 0.003822 +0x1bd4 +// 0.009893 +0x2111 +// 0.008985 +0x209a +// 0.005444 +0x1d93 +// 0.014109 +0x2339 +// 0.009028 +0x209f +// 0.003507 +0x1b2f +// 0.002064 +0x183a +// 0.433333 +0x36ef +// 0.133333 +0x3044 +// 0.200000 +0x3266 +// 0.233333 +0x3377 +// 0.000000 +0x0 +// 0.971269 +0x3bc5 +// -0.003143 +0x9a70 +// 0.001986 +0x1811 +// 0.026633 +0x26d1 +// -0.006280 +0x9e6e +// 0.018917 +0x24d8 +// -0.039293 +0xa908 +// 0.018636 +0x24c5 +// 0.035149 +0x2880 +// -0.039837 +0xa919 +// 0.022887 +0x25dc +// 0.042414 +0x296e +// -0.000888 +0x9347 +// 0.006803 +0x1ef7 +// -0.046344 +0xa9ef +// 1.009025 +0x3c09 +// -0.004560 +0x9cab +// -0.004314 +0x9c6b +// 0.007466 +0x1fa5 +// -0.022585 +0xa5c8 +// -0.007379 +0x9f8e +// 0.014810 +0x2395 +// -0.068459 +0xac62 +// 0.011228 +0x21c0 +// -0.011007 +0xa1a3 +// 0.001198 +0x14e9 +// 0.031290 +0x2801 +// -0.012299 +0xa24c +// 0.009923 +0x2115 +// 0.020550 +0x2543 +// 1.027770 +0x3c1c +// 0.003234 +0x1a9f +// 0.000416 +0xed2 +// -0.015961 +0xa416 +// -0.028223 +0xa73a +// 0.069423 +0x2c71 +// 0.031433 +0x2806 +// -0.008048 +0xa01f +// -0.002840 +0x99d1 +// 0.007360 +0x1f89 +// -0.032756 +0xa831 +// -0.015202 +0xa3c9 +// 0.003024 +0x1a31 +// 0.006820 +0x1efc +// 0.003414 +0x1afe +// 0.006025 +0x1e2c +// 0.007663 +0x1fd9 +// 0.005078 +0x1d33 +// 0.006959 +0x1f20 +// 0.003006 +0x1a28 +// 0.004072 +0x1c2c +// 0.005361 +0x1d7d +// 0.003986 +0x1c15 +// 0.005181 +0x1d4e +// 0.002152 +0x1868 +// 0.009010 +0x209d +// 0.007217 +0x1f64 +// 0.016757 +0x244a +// 0.007052 +0x1f39 +// 0.006439 +0x1e98 +// 0.004422 +0x1c87 +// 0.003751 +0x1bae +// 0.004073 +0x1c2c +// 0.002142 +0x1863 +// 0.009226 +0x20b9 +// 0.007368 +0x1f8c +// 0.003888 +0x1bf7 +// 0.005234 +0x1d5c +// 0.003924 +0x1c05 +// 0.017290 +0x246d +// 0.008486 +0x2058 +// 0.005753 +0x1de4 +// 0.002745 +0x199f +// 0.011967 +0x2220 +// 0.003969 +0x1c11 +// 0.004529 +0x1ca3 +// 0.006237 +0x1e63 +// 0.005567 +0x1db3 +// 0.002463 +0x190b +// 0.004560 +0x1cab +// 0.003633 +0x1b71 +// 0.004293 +0x1c65 +// 0.003272 +0x1ab3 +// 0.006308 +0x1e76 +// 0.300000 +0x34cd +// 0.333333 +0x3555 +// 0.366667 +0x35de +// 0.000000 +0x0 +// 0.905044 +0x3b3e +// -0.079193 +0xad12 +// 0.087309 +0x2d96 +// 0.035740 +0x2893 +// -0.011640 +0xa1f6 +// 0.000154 +0x90e +// -0.056183 +0xab31 +// 0.014047 +0x2331 +// 0.018727 +0x24cb +// -0.066437 +0xac41 +// -0.048056 +0xaa27 +// -0.014269 +0xa34e +// 0.053214 +0x2ad0 +// 0.005379 +0x1d82 +// -0.018581 +0xa4c2 +// 0.991452 +0x3bee +// 0.017383 +0x2473 +// 0.026769 +0x26da +// -0.002503 +0x9920 +// 0.008295 +0x203f +// 0.007145 +0x1f51 +// -0.017733 +0xa48a +// 0.005271 +0x1d66 +// 0.027749 +0x271b +// -0.016556 +0xa43d +// 0.005909 +0x1e0d +// -0.016783 +0xa44c +// 0.034046 +0x285c +// 0.095878 +0x2e23 +// 0.024285 +0x2638 +// 0.986227 +0x3be4 +// 0.018565 +0x24c1 +// -0.026896 +0xa6e3 +// 0.013260 +0x22ca +// 0.030846 +0x27e5 +// 0.013213 +0x22c4 +// 0.002379 +0x18df +// 0.085933 +0x2d80 +// 0.062432 +0x2bfe +// 0.008810 +0x2083 +// -0.052646 +0xaabd +// -0.026287 +0xa6bb +// -0.005393 +0x9d86 +// -0.023362 +0xa5fb +// 0.009209 +0x20b7 +// 0.995078 +0x3bf6 +// -0.003777 +0x9bbc +// -0.029915 +0xa7a9 +// 0.029764 +0x279f +// -0.063064 +0xac09 +// 0.000602 +0x10ee +// 0.010906 +0x2196 +// 0.013821 +0x2314 +// -0.012857 +0xa295 +// 0.006214 +0x1e5d +// 0.023640 +0x260d +// 0.014351 +0x2359 +// 0.014051 +0x2332 +// 0.081582 +0x2d39 +// 0.055543 +0x2b1c +// 0.991917 +0x3bef +// -0.011123 +0xa1b2 +// 0.043077 +0x2984 +// -0.006541 +0x9eb3 +// -0.018858 +0xa4d4 +// -0.020582 +0xa545 +// 0.046565 +0x29f6 +// -0.006704 +0x9edd +// -0.023166 +0xa5ee +// 0.046424 +0x29f1 +// 0.000045 +0x2f1 +// 0.003654 +0x1b7c +// 0.006373 +0x1e87 +// 0.000293 +0xcce +// 0.006858 +0x1f06 +// 0.003267 +0x1ab1 +// 0.015803 +0x240c +// 0.005847 +0x1dfd +// 0.002778 +0x19b0 +// 0.000175 +0x9bf +// 0.000003 +0x31 +// 0.002632 +0x1964 +// 0.001633 +0x16b0 +// 0.000146 +0x8c7 +// 0.006947 +0x1f1d +// 0.007510 +0x1fb1 +// 0.006086 +0x1e3b +// 0.018880 +0x24d5 +// 0.008758 +0x207c +// 0.008562 +0x2062 +// 0.010649 +0x2174 +// 0.007355 +0x1f88 +// 0.005341 +0x1d78 +// 0.004716 +0x1cd4 +// 0.002233 +0x1893 +// 0.005145 +0x1d45 +// 0.001431 +0x15dd +// 0.005516 +0x1da6 +// 0.007374 +0x1f8d +// 0.003652 +0x1b7a +// 0.014544 +0x2372 +// 0.010464 +0x215c +// 0.002995 +0x1a22 +// 0.003400 +0x1af6 +// 0.002946 +0x1a09 +// 0.005225 +0x1d5a +// 0.002990 +0x1a20 +// 0.003803 +0x1bca +// 0.004629 +0x1cbe +// 0.005241 +0x1d5e +// 0.002228 +0x1890 +// 0.004766 +0x1ce1 +// 0.006798 +0x1ef6 +// 0.003195 +0x1a8b +// 0.002991 +0x1a20 +// 0.005612 +0x1dbf +// 0.008971 +0x2098 +// 0.010985 +0x21a0 +// 0.001752 +0x172d +// 0.003582 +0x1b56 +// 0.006281 +0x1e6e +// 0.002279 +0x18ab +// 0.001597 +0x168a +// 0.006810 +0x1ef9 +// 0.002483 +0x1916 +// 0.003870 +0x1bed +// 0.006674 +0x1ed5 +// 0.010337 +0x214b +// 0.005812 +0x1df4 +// 0.002680 +0x197d +// 0.001265 +0x152e +// 0.005249 +0x1d60 +// 0.001728 +0x1714 +// 0.015574 +0x23f9 +// 0.005606 +0x1dbe +// 0.007506 +0x1fb0 +// 0.007687 +0x1fdf +// 0.002664 +0x1975 +// 0.004131 +0x1c3b +// 0.007116 +0x1f49 +// 0.100000 +0x2e66 +// 0.233333 +0x3377 +// 0.166667 +0x3155 +// 0.266667 +0x3444 +// 0.233333 +0x3377 +// 0.000000 +0x0 +// 0.981625 +0x3bda +// -0.014330 +0xa356 +// 0.052872 +0x2ac5 +// -0.002490 +0x991a +// 0.000371 +0xe13 +// -0.005570 +0x9db4 +// -0.002955 +0x9a0d +// -0.058794 +0xab87 +// 0.007909 +0x200d +// -0.028682 +0xa758 +// -0.008982 +0xa099 +// 0.017012 +0x245b +// 0.003925 +0x1c05 +// -0.005353 +0x9d7b +// -0.038124 +0xa8e1 +// 0.991049 +0x3bee +// -0.007405 +0x9f95 +// -0.059803 +0xaba8 +// -0.068785 +0xac67 +// 0.081615 +0x2d39 +// -0.092099 +0xade5 +// 0.002064 +0x183a +// -0.044844 +0xa9bd +// 0.000728 +0x11f7 +// -0.023448 +0xa601 +// 0.041139 +0x2944 +// -0.041885 +0xa95c +// 0.030366 +0x27c6 +// -0.017860 +0xa492 +// 0.011754 +0x2205 +// 0.992877 +0x3bf1 +// -0.019659 +0xa508 +// -0.045895 +0xa9e0 +// 0.027425 +0x2705 +// -0.059876 +0xabaa +// -0.036970 +0xa8bb +// -0.007056 +0x9f3a +// 0.029889 +0x27a7 +// -0.000105 +0x86df +// 0.030827 +0x27e4 +// 0.029257 +0x277d +// 0.032885 +0x2836 +// -0.021728 +0xa590 +// 0.019009 +0x24de +// -0.005838 +0x9dfa +// 0.977602 +0x3bd2 +// -0.031426 +0xa806 +// 0.026957 +0x26e7 +// -0.022066 +0xa5a6 +// 0.020610 +0x2547 +// -0.004495 +0x9c9a +// 0.039204 +0x2905 +// 0.026878 +0x26e1 +// 0.037662 +0x28d2 +// -0.003995 +0x9c17 +// -0.036232 +0xa8a3 +// 0.004299 +0x1c67 +// 0.006944 +0x1f1c +// 0.006843 +0x1f02 +// 0.006389 +0x1e8b +// 0.007856 +0x2006 +// 0.009199 +0x20b6 +// 0.001246 +0x151a +// 0.001694 +0x16f0 +// 0.006286 +0x1e70 +// 0.003100 +0x1a59 +// 0.011731 +0x2202 +// 0.007379 +0x1f8e +// 0.014155 +0x233f +// 0.009236 +0x20bb +// 0.000772 +0x1252 +// 0.002716 +0x1990 +// 0.004776 +0x1ce4 +// 0.011725 +0x2201 +// 0.000488 +0xffe +// 0.002058 +0x1837 +// 0.001533 +0x1648 +// 0.013282 +0x22cd +// 0.001242 +0x1516 +// 0.000966 +0x13ea +// 0.000292 +0xcc8 +// 0.002555 +0x193b +// 0.005649 +0x1dc9 +// 0.000833 +0x12d3 +// 0.009557 +0x20e5 +// 0.003449 +0x1b10 +// 0.002073 +0x183f +// 0.005307 +0x1d6f +// 0.012261 +0x2247 +// 0.002705 +0x198a +// 0.006404 +0x1e8f +// 0.005212 +0x1d56 +// 0.008766 +0x207d +// 0.010182 +0x2137 +// 0.002507 +0x1922 +// 0.005607 +0x1dbe +// 0.005796 +0x1def +// 0.006438 +0x1e98 +// 0.004974 +0x1d18 +// 0.003038 +0x1a39 +// 0.004250 +0x1c5a +// 0.011413 +0x21d8 +// 0.003750 +0x1bae +// 0.010930 +0x2199 +// 0.015430 +0x23e6 +// 0.005228 +0x1d5a +// 0.007458 +0x1fa3 +// 0.009219 +0x20b8 +// 0.005136 +0x1d42 +// 0.003843 +0x1bdf +// 0.005127 +0x1d40 +// 0.008141 +0x202b +// 0.233333 +0x3377 +// 0.100000 +0x2e66 +// 0.300000 +0x34cd +// 0.366667 +0x35de +// 0.000000 +0x0 +// 0.967579 +0x3bbe +// 0.023447 +0x2601 +// 0.002812 +0x19c2 +// 0.011243 +0x21c2 +// 0.004735 +0x1cd9 +// -0.029234 +0xa77c +// 0.048895 +0x2a42 +// 0.012937 +0x22a0 +// -0.003350 +0x9adc +// -0.018766 +0xa4ce +// 0.002470 +0x190f +// 0.033146 +0x283e +// 0.011227 +0x21c0 +// 0.034566 +0x286d +// 0.029610 +0x2795 +// 0.017725 +0x248a +// -0.039920 +0xa91c +// -0.015350 +0xa3dc +// 0.027606 +0x2711 +// -0.013417 +0xa2df +// 0.049936 +0x2a64 +// 0.995874 +0x3bf8 +// 0.027686 +0x2716 +// -0.036476 +0xa8ab +// 0.036472 +0x28ab +// -0.034394 +0xa867 +// -0.042104 +0xa964 +// 0.025581 +0x268c +// 0.030308 +0x27c2 +// 0.015266 +0x23d1 +// 0.006501 +0x1ea8 +// 0.035584 +0x288e +// -0.039081 +0xa901 +// -0.038909 +0xa8fb +// 0.061609 +0x2be3 +// 0.065557 +0x2c32 +// 0.049145 +0x2a4a +// 0.022806 +0x25d7 +// -0.001179 +0x94d4 +// 0.052704 +0x2abf +// -0.015707 +0xa405 +// 0.002227 +0x1890 +// 1.017148 +0x3c12 +// 0.017785 +0x248e +// 0.008060 +0x2020 +// 0.012578 +0x2271 +// -0.001943 +0x97f5 +// 0.013778 +0x230e +// 0.012295 +0x224c +// -0.028240 +0xa73b +// 0.042330 +0x296b +// -0.003045 +0x9a3c +// 0.020762 +0x2551 +// 0.010010 +0x2120 +// -0.013445 +0xa2e2 +// -0.040728 +0xa937 +// 0.036249 +0x28a4 +// -0.023856 +0xa61b +// -0.010488 +0xa15f +// -0.055079 +0xab0d +// 0.006365 +0x1e85 +// 0.006684 +0x1ed8 +// 0.003667 +0x1b83 +// 0.010390 +0x2152 +// 0.007511 +0x1fb1 +// 0.006629 +0x1eca +// 0.009554 +0x20e4 +// 0.004205 +0x1c4e +// 0.010559 +0x2168 +// 0.007217 +0x1f64 +// 0.005888 +0x1e07 +// 0.004495 +0x1c9a +// 0.007504 +0x1faf +// 0.006064 +0x1e36 +// 0.007511 +0x1fb1 +// 0.009736 +0x20fc +// 0.005567 +0x1db3 +// 0.008183 +0x2031 +// 0.006136 +0x1e49 +// 0.006936 +0x1f1a +// 0.004825 +0x1cf1 +// 0.004426 +0x1c88 +// 0.000923 +0x138f +// 0.002571 +0x1944 +// 0.005619 +0x1dc1 +// 0.006783 +0x1ef2 +// 0.004658 +0x1cc5 +// 0.004189 +0x1c4a +// 0.004888 +0x1d01 +// 0.003921 +0x1c04 +// 0.004507 +0x1c9e +// 0.001889 +0x17bc +// 0.003513 +0x1b32 +// 0.003001 +0x1a25 +// 0.009841 +0x210a +// 0.005696 +0x1dd5 +// 0.013999 +0x232b +// 0.005077 +0x1d33 +// 0.002357 +0x18d4 +// 0.000556 +0x108d +// 0.005657 +0x1dcb +// 0.003327 +0x1ad0 +// 0.013182 +0x22c0 +// 0.006923 +0x1f17 +// 0.005564 +0x1db3 +// 0.007585 +0x1fc4 +// 0.010236 +0x213e +// 0.008123 +0x2029 +// 0.005855 +0x1dff +// 0.004322 +0x1c6d +// 0.006654 +0x1ed0 +// 0.005053 +0x1d2d +// 0.007050 +0x1f38 +// 0.004594 +0x1cb4 +// 0.005685 +0x1dd2 +// 0.008543 +0x2060 +// 0.005052 +0x1d2c +// 0.006504 +0x1ea9 +// 0.008613 +0x2069 +// 0.003754 +0x1bb0 +// 0.333333 +0x3555 +// 0.200000 +0x3266 +// 0.466667 +0x3777 +// 0.000000 +0x0 +// 1.063277 +0x3c41 +// 0.041653 +0x2955 +// 0.046310 +0x29ed +// -0.033214 +0xa840 +// 0.031142 +0x27f9 +// -0.014593 +0xa379 +// 0.046086 +0x29e6 +// 0.015693 +0x2404 +// 0.040958 +0x293e +// -0.026694 +0xa6d5 +// -0.067025 +0xac4a +// -0.067382 +0xac50 +// -0.038725 +0xa8f5 +// -0.025131 +0xa66f +// -0.029978 +0xa7ad +// 0.052882 +0x2ac5 +// -0.046081 +0xa9e6 +// 0.029975 +0x27ac +// 0.056737 +0x2b43 +// -0.028129 +0xa733 +// 0.000161 +0x949 +// 0.929641 +0x3b70 +// -0.005531 +0x9daa +// -0.016117 +0xa420 +// -0.008923 +0xa092 +// 0.026047 +0x26ab +// -0.027745 +0xa71a +// -0.000998 +0x9417 +// 0.010485 +0x215e +// -0.007922 +0xa00e +// 0.011964 +0x2220 +// 0.004242 +0x1c58 +// -0.010875 +0xa191 +// 0.011644 +0x21f6 +// -0.002994 +0x9a22 +// 0.015649 +0x2402 +// -0.018631 +0xa4c5 +// 0.029276 +0x277f +// -0.004582 +0x9cb1 +// 0.022715 +0x25d1 +// -0.002096 +0x984b +// 0.005727 +0x1ddd +// 0.994723 +0x3bf5 +// 0.013744 +0x2309 +// -0.073965 +0xacbc +// 0.070330 +0x2c80 +// -0.011626 +0xa1f4 +// -0.097178 +0xae38 +// -0.053329 +0xaad3 +// 0.001767 +0x173c +// -0.081807 +0xad3c +// 0.072624 +0x2ca6 +// 0.030359 +0x27c6 +// -0.048142 +0xaa2a +// 0.022609 +0x25ca +// 0.095243 +0x2e18 +// -0.060545 +0xabc0 +// -0.052795 +0xaac2 +// 0.031856 +0x2814 +// -0.064936 +0xac28 +// -0.036324 +0xa8a6 +// -0.035251 +0xa883 +// -0.067697 +0xac55 +// 1.050033 +0x3c33 +// 0.042768 +0x2979 +// 0.005250 +0x1d60 +// -0.006535 +0x9eb1 +// 0.051923 +0x2aa5 +// -0.028510 +0xa74c +// 0.017715 +0x2489 +// -0.005429 +0x9d8f +// 0.007561 +0x1fbe +// 0.017667 +0x2486 +// -0.007122 +0x9f4b +// 0.061278 +0x2bd8 +// 0.036483 +0x28ab +// 0.031031 +0x27f2 +// 0.002805 +0x19bf +// 0.046629 +0x29f8 +// -0.025856 +0xa69f +// -0.052087 +0xaaab +// 0.038887 +0x28fa +// 0.026752 +0x26d9 +// -0.049500 +0xaa56 +// 1.047887 +0x3c31 +// 0.043403 +0x298e +// -0.009560 +0xa0e5 +// 0.016593 +0x243f +// -0.005419 +0x9d8d +// -0.013011 +0xa2a9 +// -0.011795 +0xa20a +// -0.035840 +0xa896 +// 0.013696 +0x2303 +// -0.016728 +0xa448 +// -0.013624 +0xa2fa +// -0.011451 +0xa1dd +// -0.051927 +0xaaa6 +// 0.024293 +0x2638 +// 0.035029 +0x287c +// 0.026906 +0x26e3 +// 0.002408 +0x18ee +// 0.008820 +0x2084 +// 0.003416 +0x1aff +// 0.002308 +0x18ba +// 0.011243 +0x21c2 +// 0.005334 +0x1d76 +// 0.004369 +0x1c79 +// 0.007895 +0x200b +// 0.001742 +0x1723 +// 0.009176 +0x20b3 +// 0.006686 +0x1ed9 +// 0.001453 +0x15f4 +// 0.001483 +0x1613 +// 0.000821 +0x12bb +// 0.000475 +0xfc7 +// 0.008190 +0x2032 +// 0.000353 +0xdc7 +// 0.006880 +0x1f0c +// 0.006081 +0x1e3a +// 0.003974 +0x1c12 +// 0.010900 +0x2195 +// 0.004621 +0x1cbb +// 0.009100 +0x20a9 +// 0.004823 +0x1cf0 +// 0.005414 +0x1d8b +// 0.015832 +0x240e +// 0.004459 +0x1c91 +// 0.005252 +0x1d61 +// 0.002777 +0x19b0 +// 0.015180 +0x23c6 +// 0.007420 +0x1f99 +// 0.005974 +0x1e1e +// 0.008068 +0x2021 +// 0.003297 +0x1ac1 +// 0.005875 +0x1e04 +// 0.005434 +0x1d90 +// 0.003374 +0x1ae9 +// 0.004719 +0x1cd5 +// 0.009633 +0x20ef +// 0.005710 +0x1dd9 +// 0.002023 +0x1824 +// 0.017076 +0x245f +// 0.004618 +0x1cbb +// 0.000311 +0xd18 +// 0.005499 +0x1da1 +// 0.003243 +0x1aa4 +// 0.000202 +0xa9c +// 0.004522 +0x1ca1 +// 0.002799 +0x19bc +// 0.000902 +0x1364 +// 0.002445 +0x1902 +// 0.004116 +0x1c37 +// 0.000085 +0x58f +// 0.001600 +0x168e +// 0.000197 +0xa78 +// 0.000198 +0xa7d +// 0.004648 +0x1cc2 +// 0.014940 +0x23a6 +// 0.015587 +0x23fb +// 0.000384 +0xe4a +// 0.016914 +0x2454 +// 0.002827 +0x19ca +// 0.001939 +0x17f2 +// 0.002255 +0x189e +// 0.003414 +0x1afe +// 0.004462 +0x1c92 +// 0.004542 +0x1ca7 +// 0.005309 +0x1d70 +// 0.003854 +0x1be5 +// 0.004492 +0x1c9a +// 0.002773 +0x19ae +// 0.004747 +0x1cdc +// 0.002644 +0x196a +// 0.002899 +0x19f0 +// 0.004971 +0x1d17 +// 0.007819 +0x2001 +// 0.002160 +0x186c +// 0.005436 +0x1d91 +// 0.004858 +0x1cfa +// 0.008895 +0x208e +// 0.004086 +0x1c2f +// 0.005610 +0x1dbf +// 0.013561 +0x22f1 +// 0.003275 +0x1ab5 +// 0.003871 +0x1bee +// 0.003725 +0x1ba1 +// 0.002919 +0x19fa +// 0.001892 +0x17c0 +// 0.016312 +0x242d +// 0.002443 +0x1901 +// 0.005787 +0x1ded +// 0.010466 +0x215c +// 0.003666 +0x1b82 +// 0.007059 +0x1f3a +// 0.004922 +0x1d0a +// 0.006142 +0x1e4a +// 0.012182 +0x223d +// 0.005958 +0x1e1a +// 0.010139 +0x2131 +// 0.005943 +0x1e16 +// 0.133333 +0x3044 +// 0.300000 +0x34cd +// 0.100000 +0x2e66 +// 0.233333 +0x3377 +// 0.233333 +0x3377 +// 0.000000 +0x0 +// 1.028548 +0x3c1d +// 0.027336 +0x26ff +// -0.005153 +0x9d47 +// 0.018289 +0x24af +// 0.046201 +0x29ea +// 0.007224 +0x1f66 +// 0.019545 +0x2501 +// -0.026236 +0xa6b7 +// 0.000988 +0x140c +// 0.005378 +0x1d82 +// -0.001042 +0x9445 +// -0.002396 +0x98e8 +// -0.016217 +0xa427 +// 0.015103 +0x23bc +// 0.039767 +0x2917 +// 0.017108 +0x2461 +// 0.017201 +0x2467 +// 0.025127 +0x266f +// 0.015227 +0x23cc +// -0.009198 +0xa0b6 +// 0.018853 +0x24d4 +// 0.988525 +0x3be8 +// -0.016781 +0xa44c +// 0.001969 +0x1808 +// -0.009226 +0xa0b9 +// -0.003193 +0x9a8a +// 0.021779 +0x2593 +// -0.006032 +0x9e2d +// 0.001450 +0x15f0 +// -0.017492 +0xa47a +// -0.002004 +0x981b +// 0.012554 +0x226d +// 0.002477 +0x1913 +// -0.038822 +0xa8f8 +// -0.038026 +0xa8de +// 0.013399 +0x22dc +// 0.014126 +0x233b +// 0.019024 +0x24df +// 0.009466 +0x20d9 +// -0.000646 +0x914a +// 0.019979 +0x251d +// 0.028943 +0x2769 +// 1.024356 +0x3c19 +// -0.006471 +0x9ea0 +// 0.046303 +0x29ed +// 0.060638 +0x2bc3 +// 0.010626 +0x2171 +// -0.043666 +0xa997 +// -0.038273 +0xa8e6 +// -0.011299 +0xa1c9 +// -0.003966 +0x9c10 +// 0.004703 +0x1cd1 +// -0.002157 +0x986b +// -0.007168 +0x9f57 +// 0.026133 +0x26b1 +// -0.069802 +0xac78 +// 0.007683 +0x1fde +// -0.020998 +0xa560 +// 0.000054 +0x38b +// 0.006522 +0x1eae +// 0.028875 +0x2764 +// -0.032828 +0xa834 +// -0.003380 +0x9aec +// 0.939279 +0x3b84 +// 0.003226 +0x1a9b +// -0.014488 +0xa36b +// 0.007940 +0x2011 +// 0.003158 +0x1a78 +// -0.010492 +0xa15f +// -0.018528 +0xa4be +// 0.053459 +0x2ad8 +// 0.088484 +0x2daa +// 0.058353 +0x2b78 +// -0.054402 +0xaaf7 +// -0.013622 +0xa2fa +// -0.017324 +0xa46f +// -0.018239 +0xa4ab +// -0.063157 +0xac0b +// 0.036319 +0x28a6 +// -0.023863 +0xa61c +// 0.003440 +0x1b0c +// 0.005836 +0x1dfa +// 0.003847 +0x1be1 +// 0.007012 +0x1f2e +// 0.005548 +0x1dae +// 0.005237 +0x1d5d +// 0.004763 +0x1ce1 +// 0.015601 +0x23fd +// 0.006471 +0x1ea0 +// 0.002510 +0x1924 +// 0.012343 +0x2252 +// 0.003772 +0x1bb9 +// 0.005479 +0x1d9c +// 0.023701 +0x2611 +// 0.007119 +0x1f4a +// 0.007538 +0x1fb8 +// 0.008909 +0x2090 +// 0.003219 +0x1a98 +// 0.004175 +0x1c46 +// 0.005272 +0x1d66 +// 0.009233 +0x20ba +// 0.007378 +0x1f8e +// 0.002892 +0x19ec +// 0.005340 +0x1d78 +// 0.007137 +0x1f4f +// 0.005353 +0x1d7b +// 0.009864 +0x210d +// 0.005263 +0x1d64 +// 0.004231 +0x1c55 +// 0.005432 +0x1d90 +// 0.009177 +0x20b3 +// 0.007691 +0x1fe0 +// 0.002959 +0x1a0f +// 0.003318 +0x1acc +// 0.006501 +0x1ea8 +// 0.007249 +0x1f6c +// 0.004536 +0x1ca5 +// 0.004314 +0x1c6b +// 0.007094 +0x1f44 +// 0.003533 +0x1b3c +// 0.001821 +0x1775 +// 0.006783 +0x1ef2 +// 0.010813 +0x2189 +// 0.002140 +0x1862 +// 0.002960 +0x1a10 +// 0.002579 +0x1948 +// 0.008031 +0x201d +// 0.013947 +0x2324 +// 0.007993 +0x2018 +// 0.001179 +0x14d4 +// 0.005702 +0x1dd7 +// 0.006365 +0x1e85 +// 0.005827 +0x1df7 +// 0.002960 +0x1a10 +// 0.001371 +0x159e +// 0.006702 +0x1edd +// 0.010487 +0x215f +// 0.003761 +0x1bb4 +// 0.001317 +0x1565 +// 0.005143 +0x1d44 +// 0.009479 +0x20da +// 0.008763 +0x207d +// 0.002762 +0x19a8 +// 0.005799 +0x1df0 +// 0.013796 +0x2310 +// 0.000145 +0x8c4 +// 0.008127 +0x2029 +// 0.005549 +0x1daf +// 0.010370 +0x214f +// 0.007194 +0x1f5e +// 0.002867 +0x19df +// 0.003909 +0x1c01 +// 0.011991 +0x2224 +// 0.004947 +0x1d11 +// 0.003375 +0x1ae9 +// 0.007416 +0x1f98 +// 0.002293 +0x18b2 +// 0.000958 +0x13d9 +// 0.015068 +0x23b7 +// 0.008526 +0x205e +// 0.300000 +0x34cd +// 0.400000 +0x3666 +// 0.166667 +0x3155 +// 0.133333 +0x3044 +// 0.000000 +0x0 diff --git a/Testing/Patterns/DSP/Bayes/BayesF16/Predicts2_s16.txt b/Testing/Patterns/DSP/Bayes/BayesF16/Predicts2_s16.txt new file mode 100755 index 00000000..ad518fe4 --- /dev/null +++ b/Testing/Patterns/DSP/Bayes/BayesF16/Predicts2_s16.txt @@ -0,0 +1,20 @@ +H +9 +// 1 +0x0001 +// 2 +0x0002 +// 1 +0x0001 +// 2 +0x0002 +// 4 +0x0004 +// 3 +0x0003 +// 2 +0x0002 +// 1 +0x0001 +// 3 +0x0003 diff --git a/Testing/Patterns/DSP/Bayes/BayesF16/Probas2_f16.txt b/Testing/Patterns/DSP/Bayes/BayesF16/Probas2_f16.txt new file mode 100755 index 00000000..dc95a9db --- /dev/null +++ b/Testing/Patterns/DSP/Bayes/BayesF16/Probas2_f16.txt @@ -0,0 +1,25 @@ +H +36 +// -209.584253 +0xda8d +// 15.746762 +0x4be0 +// -254.107146 +0xdbf1 +// -157.088915 +0xd8e9 +// -92.588131 +0xd5c9 +// 15.834292 +0x4beb +// -127.374179 +0xd7f6 +// -242.993175 +0xdb98 +// -2791.670271 +0xe974 +// -242.605961 +0xdb95 +// 17.386646 +0x4c59 +// -5143447946.019080 diff --git a/Testing/Patterns/DSP/Bayes/BayesF32/DimsBench2_s16.txt b/Testing/Patterns/DSP/Bayes/BayesF32/DimsBench2_s16.txt new file mode 100755 index 00000000..5fffc668 --- /dev/null +++ b/Testing/Patterns/DSP/Bayes/BayesF32/DimsBench2_s16.txt @@ -0,0 +1,38 @@ +H +18 +// 0 +0x0000 +// 0 +0x0000 +// 12 +0x000C +// 76 +0x004C +// 24 +0x0018 +// 202 +0x00CA +// 36 +0x0024 +// 303 +0x012F +// 50 +0x0032 +// 391 +0x0187 +// 64 +0x0040 +// 537 +0x0219 +// 78 +0x004E +// 654 +0x028E +// 98 +0x0062 +// 778 +0x030A +// 118 +0x0076 +// 984 +0x03D8 diff --git a/Testing/Patterns/DSP/Bayes/BayesF32/Inputs2_f32.txt b/Testing/Patterns/DSP/Bayes/BayesF32/Inputs2_f32.txt new file mode 100755 index 00000000..0d37e608 --- /dev/null +++ b/Testing/Patterns/DSP/Bayes/BayesF32/Inputs2_f32.txt @@ -0,0 +1,278 @@ +W +138 +// 0.993859 +0x3f7e6d8d +// 0.003266 +0x3b560992 +// 0.035641 +0x3d11fcc8 +// -0.090419 +0xbdb92d74 +// 0.043912 +0x3d33dd75 +// -0.042546 +0xbd2e44f2 +// 0.070849 +0x3d911948 +// -0.065232 +0xbd859867 +// 0.007983 +0x3c02cab8 +// -0.001672 +0xbadb2eff +// -0.028464 +0xbce92cc8 +// 0.010911 +0x3c32c31a +// -0.092912 +0xbdbe48c5 +// 0.035668 +0x3d121905 +// -0.000463 +0xb9f2ce6a +// 0.946335 +0x3f72430a +// 0.007799 +0x3bff8e6c +// -0.038055 +0xbd1bdf91 +// -0.001537 +0xbac9679b +// -0.021848 +0xbcb2faf7 +// -0.081510 +0xbda6eeae +// 0.013917 +0x3c6405b4 +// -0.018004 +0xbc937ce5 +// -0.018478 +0xbc975fdc +// 0.001077 +0x3a8d3045 +// -0.069425 +0xbd8e2edc +// 0.978310 +0x3f7a7285 +// -0.015063 +0xbc76ccc2 +// -0.100549 +0xbdcdec89 +// 0.057286 +0x3d6aa507 +// -0.028425 +0xbce8dc1e +// 0.014849 +0x3c73499a +// -0.050356 +0xbd4e41db +// 0.047657 +0x3d433441 +// 0.008310 +0x3c082839 +// 0.040505 +0x3d25e83f +// -0.008813 +0xbc106253 +// 0.045229 +0x3d39427e +// 1.030162 +0x3f83dc5a +// 0.015668 +0x3c805992 +// 0.017410 +0x3c8e9f6a +// 0.008313 +0x3c083303 +// -0.006206 +0xbbcb5f18 +// 0.039141 +0x3d2051f2 +// -0.028887 +0xbceca4dd +// 0.057686 +0x3d6c47e2 +// 0.049255 +0x3d49bff8 +// -0.031344 +0xbd006299 +// 0.096180 +0x3dc4fa04 +// 0.027573 +0x3ce1e1c8 +// 0.912040 +0x3f697b77 +// -0.006232 +0xbbcc361a +// 0.037752 +0x3d1aa1f4 +// 0.080582 +0x3da50835 +// -0.029815 +0xbcf43f5f +// 0.039508 +0x3d21d378 +// 0.070669 +0x3d90bb29 +// -0.023232 +0xbcbe5201 +// -0.013015 +0xbc553b5e +// 0.045539 +0x3d3a8793 +// 0.015317 +0x3c7af242 +// -0.038341 +0xbd1d0bd8 +// -0.001877 +0xbaf5f566 +// 0.033180 +0x3d07e73d +// -0.009663 +0xbc1e5304 +// -0.082668 +0xbda94df0 +// 0.005600 +0x3bb77c75 +// 0.895062 +0x3f6522c8 +// 0.031259 +0x3d00093a +// -0.013758 +0xbc6168d0 +// 0.067527 +0x3d8a4b85 +// 0.058772 +0x3d70ba6a +// -0.003151 +0xbb4e893a +// -0.029285 +0xbcefe650 +// 0.022418 +0x3cb7a583 +// 0.015898 +0x3c823d8a +// -0.033489 +0xbd092c45 +// -0.073212 +0xbd95efea +// 1.016488 +0x3f821c44 +// 0.053423 +0x3d5ad1c4 +// 0.011955 +0x3c43dce2 +// 0.020540 +0x3ca84447 +// 0.017797 +0x3c91cb17 +// 0.002332 +0x3b18d194 +// 0.022311 +0x3cb6c679 +// 0.029993 +0x3cf5b3fc +// -0.024722 +0xbcca85ac +// -0.040891 +0xbd277dbc +// -0.008009 +0xbc0339b6 +// 0.033292 +0x3d085d91 +// 0.021992 +0x3cb42852 +// -0.017457 +0xbc8f0267 +// 0.044975 +0x3d383751 +// 0.038378 +0x3d1d3291 +// -0.016065 +0xbc839aba +// 0.032482 +0x3d050c11 +// 0.052955 +0x3d58e783 +// 0.040116 +0x3d2450a0 +// 0.016201 +0x3c84b8be +// -0.025682 +0xbcd2621d +// 1.011317 +0x3f8172d6 +// 0.007611 +0x3bf9678a +// 0.036635 +0x3d160ed5 +// 0.041180 +0x3d28acc2 +// 0.097578 +0x3dc7d6e9 +// -0.028906 +0xbceccb92 +// -0.126198 +0xbe013a2a +// -0.115196 +0xbdebebf8 +// 0.066253 +0x3d87afca +// -0.000212 +0xb95ea1a9 +// -0.109596 +0xbde0739e +// -0.029895 +0xbcf4e6bc +// -0.043222 +0xbd310982 +// 0.067351 +0x3d89ef58 +// 0.015362 +0x3c7bb139 +// -0.032368 +0xbd04941e +// -0.046210 +0xbd3d46b7 +// 0.078026 +0x3d9fcc50 +// -0.019191 +0xbc9d3608 +// 0.993031 +0x3f7e374a +// -0.028901 +0xbcecc174 +// -0.034949 +0xbd0f2637 +// 0.002125 +0x3b0b3e33 +// 0.031756 +0x3d02122b +// -0.075827 +0xbd9b4b43 +// -0.053971 +0xbd5d10ca +// -0.014613 +0xbc6f6bc9 +// -0.052876 +0xbd589502 +// 0.023186 +0x3cbdf07b +// 0.000434 +0x39e3664d +// -0.028223 +0xbce73343 +// -0.021082 +0xbcacb466 +// -0.001837 +0xbaf0bf56 +// -0.005527 +0xbbb51ea2 +// -0.044851 +0xbd37b529 +// -0.069432 +0xbd8e322d +// 0.045976 +0x3d3c5144 +// 0.004058 +0x3b84f778 diff --git a/Testing/Patterns/DSP/Bayes/BayesF32/Params2_f32.txt b/Testing/Patterns/DSP/Bayes/BayesF32/Params2_f32.txt new file mode 100755 index 00000000..279797b4 --- /dev/null +++ b/Testing/Patterns/DSP/Bayes/BayesF32/Params2_f32.txt @@ -0,0 +1,2300 @@ +W +1149 +// 0.922748 +0x3f6c3932 +// 0.010192 +0x3c26fd29 +// 0.026686 +0x3cda9d12 +// -0.013942 +0xbc646e1b +// 0.037752 +0x3d1aa23e +// 0.065918 +0x3d86fffa +// -0.002962 +0xbb421946 +// -0.050233 +0xbd4dc146 +// 0.048680 +0x3d476460 +// 0.027608 +0x3ce22b26 +// 0.001623 +0x3ad4c064 +// -0.039384 +0xbd215099 +// 0.035491 +0x3d115f24 +// 0.982203 +0x3f7b71aa +// 0.009158 +0x3c160d0f +// -0.018589 +0xbc984708 +// -0.027822 +0xbce3eb3a +// 0.011396 +0x3c3ab44c +// 0.004063 +0x3b85211f +// 0.023007 +0x3cbc79ed +// 0.014096 +0x3c66f106 +// -0.006926 +0xbbe2f544 +// -0.028069 +0xbce5f1d0 +// -0.004909 +0xbba0dc76 +// -0.016819 +0xbc89c785 +// 0.060507 +0x3d77d66d +// 0.973527 +0x3f793915 +// -0.024116 +0xbcc58faa +// 0.027107 +0x3cde104a +// 0.039849 +0x3d233868 +// -0.003253 +0xbb5530c9 +// 0.000327 +0x39ab42a1 +// -0.037643 +0xbd1a2f77 +// 0.039654 +0x3d226bcd +// 0.016647 +0x3c885f90 +// 0.023358 +0x3cbf5956 +// 0.008129 +0x3c052ef9 +// 0.014346 +0x3c6b0cbc +// 0.003045 +0x3b4791ae +// 0.002349 +0x3b19f1e3 +// 0.010104 +0x3c25897e +// 0.001678 +0x3adbf2b1 +// 0.002054 +0x3b06a352 +// 0.009277 +0x3c18001a +// 0.004406 +0x3b9063d8 +// 0.002831 +0x3b398223 +// 0.005700 +0x3bbac910 +// 0.008595 +0x3c0cd19d +// 0.006813 +0x3bdf3ee5 +// 0.004903 +0x3ba0a6ac +// 0.009748 +0x3c1fb7d8 +// 0.006522 +0x3bd5b552 +// 0.006032 +0x3bc5a8f1 +// 0.007080 +0x3be7fc47 +// 0.008390 +0x3c0974f5 +// 0.009934 +0x3c22c3f7 +// 0.001481 +0x3ac229a7 +// 0.005695 +0x3bba9eba +// 0.003857 +0x3b7cc92a +// 0.007009 +0x3be5af98 +// 0.003641 +0x3b6ea50d +// 0.003999 +0x3b83099d +// 0.001191 +0x3a9c2767 +// 0.003091 +0x3b4a957b +// 0.001485 +0x3ac2b493 +// 0.004904 +0x3ba0b0b7 +// 0.002312 +0x3b178cf7 +// 0.003551 +0x3b68b360 +// 0.003878 +0x3b7e24a2 +// 0.007156 +0x3bea7d26 +// 0.006841 +0x3be02aa9 +// 0.005743 +0x3bbc2d7b +// 0.200000 +0x3e4ccccd +// 0.533333 +0x3f088889 +// 0.266667 +0x3e888889 +// 0.000000 +0x2f7b00bb +// 0.931503 +0x3f6e76f5 +// -0.048016 +0xbd44acb2 +// 0.001535 +0x3ac92dd3 +// -0.029952 +0xbcf55ddd +// -0.045251 +0xbd3958fc +// -0.007072 +0xbbe7bfe2 +// -0.026636 +0xbcda3469 +// -0.020892 +0xbcab2696 +// -0.013140 +0xbc57476e +// 0.026561 +0x3cd996b9 +// 0.034782 +0x3d0e77c0 +// -0.052427 +0xbd56bdc5 +// -0.005221 +0xbbab10e5 +// 0.978924 +0x3f7a9ac9 +// 0.008802 +0x3c103476 +// 0.005533 +0x3bb54be9 +// -0.013552 +0xbc5e0a0f +// -0.021645 +0xbcb150e3 +// -0.006206 +0xbbcb5d95 +// 0.006949 +0x3be3b39d +// -0.008079 +0xbc045d54 +// 0.069150 +0x3d8d9eb9 +// 0.035055 +0x3d0f9638 +// 0.003810 +0x3b79a9a4 +// 0.004708 +0x3b9a46f4 +// -0.032589 +0xbd057bcc +// 1.034373 +0x3f846652 +// -0.019747 +0xbca1c57c +// -0.035485 +0xbd11589f +// 0.001406 +0x3ab83e09 +// -0.017457 +0xbc8f0121 +// -0.016479 +0xbc86fe11 +// 0.030057 +0x3cf63938 +// -0.004329 +0xbb8dd750 +// 0.000245 +0x39809b99 +// -0.013579 +0xbc5e7c39 +// 0.032656 +0x3d05c1e7 +// -0.014623 +0xbc6f9500 +// -0.000345 +0xb9b4d965 +// 1.048088 +0x3f8627bd +// -0.034109 +0xbd0bb586 +// 0.064672 +0x3d847286 +// 0.006042 +0x3bc5ffb5 +// -0.047681 +0xbd434cab +// -0.019199 +0xbc9d4838 +// 0.025716 +0x3cd2aaad +// -0.003608 +0xbb6c759c +// -0.069998 +0xbd8f5af1 +// -0.023101 +0xbcbd3db1 +// 0.025969 +0x3cd4bc1e +// 0.064418 +0x3d83edb4 +// 0.009427 +0x3c1a74e6 +// 1.059911 +0x3f87ab2a +// 0.038275 +0x3d1cc640 +// -0.024738 +0xbccaa82f +// -0.030628 +0xbcfae6f3 +// 0.047517 +0x3d42a1ac +// -0.075062 +0xbd99ba59 +// 0.001080 +0x3a8d866f +// -0.012182 +0xbc479918 +// 0.001631 +0x3ad5d216 +// 0.000074 +0x389bb1d1 +// 0.006234 +0x3bcc47b7 +// 0.002671 +0x3b2f1118 +// 0.004743 +0x3b9b6e1f +// 0.004257 +0x3b8b7dab +// 0.004077 +0x3b859a17 +// 0.004694 +0x3b99d041 +// 0.001485 +0x3ac299e6 +// 0.006079 +0x3bc72f92 +// 0.004929 +0x3ba18445 +// 0.001826 +0x3aef6701 +// 0.001947 +0x3aff256b +// 0.005336 +0x3baedbdf +// 0.007880 +0x3c0119f1 +// 0.010544 +0x3c2cbec3 +// 0.003120 +0x3b4c723e +// 0.005139 +0x3ba86377 +// 0.008076 +0x3c045328 +// 0.000229 +0x39701111 +// 0.006070 +0x3bc6e5cb +// 0.004469 +0x3b926d06 +// 0.000822 +0x3a577889 +// 0.005992 +0x3bc45809 +// 0.011948 +0x3c43c0a0 +// 0.005938 +0x3bc29395 +// 0.003628 +0x3b6dc5dc +// 0.008603 +0x3c0cf467 +// 0.009736 +0x3c1f85c7 +// 0.005079 +0x3ba66c98 +// 0.001469 +0x3ac085b3 +// 0.002564 +0x3b2805b1 +// 0.018406 +0x3c96c889 +// 0.004042 +0x3b84703d +// 0.003446 +0x3b61dd8a +// 0.002997 +0x3b4463c9 +// 0.005571 +0x3bb6906b +// 0.003226 +0x3b5367ce +// 0.003843 +0x3b7bdaa0 +// 0.002008 +0x3b03949c +// 0.003903 +0x3b7fce6f +// 0.000818 +0x3a566405 +// 0.005893 +0x3bc11c83 +// 0.011962 +0x3c43fc63 +// 0.008459 +0x3c0a9991 +// 0.003246 +0x3b54b999 +// 0.010585 +0x3c2d6c19 +// 0.004582 +0x3b9622de +// 0.009405 +0x3c1a1675 +// 0.001606 +0x3ad27bb1 +// 0.002159 +0x3b0d7659 +// 0.003674 +0x3b70c8a6 +// 0.002001 +0x3b0323d7 +// 0.006840 +0x3be025ea +// 0.002870 +0x3b3c1b9f +// 0.009560 +0x3c1ca308 +// 0.003895 +0x3b7f43d9 +// 0.006154 +0x3bc9a499 +// 0.004673 +0x3b991ca8 +// 0.009209 +0x3c16e17e +// 0.133333 +0x3e088889 +// 0.233333 +0x3e6eeeef +// 0.233333 +0x3e6eeeef +// 0.200000 +0x3e4ccccd +// 0.200000 +0x3e4ccccd +// 0.000000 +0x2f568727 +// 0.946053 +0x3f723088 +// 0.006892 +0x3be1d637 +// -0.026621 +0xbcda1522 +// -0.027710 +0xbce3000f +// 0.003482 +0x3b6437c1 +// -0.032427 +0xbd04d235 +// -0.001804 +0xbaec7568 +// 0.029165 +0x3ceeeafd +// -0.028820 +0xbcec1789 +// -0.000959 +0xba7b8618 +// 0.001654 +0x3ad8c2de +// -0.015976 +0xbc82e109 +// -0.069127 +0xbd8d9262 +// 0.939030 +0x3f70643f +// 0.046980 +0x3d406e62 +// -0.041639 +0xbd2a8dd5 +// -0.040337 +0xbd2538ca +// -0.126591 +0xbe01a11d +// -0.024903 +0xbccc0071 +// -0.037933 +0xbd1b5fcf +// -0.024438 +0xbcc83201 +// -0.040483 +0xbd25d12e +// -0.003203 +0xbb51e3b2 +// 0.007890 +0x3c01441b +// 0.041291 +0x3d2920aa +// 0.003788 +0x3b78482d +// 0.983465 +0x3f7bc457 +// -0.003070 +0xbb492c5f +// -0.057087 +0xbd69d468 +// 0.040324 +0x3d252a8b +// 0.011598 +0x3c3e0587 +// 0.030921 +0x3cfd4d96 +// 0.011700 +0x3c3fb04f +// 0.052325 +0x3d565238 +// -0.045954 +0xbd3c3ac1 +// 0.013596 +0x3c5ec08c +// -0.054199 +0xbd5e003e +// 0.015613 +0x3c7fccb4 +// 0.007233 +0x3bed066f +// 1.048028 +0x3f8625ca +// 0.001220 +0x3a9fec30 +// 0.020986 +0x3cabebc6 +// -0.030614 +0xbcfaca20 +// -0.016806 +0xbc89ac17 +// 0.018983 +0x3c9b8282 +// -0.006911 +0xbbe276ca +// -0.043137 +0xbd30b0b7 +// -0.008099 +0xbc04afdb +// 0.011276 +0x3c38be16 +// 0.005983 +0x3bc410cb +// 0.008699 +0x3c0e87ec +// 0.006613 +0x3bd8b2aa +// 0.003793 +0x3b788cfb +// 0.013767 +0x3c618d18 +// 0.004379 +0x3b8f806b +// 0.008513 +0x3c0b7bd7 +// 0.005272 +0x3bacc3ac +// 0.003971 +0x3b821fe6 +// 0.002311 +0x3b177281 +// 0.005506 +0x3bb46dfa +// 0.012337 +0x3c4a2279 +// 0.004114 +0x3b86cee7 +// 0.000126 +0x39043202 +// 0.007734 +0x3bfd6fcb +// 0.000957 +0x3a7ac2dc +// 0.009357 +0x3c194e56 +// 0.016228 +0x3c84f059 +// 0.001222 +0x3aa031db +// 0.001709 +0x3ae00121 +// 0.005252 +0x3bac173b +// 0.004100 +0x3b865710 +// 0.000686 +0x3a33c5f7 +// 0.008818 +0x3c1077a9 +// 0.006809 +0x3bdf2186 +// 0.003542 +0x3b681dda +// 0.004080 +0x3b85b43b +// 0.010881 +0x3c324541 +// 0.005312 +0x3bae11d4 +// 0.004007 +0x3b834a9f +// 0.004818 +0x3b9de228 +// 0.001129 +0x3a93fd76 +// 0.008912 +0x3c120524 +// 0.005403 +0x3bb10a96 +// 0.005991 +0x3bc44d3c +// 0.007582 +0x3bf873d8 +// 0.004679 +0x3b994f09 +// 0.007063 +0x3be7723a +// 0.002141 +0x3b0c54fd +// 0.002243 +0x3b12fccf +// 0.003642 +0x3b6eae32 +// 0.003341 +0x3b5af3e3 +// 0.005374 +0x3bb01a98 +// 0.003162 +0x3b4f3f6e +// 0.002662 +0x3b2e6e92 +// 0.003868 +0x3b7d8561 +// 0.006457 +0x3bd398d2 +// 0.300000 +0x3e99999a +// 0.133333 +0x3e088889 +// 0.333333 +0x3eaaaaab +// 0.233333 +0x3e6eeeef +// 0.000000 +0x2f72ea8e +// 1.025249 +0x3f833b60 +// 0.012057 +0x3c458a65 +// -0.031003 +0xbcfdf994 +// -0.015893 +0xbc8231bd +// -0.014356 +0xbc6b3549 +// -0.026659 +0xbcda6309 +// 0.046494 +0x3d3e70a5 +// -0.034560 +0xbd0d8e6a +// -0.030478 +0xbcf9acb9 +// -0.010349 +0xbc298f1c +// -0.013799 +0xbc6213be +// 0.002867 +0x3b3be94d +// -0.003008 +0xbb45260e +// 0.037076 +0x3d17dd3f +// -0.001220 +0xba9ff1a3 +// 0.992599 +0x3f7e1af0 +// 0.026650 +0x3cda51b9 +// -0.013970 +0xbc64e35c +// -0.027503 +0xbce14e15 +// -0.018235 +0xbc9560bc +// -0.018609 +0xbc98727c +// -0.013775 +0xbc61aec1 +// -0.037466 +0xbd19762f +// -0.003334 +0xbb5a8039 +// -0.017968 +0xbc933267 +// 0.014274 +0x3c69dc18 +// -0.045099 +0xbd38ba22 +// -0.026038 +0xbcd54e79 +// -0.057399 +0xbd6b1b3a +// -0.003398 +0xbb5eb0d2 +// 1.007791 +0x3f80ff4b +// 0.040619 +0x3d266009 +// 0.007406 +0x3bf2b232 +// 0.010625 +0x3c2e1524 +// -0.015340 +0xbc7b54f0 +// -0.000902 +0xba6c654d +// -0.006474 +0xbbd42686 +// -0.025182 +0xbcce4a2d +// 0.003243 +0x3b5483a1 +// 0.051945 +0x3d54c476 +// 0.000483 +0x39fd1049 +// 0.018067 +0x3c9400c2 +// 0.005694 +0x3bba96f5 +// 0.003193 +0x3b5145b8 +// 0.002367 +0x3b1b2021 +// 0.000887 +0x3a689218 +// 0.004031 +0x3b84177f +// 0.006618 +0x3bd8d9e5 +// 0.005622 +0x3bb834b7 +// 0.008772 +0x3c0fb73d +// 0.002236 +0x3b1291da +// 0.007430 +0x3bf37536 +// 0.002938 +0x3b40891b +// 0.005195 +0x3baa3d4c +// 0.004327 +0x3b8dc5c6 +// 0.000967 +0x3a7d6eb7 +// 0.006556 +0x3bd6d77e +// 0.004107 +0x3b869578 +// 0.007658 +0x3bfaeed8 +// 0.006278 +0x3bcdb8d9 +// 0.004719 +0x3b9a9e47 +// 0.007598 +0x3bf8f5a5 +// 0.005504 +0x3bb457f2 +// 0.003769 +0x3b770201 +// 0.003155 +0x3b4ecb3b +// 0.006883 +0x3be18ccb +// 0.004087 +0x3b85f05e +// 0.006051 +0x3bc6471e +// 0.012489 +0x3c4ca027 +// 0.003135 +0x3b4d73aa +// 0.006182 +0x3bca900f +// 0.003643 +0x3b6eb9df +// 0.003579 +0x3b6a8ce3 +// 0.004921 +0x3ba14430 +// 0.009242 +0x3c176d2e +// 0.002471 +0x3b21f371 +// 0.006907 +0x3be25222 +// 0.010153 +0x3c26586d +// 0.005190 +0x3baa11b6 +// 0.009604 +0x3c1d5971 +// 0.010357 +0x3c29b137 +// 0.005367 +0x3bafdfc8 +// 0.007535 +0x3bf6eb66 +// 0.004311 +0x3b8d454b +// 0.233333 +0x3e6eeeef +// 0.333333 +0x3eaaaaab +// 0.433333 +0x3eddddde +// 0.000000 +0x2f8b2073 +// 0.922627 +0x3f6c314c +// -0.033260 +0xbd083bf7 +// 0.040043 +0x3d2403ae +// 0.001569 +0x3acda0da +// 0.090714 +0x3db9c848 +// 0.023158 +0x3cbdb64a +// 0.044863 +0x3d37c24e +// 0.083165 +0x3daa5264 +// 0.013286 +0x3c59ae7c +// 0.013532 +0x3c5db63a +// 0.007050 +0x3be703ca +// -0.022003 +0xbcb43f85 +// 0.042953 +0x3d2fef1e +// 0.092689 +0x3dbdd3c3 +// 0.074808 +0x3d9934cf +// 1.020609 +0x3f82a34d +// 0.014483 +0x3c6d4bdc +// 0.001256 +0x3aa4905f +// 0.064143 +0x3d835d27 +// 0.061811 +0x3d7d2d35 +// 0.023917 +0x3cc3ed05 +// -0.004547 +0xbb94fc4e +// 0.035966 +0x3d1350c8 +// -0.038527 +0xbd1dce33 +// 0.005957 +0x3bc334ab +// -0.008051 +0xbc03e9b0 +// -0.002084 +0xbb088c68 +// -0.014291 +0xbc6a25a1 +// -0.037122 +0xbd180cf7 +// 0.004381 +0x3b8f8a67 +// 1.017792 +0x3f824702 +// 0.011253 +0x3c386027 +// 0.016381 +0x3c86308a +// 0.002383 +0x3b1c2abf +// 0.015047 +0x3c76885e +// -0.000785 +0xba4ddcf5 +// -0.009460 +0xbc1afd2d +// -0.037751 +0xbd1aa10d +// -0.025557 +0xbcd15dbf +// 0.067350 +0x3d89ee89 +// 0.005976 +0x3bc3d431 +// 0.015145 +0x3c782135 +// 0.004558 +0x3b955edf +// -0.004080 +0xbb85ad6b +// 0.022693 +0x3cb9e6b5 +// 0.996218 +0x3f7f082c +// -0.029034 +0xbcedd8d8 +// -0.046071 +0xbd3cb4c0 +// 0.030664 +0x3cfb3300 +// 0.008776 +0x3c0fc9ea +// -0.038767 +0xbd1eca3e +// 0.010787 +0x3c30bdd6 +// 0.004040 +0x3b845f9a +// -0.016978 +0xbc8b14d3 +// 0.016305 +0x3c859301 +// -0.036259 +0xbd1483dc +// -0.000320 +0xb9a8017d +// 0.000036 +0x3816c7f6 +// 0.048622 +0x3d472776 +// 0.003359 +0x3b5c2894 +// 0.976061 +0x3f79df27 +// 0.001302 +0x3aaaafe3 +// 0.039009 +0x3d1fc7fa +// 0.054710 +0x3d6017e8 +// 0.003268 +0x3b562683 +// -0.000762 +0xba47b2a0 +// -0.023784 +0xbcc2d59f +// -0.005709 +0xbbbb15b7 +// -0.065038 +0xbd8532c7 +// -0.054934 +0xbd6102ac +// 0.007536 +0x3bf6f315 +// 0.000669 +0x3a2f5acb +// 0.002744 +0x3b33cea3 +// 0.005249 +0x3bac02fa +// 0.000227 +0x396d9e06 +// 0.000219 +0x3965460e +// 0.001835 +0x3af088d7 +// 0.004522 +0x3b942f82 +// 0.018028 +0x3c93ae9c +// 0.005974 +0x3bc3c4f1 +// 0.004292 +0x3b8ca3c8 +// 0.001884 +0x3af6e0b4 +// 0.005339 +0x3baef5c1 +// 0.000681 +0x3a328be2 +// 0.004687 +0x3b999420 +// 0.002743 +0x3b33be7b +// 0.004548 +0x3b95056f +// 0.000830 +0x3a597896 +// 0.007439 +0x3bf3c03c +// 0.008725 +0x3c0ef43e +// 0.002540 +0x3b266e09 +// 0.003375 +0x3b5d3409 +// 0.004262 +0x3b8bab4f +// 0.005899 +0x3bc14a4a +// 0.000936 +0x3a757269 +// 0.008362 +0x3c08ffb4 +// 0.005215 +0x3baae24a +// 0.001542 +0x3aca2d4f +// 0.004750 +0x3b9ba81f +// 0.000507 +0x3a04d0d6 +// 0.014950 +0x3c74f067 +// 0.002588 +0x3b299d1c +// 0.006660 +0x3bda3a4e +// 0.000909 +0x3a6e4126 +// 0.003267 +0x3b5613fb +// 0.006053 +0x3bc65537 +// 0.006988 +0x3be4fd4b +// 0.003901 +0x3b7fab64 +// 0.004354 +0x3b8eaa96 +// 0.001528 +0x3ac85201 +// 0.002816 +0x3b3885ff +// 0.011586 +0x3c3dd304 +// 0.004017 +0x3b839e9e +// 0.003523 +0x3b66df7a +// 0.007990 +0x3c02e756 +// 0.006401 +0x3bd1c04b +// 0.002306 +0x3b171d16 +// 0.012326 +0x3c49f0f8 +// 0.006949 +0x3be3b34f +// 0.001707 +0x3adfb705 +// 0.007854 +0x3c00ade1 +// 0.010906 +0x3c32aed8 +// 0.004960 +0x3ba2882f +// 0.004144 +0x3b87cdf0 +// 0.007875 +0x3c0105a2 +// 0.003673 +0x3b70beaf +// 0.006045 +0x3bc617f1 +// 0.008906 +0x3c11e932 +// 0.003825 +0x3b7aa856 +// 0.006595 +0x3bd81d00 +// 0.004744 +0x3b9b7151 +// 0.003037 +0x3b470462 +// 0.008086 +0x3c047b84 +// 0.006211 +0x3bcb85db +// 0.003816 +0x3b7a16fd +// 0.005380 +0x3bb04abb +// 0.003184 +0x3b50ad56 +// 0.005573 +0x3bb69b20 +// 0.011936 +0x3c438f06 +// 0.003916 +0x3b804dce +// 0.133333 +0x3e088889 +// 0.133333 +0x3e088889 +// 0.200000 +0x3e4ccccd +// 0.233333 +0x3e6eeeef +// 0.300000 +0x3e99999a +// 0.000000 +0x2f577040 +// 0.991646 +0x3f7ddc82 +// -0.004421 +0xbb90e1a5 +// -0.016596 +0xbc87f454 +// -0.002979 +0xbb433c14 +// -0.012876 +0xbc52f444 +// -0.027844 +0xbce419b9 +// -0.030025 +0xbcf5f7c1 +// -0.022041 +0xbcb48e92 +// -0.039787 +0xbd22f82f +// 0.016646 +0x3c885cb1 +// -0.023707 +0xbcc235f0 +// -0.006563 +0xbbd711f3 +// -0.007918 +0xbc01bb35 +// -0.008211 +0xbc0686fa +// -0.011731 +0xbc403275 +// 1.005071 +0x3f80a62d +// -0.016814 +0xbc89bca2 +// -0.078909 +0xbda19acc +// -0.010575 +0xbc2d431d +// 0.020149 +0x3ca51079 +// -0.004389 +0xbb8fd581 +// 0.005716 +0x3bbb4dcc +// 0.045489 +0x3d3a52a8 +// 0.058208 +0x3d6e6b82 +// 0.010696 +0x3c2f3f04 +// 0.004104 +0x3b867afd +// 0.022057 +0x3cb4b0c1 +// -0.029794 +0xbcf41321 +// 0.009244 +0x3c177530 +// -0.007652 +0xbbfabf57 +// 0.980882 +0x3f7b1b14 +// -0.004553 +0xbb953564 +// 0.005249 +0x3bac0357 +// -0.026173 +0xbcd66919 +// 0.009094 +0x3c150018 +// -0.006770 +0xbbddd7f0 +// -0.041087 +0xbd284a52 +// 0.034326 +0x3d0c99a1 +// 0.001080 +0x3a8d9c37 +// 0.025613 +0x3cd1d29b +// -0.021759 +0xbcb23f74 +// -0.040697 +0xbd26b264 +// -0.042600 +0xbd2e7ced +// 0.052542 +0x3d57360e +// -0.028250 +0xbce76c67 +// 0.964756 +0x3f76fa38 +// 0.017020 +0x3c8b6d3a +// -0.097061 +0xbdc6c823 +// -0.022419 +0xbcb7a7f7 +// 0.015455 +0x3c7d372f +// -0.066652 +0xbd8880f2 +// -0.029285 +0xbcefe691 +// 0.026238 +0x3cd6f068 +// 0.023828 +0x3cc333dc +// -0.031305 +0xbd003961 +// 0.012882 +0x3c530fd3 +// 0.009631 +0x3c1dcbf3 +// 0.006327 +0x3bcf5525 +// 0.005841 +0x3bbf69be +// 0.006042 +0x3bc5feb5 +// 0.003839 +0x3b7b8fd4 +// 0.003918 +0x3b806418 +// 0.007115 +0x3be92804 +// 0.003360 +0x3b5c316c +// 0.007958 +0x3c0263bc +// 0.013669 +0x3c5ff1da +// 0.004022 +0x3b83c91a +// 0.002637 +0x3b2cd249 +// 0.004057 +0x3b84f205 +// 0.002941 +0x3b40b75f +// 0.001207 +0x3a9e43ef +// 0.006863 +0x3be0e1d7 +// 0.009545 +0x3c1c629a +// 0.004695 +0x3b99d9f0 +// 0.003276 +0x3b56ada2 +// 0.003056 +0x3b48457e +// 0.007964 +0x3c0279d3 +// 0.012721 +0x3c506b9e +// 0.000444 +0x39e8d839 +// 0.019972 +0x3ca39c31 +// 0.002803 +0x3b37ac59 +// 0.006829 +0x3bdfc515 +// 0.001884 +0x3af6e740 +// 0.002541 +0x3b268dcd +// 0.006691 +0x3bdb41c1 +// 0.006818 +0x3bdf6697 +// 0.008223 +0x3c06b96f +// 0.003144 +0x3b4e03c8 +// 0.002468 +0x3b21c24e +// 0.003993 +0x3b82d4c7 +// 0.003104 +0x3b4b6cde +// 0.003059 +0x3b487eb2 +// 0.009015 +0x3c13b24a +// 0.003352 +0x3b5ba9ed +// 0.003546 +0x3b6864b1 +// 0.003475 +0x3b63bc38 +// 0.004013 +0x3b837e2a +// 0.005532 +0x3bb54870 +// 0.007648 +0x3bfa9c78 +// 0.009188 +0x3c168b0a +// 0.012476 +0x3c4c69bb +// 0.008809 +0x3c1054f9 +// 0.004529 +0x3b94671a +// 0.004752 +0x3b9bb9cc +// 0.000962 +0x3a7c4f62 +// 0.000969 +0x3a7e0d93 +// 0.005979 +0x3bc3eadc +// 0.016137 +0x3c8432b0 +// 0.004475 +0x3b92a45a +// 0.006172 +0x3bca41d1 +// 0.009316 +0x3c18a3dc +// 0.005514 +0x3bb4b141 +// 0.333333 +0x3eaaaaab +// 0.166667 +0x3e2aaaab +// 0.300000 +0x3e99999a +// 0.200000 +0x3e4ccccd +// 0.000000 +0x2f7de56c +// 1.027632 +0x3f838976 +// 0.016535 +0x3c87735d +// 0.013309 +0x3c5a0f4b +// 0.008695 +0x3c0e7393 +// 0.074800 +0x3d993091 +// -0.033005 +0xbd0730bd +// -0.020709 +0xbca9a6a6 +// -0.018183 +0xbc94f48f +// -0.020011 +0xbca3ed3f +// 0.018773 +0x3c99c8d7 +// -0.010919 +0xbc32e481 +// 0.025244 +0x3cceccd3 +// -0.000794 +0xba50072a +// 0.009330 +0x3c18ddcd +// 0.010106 +0x3c259330 +// -0.008855 +0xbc1112e1 +// -0.001422 +0xbaba5eb6 +// -0.033960 +0xbd0b19fe +// 0.023364 +0x3cbf6628 +// 0.011208 +0x3c37a22b +// 0.004580 +0x3b9610e3 +// 0.999591 +0x3f7fe539 +// -0.033861 +0xbd0ab161 +// -0.008386 +0xbc09651a +// -0.012208 +0xbc480600 +// -0.015906 +0xbc824d0f +// 0.004019 +0x3b83b426 +// -0.023611 +0xbcc16c0f +// -0.025276 +0xbccf0ffa +// 0.004637 +0x3b97f3ab +// 0.007402 +0x3bf28f4a +// 0.046927 +0x3d4036b5 +// 0.006901 +0x3be21d9c +// -0.001045 +0xba88f7e8 +// 0.013793 +0x3c61fbe6 +// -0.019678 +0xbca133a2 +// -0.033564 +0xbd097ad2 +// 0.004862 +0x3b9f5047 +// -0.020682 +0xbca96e07 +// 0.003345 +0x3b5b305a +// 0.015997 +0x3c830d23 +// 0.008004 +0x3c0324a7 +// 1.009225 +0x3f812e4b +// 0.021816 +0x3cb2b851 +// 0.023939 +0x3cc41c98 +// -0.033676 +0xbd09f031 +// -0.065115 +0xbd855b23 +// 0.038252 +0x3d1cae10 +// 0.007039 +0x3be6aa2e +// 0.014170 +0x3c682a72 +// -0.021801 +0xbcb29816 +// -0.009992 +0xbc23b720 +// 0.042802 +0x3d2f517d +// -0.015664 +0xbc805289 +// 0.003636 +0x3b6e4ea4 +// -0.037022 +0xbd17a424 +// 0.007183 +0x3beb6003 +// 0.014197 +0x3c689a21 +// -0.019819 +0xbca25b50 +// -0.031809 +0xbd024a1d +// 0.005793 +0x3bbdd721 +// 0.010027 +0x3c244785 +// 0.008261 +0x3c0757e4 +// 0.010740 +0x3c2ff6f5 +// 0.007391 +0x3bf231d1 +// 0.004444 +0x3b919b73 +// 0.008388 +0x3c096df0 +// 0.001854 +0x3af30988 +// 0.006539 +0x3bd643ed +// 0.011053 +0x3c3518cb +// 0.010313 +0x3c28f7ef +// 0.004877 +0x3b9fcbd8 +// 0.009902 +0x3c223bd5 +// 0.003560 +0x3b69539e +// 0.004493 +0x3b9338df +// 0.002054 +0x3b06a3ad +// 0.003657 +0x3b6fa337 +// 0.002642 +0x3b2d1dda +// 0.004842 +0x3b9ea78b +// 0.002278 +0x3b154bc8 +// 0.008117 +0x3c04fe84 +// 0.008404 +0x3c09b023 +// 0.014849 +0x3c7349af +// 0.007156 +0x3bea7bb1 +// 0.005072 +0x3ba63462 +// 0.006918 +0x3be2b24d +// 0.013933 +0x3c6448d8 +// 0.006196 +0x3bcb06cf +// 0.007292 +0x3beeef7d +// 0.007727 +0x3bfd30f0 +// 0.007379 +0x3bf1c7c4 +// 0.006184 +0x3bcaa13c +// 0.009421 +0x3c1a5a4d +// 0.004669 +0x3b98fdb1 +// 0.005022 +0x3ba49040 +// 0.009117 +0x3c155ef5 +// 0.002388 +0x3b1c7a85 +// 0.003305 +0x3b589631 +// 0.003824 +0x3b7a99bc +// 0.007058 +0x3be744d6 +// 0.003503 +0x3b6592f5 +// 0.006891 +0x3be1cd96 +// 0.001503 +0x3ac4f3c9 +// 0.007411 +0x3bf2da25 +// 0.008492 +0x3c0b23c1 +// 0.003081 +0x3b49f03a +// 0.007315 +0x3befb2a0 +// 0.004668 +0x3b98f843 +// 0.004379 +0x3b8f7e63 +// 0.006146 +0x3bc9658a +// 0.006639 +0x3bd98837 +// 0.006722 +0x3bdc42bb +// 0.004086 +0x3b85e45d +// 0.005439 +0x3bb23b39 +// 0.005164 +0x3ba93739 +// 0.004998 +0x3ba3c8c8 +// 0.004032 +0x3b842165 +// 0.012220 +0x3c4835e4 +// 0.006546 +0x3bd67e2a +// 0.003983 +0x3b8285db +// 0.333333 +0x3eaaaaab +// 0.300000 +0x3e99999a +// 0.366667 +0x3ebbbbbc +// 0.000000 +0x2f88d443 +// 1.025066 +0x3f83355e +// -0.005204 +0xbbaa8992 +// -0.040185 +0xbd2498e7 +// 0.039685 +0x3d228d3d +// -0.009489 +0xbc1b7769 +// 0.047141 +0x3d4116a0 +// 0.001457 +0x3abef305 +// -0.044119 +0xbd34b664 +// -0.002185 +0xbb0f3569 +// 0.056498 +0x3d676a92 +// 0.017198 +0x3c8ce2de +// -0.041624 +0xbd2a7e26 +// 0.030646 +0x3cfb0dcf +// -0.014515 +0xbc6dcefc +// -0.009220 +0xbc170f48 +// -0.013543 +0xbc5de367 +// -0.021585 +0xbcb0d3ad +// 0.013044 +0x3c55b46c +// -0.001645 +0xbad78f7d +// 0.024673 +0x3cca1fc6 +// 0.013145 +0x3c575dfc +// 0.997473 +0x3f7f5a5e +// 0.010522 +0x3c2c6277 +// 0.038904 +0x3d1f59e4 +// -0.025597 +0xbcd1b0e6 +// -0.009697 +0xbc1ee143 +// -0.020439 +0xbca7709f +// -0.011153 +0xbc36ba80 +// 0.005592 +0x3bb73e99 +// -0.044766 +0xbd375c28 +// 0.019900 +0x3ca3051e +// -0.027990 +0xbce54b72 +// 0.074346 +0x3d984278 +// -0.027006 +0xbcdd3c32 +// -0.013158 +0xbc579665 +// -0.042710 +0xbd2ef079 +// -0.028139 +0xbce684a6 +// -0.010963 +0xbc339f8e +// 0.021273 +0x3cae4422 +// 0.008253 +0x3c0736b0 +// 0.006541 +0x3bd6566b +// -0.008369 +0xbc091c33 +// 1.036586 +0x3f84aedc +// -0.056178 +0xbd661a63 +// -0.011783 +0xbc410e1d +// 0.024260 +0x3cc6bc35 +// -0.078449 +0xbda0aa0b +// -0.001662 +0xbad9dffd +// 0.001739 +0x3ae3f9f6 +// -0.096895 +0xbdc67106 +// 0.030897 +0x3cfd1abd +// 0.006187 +0x3bcac036 +// 0.010545 +0x3c2cc426 +// 0.027949 +0x3ce4f448 +// -0.040499 +0xbd25e1fa +// -0.041782 +0xbd2b2414 +// 0.040241 +0x3d24d3b7 +// 0.000256 +0x39866ebe +// 0.143373 +0x3e12d078 +// -0.044353 +0xbd35ab80 +// 0.015806 +0x3c817be2 +// 0.000059 +0x3875b399 +// -0.007076 +0xbbe7e04b +// 0.990100 +0x3f7d772d +// 0.025844 +0x3cd3b677 +// -0.035206 +0xbd10342a +// 0.027377 +0x3ce04642 +// -0.051927 +0xbd54b1cb +// 0.035080 +0x3d0faf8f +// 0.051689 +0x3d53b79b +// 0.005513 +0x3bb4a23d +// -0.024576 +0xbcc9541a +// 0.046889 +0x3d400e4c +// -0.015848 +0xbc81d2a8 +// 0.044958 +0x3d38255e +// 0.040676 +0x3d269bc8 +// -0.040369 +0xbd255a0e +// 0.056584 +0x3d67c524 +// -0.010195 +0xbc2707d6 +// -0.041947 +0xbd2bd023 +// -0.020336 +0xbca6975e +// 0.011066 +0x3c354ede +// 0.016234 +0x3c84fc8a +// -0.099423 +0xbdcb9e4b +// 1.030240 +0x3f83dee7 +// 0.004847 +0x3b9ed575 +// 0.055898 +0x3d64f594 +// 0.017796 +0x3c91c890 +// -0.005926 +0xbbc22c76 +// -0.004843 +0xbb9eb3d2 +// -0.004681 +0xbb99671d +// -0.012239 +0xbc48875c +// -0.018158 +0xbc94bf55 +// 0.017063 +0x3c8bc7c6 +// -0.005850 +0xbbbfaef7 +// -0.017402 +0xbc8e8f15 +// 0.029802 +0x3cf42255 +// -0.001508 +0xbac5a254 +// 0.025983 +0x3cd4da20 +// -0.019124 +0xbc9caad6 +// 0.002371 +0x3b1b5e3f +// 0.006878 +0x3be1619b +// 0.009300 +0x3c185f0f +// 0.008035 +0x3c03a69c +// 0.005062 +0x3ba5e28f +// 0.000815 +0x3a559ac7 +// 0.012232 +0x3c486a89 +// 0.008932 +0x3c12574e +// 0.004288 +0x3b8c7e29 +// 0.017560 +0x3c8fdad2 +// 0.017324 +0x3c8deb15 +// 0.005503 +0x3bb452cc +// 0.005290 +0x3bad542b +// 0.005688 +0x3bba6115 +// 0.002266 +0x3b148644 +// 0.007445 +0x3bf3f7d9 +// 0.003951 +0x3b8179f1 +// 0.002744 +0x3b33d759 +// 0.007069 +0x3be7a4a3 +// 0.005241 +0x3babbfde +// 0.010085 +0x3c253a99 +// 0.007366 +0x3bf1624c +// 0.006933 +0x3be331e9 +// 0.001341 +0x3aafb6d9 +// 0.004254 +0x3b8b6429 +// 0.002724 +0x3b3282ee +// 0.003579 +0x3b6a8c41 +// 0.004344 +0x3b8e585e +// 0.001959 +0x3b006170 +// 0.002268 +0x3b14a2f0 +// 0.001577 +0x3acebf96 +// 0.009663 +0x3c1e505b +// 0.002948 +0x3b41371d +// 0.016628 +0x3c88387a +// 0.003792 +0x3b788442 +// 0.002313 +0x3b179402 +// 0.002013 +0x3b03ee63 +// 0.002174 +0x3b0e7ed1 +// 0.005983 +0x3bc409bc +// 0.006004 +0x3bc4be86 +// 0.014475 +0x3c6d2870 +// 0.000582 +0x3a189fc8 +// 0.000826 +0x3a58722e +// 0.004402 +0x3b903d5b +// 0.001786 +0x3aea1d9c +// 0.001937 +0x3afdeea1 +// 0.002694 +0x3b3085bc +// 0.004325 +0x3b8db7d3 +// 0.002837 +0x3b39f412 +// 0.010210 +0x3c27468f +// 0.001256 +0x3aa49050 +// 0.009132 +0x3c159eea +// 0.000992 +0x3a81fce0 +// 0.000885 +0x3a67f11d +// 0.007781 +0x3bfef8fe +// 0.000918 +0x3a70963b +// 0.005024 +0x3ba4a1d3 +// 0.012591 +0x3c4e4a3e +// 0.005698 +0x3bbab4c6 +// 0.000376 +0x39c55ead +// 0.001599 +0x3ad1920c +// 0.000881 +0x3a66edad +// 0.004881 +0x3b9ff232 +// 0.008235 +0x3c06eade +// 0.001329 +0x3aae299a +// 0.000780 +0x3a4c7a0f +// 0.004800 +0x3b9d488d +// 0.004138 +0x3b8794b5 +// 0.007557 +0x3bf79de1 +// 0.012512 +0x3c4cff9e +// 0.006075 +0x3bc7127d +// 0.003639 +0x3b6e7772 +// 0.005674 +0x3bb9ebdb +// 0.004734 +0x3b9b2263 +// 0.002937 +0x3b4082f4 +// 0.009295 +0x3c184a8f +// 0.006847 +0x3be05a66 +// 0.010357 +0x3c29b19b +// 0.009186 +0x3c167fbf +// 0.004048 +0x3b84a6a4 +// 0.004488 +0x3b931132 +// 0.001986 +0x3b022b32 +// 0.004974 +0x3ba2fdc1 +// 0.007791 +0x3bff4b2e +// 0.005751 +0x3bbc6eb8 +// 0.002720 +0x3b323d6c +// 0.003347 +0x3b5b5b5a +// 0.004047 +0x3b849fdd +// 0.005987 +0x3bc42c9d +// 0.010174 +0x3c26b0c8 +// 0.004686 +0x3b999022 +// 0.013677 +0x3c601401 +// 0.003804 +0x3b79547a +// 0.008171 +0x3c05e0f4 +// 0.002630 +0x3b2c5940 +// 0.001102 +0x3a90757c +// 0.005187 +0x3ba9f4cb +// 0.005008 +0x3ba41d71 +// 0.002402 +0x3b1d70af +// 0.009601 +0x3c1d4ba0 +// 0.266667 +0x3e888889 +// 0.200000 +0x3e4ccccd +// 0.133333 +0x3e088889 +// 0.200000 +0x3e4ccccd +// 0.200000 +0x3e4ccccd +// 0.000000 +0x2f66ed13 +// 1.017219 +0x3f82343e +// -0.015303 +0xbc7ab92f +// -0.019368 +0xbc9ea94f +// 0.021444 +0x3cafab34 +// 0.063447 +0x3d81f057 +// 0.004953 +0x3ba25087 +// -0.033940 +0xbd0b04ac +// -0.018819 +0xbc9a297e +// 0.011250 +0x3c3851ca +// 0.039681 +0x3d2288c0 +// 0.029085 +0x3cee4357 +// -0.000877 +0xba65d079 +// -0.015411 +0xbc7c7e25 +// 0.000931 +0x3a73f3f7 +// 0.013753 +0x3c6155a6 +// 0.031717 +0x3d01e9d5 +// -0.090675 +0xbdb9b3f6 +// -0.007436 +0xbbf3abca +// 0.017562 +0x3c8fdf1b +// 0.047669 +0x3d43409a +// 0.026559 +0x3cd992d9 +// 0.985423 +0x3f7c44b0 +// 0.031517 +0x3d0117ad +// -0.008472 +0xbc0aced0 +// 0.009365 +0x3c196eb1 +// -0.026124 +0xbcd6018f +// 0.020491 +0x3ca7dd37 +// -0.032272 +0xbd042f84 +// 0.041670 +0x3d2aae73 +// -0.004426 +0xbb910894 +// 0.025907 +0x3cd43b90 +// 0.030992 +0x3cfde1f9 +// 0.001870 +0x3af50c8d +// 0.015302 +0x3c7ab6bf +// 0.041855 +0x3d2b6fa8 +// 0.002806 +0x3b37e6fb +// -0.022430 +0xbcb7be7f +// -0.094805 +0xbdc22961 +// -0.002530 +0xbb25c94f +// -0.051478 +0xbd52da3c +// -0.007463 +0xbbf48e8b +// 0.024228 +0x3cc67932 +// 1.005289 +0x3f80ad52 +// 0.004744 +0x3b9b75f4 +// -0.050514 +0xbd4ee845 +// 0.001412 +0x3ab906be +// -0.044869 +0xbd37c857 +// -0.009349 +0xbc192e27 +// -0.025396 +0xbcd00a60 +// 0.015407 +0x3c7c6c3c +// 0.024803 +0x3ccb2fd4 +// -0.033610 +0xbd09aa90 +// 0.005641 +0x3bb8dbf1 +// -0.036040 +0xbd139e36 +// 0.002550 +0x3b272294 +// -0.028204 +0xbce70c15 +// 0.067038 +0x3d894b27 +// -0.042468 +0xbd2df314 +// 0.001853 +0x3af2d9c3 +// -0.006936 +0xbbe34624 +// -0.008153 +0xbc0594d3 +// -0.021910 +0xbcb37c90 +// 0.025832 +0x3cd39dac +// 0.970349 +0x3f7868d1 +// -0.030284 +0xbcf815de +// -0.033134 +0xbd07b7f1 +// 0.065465 +0x3d861274 +// 0.014992 +0x3c759eff +// 0.040248 +0x3d24db5e +// 0.003152 +0x3b4e9768 +// -0.006550 +0xbbd69ff5 +// -0.037304 +0xbd18cbbb +// 0.010392 +0x3c2a41a5 +// -0.064475 +0xbd840b72 +// -0.017680 +0xbc90d51c +// -0.012329 +0xbc49fde3 +// 0.011812 +0x3c418641 +// -0.004975 +0xbba30360 +// -0.001088 +0xba8ea650 +// -0.004768 +0xbb9c3fd6 +// 0.002178 +0x3b0ebb20 +// 0.003923 +0x3b808d20 +// 0.002121 +0x3b0aff70 +// 0.002338 +0x3b1932e3 +// 0.004812 +0x3b9dab31 +// 0.002336 +0x3b191c25 +// 0.005297 +0x3bad8f2f +// 0.002878 +0x3b3c9def +// 0.002846 +0x3b3a7fbb +// 0.001688 +0x3add3539 +// 0.010191 +0x3c26f7cf +// 0.010294 +0x3c28a959 +// 0.005759 +0x3bbcb443 +// 0.002672 +0x3b2f15cc +// 0.002680 +0x3b2fa294 +// 0.004013 +0x3b837e38 +// 0.006197 +0x3bcb1365 +// 0.009907 +0x3c2250df +// 0.004022 +0x3b83ca2e +// 0.001127 +0x3a93aebe +// 0.003445 +0x3b61c139 +// 0.004492 +0x3b93302f +// 0.004906 +0x3ba0c602 +// 0.001822 +0x3aeebf90 +// 0.000892 +0x3a69e82b +// 0.003974 +0x3b823c0b +// 0.005182 +0x3ba9cbc9 +// 0.008597 +0x3c0cdb4f +// 0.005750 +0x3bbc6e91 +// 0.003468 +0x3b6341d8 +// 0.011265 +0x3c388f59 +// 0.001924 +0x3afc35d2 +// 0.004476 +0x3b92ac56 +// 0.004181 +0x3b8904b5 +// 0.005153 +0x3ba8dadf +// 0.005254 +0x3bac2b1f +// 0.004098 +0x3b86458b +// 0.003151 +0x3b4e7a1a +// 0.003206 +0x3b52208d +// 0.005245 +0x3babe0e0 +// 0.008471 +0x3c0ac885 +// 0.004553 +0x3b953512 +// 0.004915 +0x3ba10f31 +// 0.009583 +0x3c1d02e1 +// 0.010735 +0x3c2fe16d +// 0.012596 +0x3c4e5e33 +// 0.010384 +0x3c2a2204 +// 0.005127 +0x3ba801b8 +// 0.004365 +0x3b8f0615 +// 0.003706 +0x3b72dfa6 +// 0.006649 +0x3bd9dccc +// 0.008886 +0x3c119758 +// 0.007441 +0x3bf3d559 +// 0.004847 +0x3b9ed658 +// 0.010590 +0x3c2d8087 +// 0.004149 +0x3b87f046 +// 0.012011 +0x3c44ca3e +// 0.002836 +0x3b39e28e +// 0.004125 +0x3b872e62 +// 0.005308 +0x3baded4c +// 0.005948 +0x3bc2e5b9 +// 0.006139 +0x3bc92d35 +// 0.008455 +0x3c0a8612 +// 0.005030 +0x3ba4d59e +// 0.009288 +0x3c182c44 +// 0.003982 +0x3b8279f1 +// 0.005545 +0x3bb5b4a0 +// 0.004275 +0x3b8c1741 +// 0.010316 +0x3c2905dd +// 0.004194 +0x3b896fa4 +// 0.014445 +0x3c6cab82 +// 0.006846 +0x3be05808 +// 0.006901 +0x3be21dab +// 0.003171 +0x3b4fd4f3 +// 0.005377 +0x3bb030d7 +// 0.014998 +0x3c75bbc6 +// 0.008729 +0x3c0f0424 +// 0.007949 +0x3c023cab +// 0.002557 +0x3b279387 +// 0.009955 +0x3c231b6d +// 0.166667 +0x3e2aaaab +// 0.266667 +0x3e888889 +// 0.266667 +0x3e888889 +// 0.300000 +0x3e99999a +// 0.000000 +0x2f5d4ae5 diff --git a/Testing/Patterns/DSP/Bayes/BayesF32/Predicts2_s16.txt b/Testing/Patterns/DSP/Bayes/BayesF32/Predicts2_s16.txt new file mode 100755 index 00000000..f4e21f30 --- /dev/null +++ b/Testing/Patterns/DSP/Bayes/BayesF32/Predicts2_s16.txt @@ -0,0 +1,20 @@ +H +9 +// 0 +0x0000 +// 3 +0x0003 +// 2 +0x0002 +// 2 +0x0002 +// 0 +0x0000 +// 3 +0x0003 +// 0 +0x0000 +// 2 +0x0002 +// 1 +0x0001 diff --git a/Testing/Patterns/DSP/Bayes/BayesF32/Probas2_f32.txt b/Testing/Patterns/DSP/Bayes/BayesF32/Probas2_f32.txt new file mode 100755 index 00000000..043fb8ab --- /dev/null +++ b/Testing/Patterns/DSP/Bayes/BayesF32/Probas2_f32.txt @@ -0,0 +1,74 @@ +W +36 +// -170.307298 +0xc32a4eab +// -267.771059 +0xc385e2b2 +// 16.290787 +0x41825388 +// -234.610901 +0xc36a9c64 +// -140.670377 +0xc30cab9e +// -287.238709 +0xc38f9e8e +// 8.717363 +0x410b7a52 +// -249.629949 +0xc379a144 +// -169.858412 +0xc329dbc1 +// 16.384652 +0x418313c5 +// -3171.146048 +0xc5463256 +// -58.258899 +0xc269091d +// -135.793466 +0xc307cb21 +// 18.502745 +0x4194059f +// -151.200604 +0xc317335b +// -219.228024 +0xc35b3a60 +// -129.752365 +0xc301c09b +// 18.600433 +0x4194cdb0 +// -2255.153596 +0xc50cf275 +// -138.331120 +0xc30a54c4 +// -203.517142 +0xc34b8463 +// -133.665973 +0xc305aa7d +// 19.542878 +0x419c57d1 +// -214.140087 +0xc35623dd +// -463.633133 +0xc3e7d10b +// -141.046419 +0xc30d0be2 +// 27.619449 +0x41dcf4a2 +// -336.431591 +0xc3a8373e +// -328.807438 +0xc3a4675a +// 19.551493 +0x419c6975 +// -143.817546 +0xc30fd14b +// -580.701057 +0xc4112cde +// 21.032212 +0x41a841f9 +// -123.852127 +0xc2f7b44a +// -300.631048 +0xc39650c6 +// -188.210839 +0xc33c35fa diff --git a/Testing/Source/Benchmarks/BayesF32.cpp b/Testing/Source/Benchmarks/BayesF32.cpp new file mode 100755 index 00000000..406e72bc --- /dev/null +++ b/Testing/Source/Benchmarks/BayesF32.cpp @@ -0,0 +1,79 @@ +#include "BayesF32.h" +#include +#include "Error.h" +#include "Test.h" + + + + void BayesF32::test_gaussian_naive_bayes_predict_f32() + { + int16_t p; + + p = arm_gaussian_naive_bayes_predict_f32(&bayes, + inp, + bufp); + + } + + + void BayesF32::setUp(Testing::testID_t id,std::vector& paramsArgs,Client::PatternMgr *mgr) + { + + std::vector::iterator it = paramsArgs.begin(); + this->vecDim = *it++; + this->classNb = *it++; + + switch(id) + { + case BayesF32::TEST_GAUSSIAN_NAIVE_BAYES_PREDICT_F32_1: + { + + int nbp,nbi; + + input.reload(BayesF32::INPUTS2_F32_ID,mgr); + params.reload(BayesF32::PARAMS2_F32_ID,mgr); + dims.reload(BayesF32::DIMS2_S16_ID,mgr); + + int16_t *dimsp=dims.ptr(); + + nbi = dimsp[2*this->nb]; + nbp = dimsp[2*this->nb + 1]; + + const float32_t *paramsp = params.ptr() + nbp; + + this->theta=paramsp ; + this->sigma=paramsp + (this->classNb * this->vecDim); + this->classPrior=paramsp + 2*(this->classNb * this->vecDim); + this->epsilon=paramsp[this->classNb + 2*(this->classNb * this->vecDim)]; + //printf("%f %f %f\n",this->theta[0],this->sigma[0],this->classPrior[0]); + + // Reference patterns are not loaded when we are in dump mode + predicts.reload(BayesF32::PREDICTS2_S16_ID,mgr); + + outputProbas.create(this->classNb,BayesF32::OUT_PROBA_F32_ID,mgr); + + bayes.vectorDimension=this->vecDim; + bayes.numberOfClasses=this->classNb; + bayes.theta=this->theta; + bayes.sigma=this->sigma; + bayes.classPriors=this->classPrior; + bayes.epsilon=this->epsilon; + + this->inp = input.ptr() + nbi; + + this->bufp = outputProbas.ptr(); + + } + break; + + } + + + + } + + void BayesF32::tearDown(Testing::testID_t id,Client::PatternMgr *mgr) + { + (void)id; + this->nb++; + } diff --git a/Testing/bench.txt b/Testing/bench.txt index 1052668c..7cc3a9d0 100755 --- a/Testing/bench.txt +++ b/Testing/bench.txt @@ -747,6 +747,41 @@ group Root { } } + group Bayes{ + class = Bayes + folder = Bayes + + suite Bayes F32 { + class = BayesF32 + folder = BayesF32 + + ParamList { + VECDIM,NBCLASSES + Summary VECDIM,NBCLASSES + Names "Vector dimension","Number of classes" + Formula "VECDIM*NBCLASSES" + } + + Pattern DIMS2_S16_ID : DimsBench2_s16.txt + Pattern INPUTS2_F32_ID : Inputs2_f32.txt + Pattern PARAMS2_F32_ID : Params2_f32.txt + Pattern PREDICTS2_S16_ID : Predicts2_s16.txt + + Output OUT_PROBA_F32_ID : Probas + Output OUT_PREDICT_S16_ID : Predicts + + // Must be consisten with the Python script + Params PARAM1_ID = { + VECDIM = [12,14,20] + NBCLASSES = [3,5,4] + } + + Functions { + arm_gaussian_naive_bayes_predict_f32:test_gaussian_naive_bayes_predict_f32 + } -> PARAM1_ID + } + } + group Barycenter { class = Barycenter