| 1 |
gezelter |
1719 |
/*************************************************************************** |
| 2 |
|
|
* This program is free software; you can redistribute it and/or modify * |
| 3 |
|
|
* it under the terms of the GNU General Public License as published by * |
| 4 |
|
|
* the Free Software Foundation; either version 3 of the License, or * |
| 5 |
|
|
* (at your option) any later version. * |
| 6 |
|
|
* * |
| 7 |
|
|
* This program is distributed in the hope that it will be useful, * |
| 8 |
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of * |
| 9 |
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
| 10 |
|
|
* GNU General Public License for more details. * |
| 11 |
|
|
* * |
| 12 |
|
|
* You should have received a copy of the GNU General Public License * |
| 13 |
|
|
* along with this program; if not, see <http://www.gnu.org/licenses/>. * |
| 14 |
|
|
***************************************************************************/ |
| 15 |
|
|
#include "config.h" |
| 16 |
|
|
const int maxFact = 151; // Largest factorial computed |
| 17 |
|
|
const RealType fact[maxFact] = |
| 18 |
|
|
{ |
| 19 |
|
|
1.0, |
| 20 |
|
|
1.0, |
| 21 |
|
|
2.0, |
| 22 |
|
|
6.0, |
| 23 |
|
|
24.0, |
| 24 |
|
|
120.0, |
| 25 |
|
|
720.0, |
| 26 |
|
|
5040.0, |
| 27 |
|
|
40320.0, |
| 28 |
|
|
362880.0, |
| 29 |
|
|
3628800.0, |
| 30 |
|
|
39916800.0, |
| 31 |
|
|
479001600.0, |
| 32 |
|
|
6227020800.0, |
| 33 |
|
|
87178291200.0, |
| 34 |
|
|
1307674368000.0, |
| 35 |
|
|
20922789888000.0, |
| 36 |
|
|
355687428096000.0, |
| 37 |
|
|
6402373705728000.0, |
| 38 |
|
|
1.21645100408832e17, |
| 39 |
|
|
2.43290200817664e18, |
| 40 |
|
|
5.109094217170944e19, |
| 41 |
|
|
1.1240007277776077e21, |
| 42 |
|
|
2.5852016738884978e22, |
| 43 |
|
|
6.2044840173323941e23, |
| 44 |
|
|
1.5511210043330986e25, |
| 45 |
|
|
4.0329146112660565e26, |
| 46 |
|
|
1.0888869450418352e28, |
| 47 |
|
|
3.0488834461171384e29, |
| 48 |
|
|
8.8417619937397008e30, |
| 49 |
|
|
2.6525285981219103e32, |
| 50 |
|
|
8.2228386541779224e33, |
| 51 |
|
|
2.6313083693369352e35, |
| 52 |
|
|
8.6833176188118859e36, |
| 53 |
|
|
2.9523279903960412e38, |
| 54 |
|
|
1.0333147966386144e40, |
| 55 |
|
|
3.7199332678990118e41, |
| 56 |
|
|
1.3763753091226343e43, |
| 57 |
|
|
5.2302261746660104e44, |
| 58 |
|
|
2.0397882081197442e46, |
| 59 |
|
|
8.1591528324789768e47, |
| 60 |
|
|
3.3452526613163803e49, |
| 61 |
|
|
1.4050061177528798e51, |
| 62 |
|
|
6.0415263063373834e52, |
| 63 |
|
|
2.6582715747884485e54, |
| 64 |
|
|
1.1962222086548019e56, |
| 65 |
|
|
5.5026221598120885e57, |
| 66 |
|
|
2.5862324151116818e59, |
| 67 |
|
|
1.2413915592536073e61, |
| 68 |
|
|
6.0828186403426752e62, |
| 69 |
|
|
3.0414093201713376e64, |
| 70 |
|
|
1.5511187532873822e66, |
| 71 |
|
|
8.0658175170943877e67, |
| 72 |
|
|
4.2748832840600255e69, |
| 73 |
|
|
2.3084369733924138e71, |
| 74 |
|
|
1.2696403353658276e73, |
| 75 |
|
|
7.1099858780486348e74, |
| 76 |
|
|
4.0526919504877221e76, |
| 77 |
|
|
2.3505613312828789e78, |
| 78 |
|
|
1.3868311854568986e80, |
| 79 |
|
|
8.3209871127413916e81, |
| 80 |
|
|
5.0758021387722484e83, |
| 81 |
|
|
3.1469973260387939e85, |
| 82 |
|
|
1.9826083154044401e87, |
| 83 |
|
|
1.2688693218588417e89, |
| 84 |
|
|
8.2476505920824715e90, |
| 85 |
|
|
5.4434493907744307e92, |
| 86 |
|
|
3.6471110918188683e94, |
| 87 |
|
|
2.4800355424368305e96, |
| 88 |
|
|
1.711224524281413e98, |
| 89 |
|
|
1.197857166996989e100, |
| 90 |
|
|
8.5047858856786218e101, |
| 91 |
|
|
6.1234458376886077e103, |
| 92 |
|
|
4.4701154615126834e105, |
| 93 |
|
|
3.3078854415193856e107, |
| 94 |
|
|
2.4809140811395391e109, |
| 95 |
|
|
1.8854947016660498e111, |
| 96 |
|
|
1.4518309202828584e113, |
| 97 |
|
|
1.1324281178206295e115, |
| 98 |
|
|
8.9461821307829729e116, |
| 99 |
|
|
7.1569457046263779e118, |
| 100 |
|
|
5.7971260207473655e120, |
| 101 |
|
|
4.7536433370128398e122, |
| 102 |
|
|
3.9455239697206569e124, |
| 103 |
|
|
3.314240134565352e126, |
| 104 |
|
|
2.8171041143805494e128, |
| 105 |
|
|
2.4227095383672724e130, |
| 106 |
|
|
2.1077572983795269e132, |
| 107 |
|
|
1.8548264225739836e134, |
| 108 |
|
|
1.6507955160908452e136, |
| 109 |
|
|
1.4857159644817607e138, |
| 110 |
|
|
1.3520015276784023e140, |
| 111 |
|
|
1.24384140546413e142, |
| 112 |
|
|
1.1567725070816409e144, |
| 113 |
|
|
1.0873661566567424e146, |
| 114 |
|
|
1.0329978488239052e148, |
| 115 |
|
|
9.916779348709491e149, |
| 116 |
|
|
9.6192759682482062e151, |
| 117 |
|
|
9.426890448883242e153, |
| 118 |
|
|
9.3326215443944096e155, |
| 119 |
|
|
9.3326215443944102e157, |
| 120 |
|
|
9.4259477598383536e159, |
| 121 |
|
|
9.6144667150351211e161, |
| 122 |
|
|
9.9029007164861754e163, |
| 123 |
|
|
1.0299016745145622e166, |
| 124 |
|
|
1.0813967582402903e168, |
| 125 |
|
|
1.1462805637347078e170, |
| 126 |
|
|
1.2265202031961373e172, |
| 127 |
|
|
1.3246418194518284e174, |
| 128 |
|
|
1.4438595832024928e176, |
| 129 |
|
|
1.5882455415227421e178, |
| 130 |
|
|
1.7629525510902437e180, |
| 131 |
|
|
1.9745068572210728e182, |
| 132 |
|
|
2.2311927486598123e184, |
| 133 |
|
|
2.5435597334721862e186, |
| 134 |
|
|
2.9250936934930141e188, |
| 135 |
|
|
3.3931086844518965e190, |
| 136 |
|
|
3.969937160808719e192, |
| 137 |
|
|
4.6845258497542883e194, |
| 138 |
|
|
5.5745857612076033e196, |
| 139 |
|
|
6.6895029134491239e198, |
| 140 |
|
|
8.09429852527344e200, |
| 141 |
|
|
9.8750442008335976e202, |
| 142 |
|
|
1.2146304367025325e205, |
| 143 |
|
|
1.5061417415111404e207, |
| 144 |
|
|
1.8826771768889254e209, |
| 145 |
|
|
2.3721732428800459e211, |
| 146 |
|
|
3.0126600184576582e213, |
| 147 |
|
|
3.8562048236258025e215, |
| 148 |
|
|
4.9745042224772855e217, |
| 149 |
|
|
6.4668554892204716e219, |
| 150 |
|
|
8.4715806908788174e221, |
| 151 |
|
|
1.1182486511960039e224, |
| 152 |
|
|
1.4872707060906852e226, |
| 153 |
|
|
1.9929427461615181e228, |
| 154 |
|
|
2.6904727073180495e230, |
| 155 |
|
|
3.6590428819525472e232, |
| 156 |
|
|
5.0128887482749898e234, |
| 157 |
|
|
6.9177864726194859e236, |
| 158 |
|
|
9.6157231969410859e238, |
| 159 |
|
|
1.346201247571752e241, |
| 160 |
|
|
1.8981437590761701e243, |
| 161 |
|
|
2.6953641378881614e245, |
| 162 |
|
|
3.8543707171800706e247, |
| 163 |
|
|
5.5502938327393013e249, |
| 164 |
|
|
8.0479260574719866e251, |
| 165 |
|
|
1.1749972043909099e254, |
| 166 |
|
|
1.7272458904546376e256, |
| 167 |
|
|
2.5563239178728637e258, |
| 168 |
|
|
3.8089226376305671e260, |
| 169 |
|
|
5.7133839564458505e262 |
| 170 |
|
|
}; // array of precomputed factorials |