The only user of doublefakul_table array is doublefactorial function, so
put that array inside it in order to avoid possible static initialization
order problems.
// General includes.
#include "cl_sysdep.h"
-CL_PROVIDE(cl_I_doublefactorial)
-
// Specification.
#include "cln/integer.h"
// ord2(n!) = n - logcount(n) to account both for 2^m and for powers of
// two in factorial(m).
-static cl_I const doublefakul_table [] = {
+const cl_I doublefactorial (uintL n) // assume n >= 0 small
+{
+ static cl_I const doublefakul_table [] = {
1,
1UL,
1UL*2,
#endif
#endif
#endif
-};
+ };
-const cl_I doublefactorial (uintL n) // assume n >= 0 small
-{
if (n < sizeof(doublefakul_table)/sizeof(cl_I))
{ return doublefakul_table[n]; }
else {
} // namespace cln
-CL_PROVIDE_END(cl_I_doublefactorial)
-