// // Created by maximilian on 2/9/24. // #ifndef ENDGAME_ANALYZER_FACTORIAL_H #define ENDGAME_ANALYZER_FACTORIAL_H #include namespace Factorial { inline std::uint64_t factorial(std::size_t n) { static const std::uint64_t table[] = { 1, 1 , 2 , 6 , 24 , 120 , 720 , 5040 , 40320 , 362880 , 3628800 , 39916800 , 479001600 , 6227020800 , 87178291200 , 1307674368000 , 20922789888000 , 355687428096000 , 6402373705728000 , 121645100408832000 , 2432902008176640000 , }; assert(n <= 20); return table[n]; } } #endif //ENDGAME_ANALYZER_FACTORIAL_H