| 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 |