Browse Source

Remove CL_REQUIRE/CL_PROVIDE(cl_I_doublefactorial) as it's unnecessary.

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.
master
Alexei Sheplyakov 16 years ago
parent
commit
7d93d4d669
  1. 8
      src/integer/misc/combin/cl_I_doublefactorial.cc

8
src/integer/misc/combin/cl_I_doublefactorial.cc

@ -3,8 +3,6 @@
// General includes. // General includes.
#include "cl_sysdep.h" #include "cl_sysdep.h"
CL_PROVIDE(cl_I_doublefactorial)
// Specification. // Specification.
#include "cln/integer.h" #include "cln/integer.h"
@ -28,6 +26,8 @@ namespace cln {
// ord2(n!) = n - logcount(n) to account both for 2^m and for powers of // ord2(n!) = n - logcount(n) to account both for 2^m and for powers of
// two in factorial(m). // two in factorial(m).
const cl_I doublefactorial (uintL n) // assume n >= 0 small
{
static cl_I const doublefakul_table [] = { static cl_I const doublefakul_table [] = {
1, 1,
1UL, 1UL,
@ -126,8 +126,6 @@ static cl_I const doublefakul_table [] = {
#endif #endif
}; };
const cl_I doublefactorial (uintL n) // assume n >= 0 small
{
if (n < sizeof(doublefakul_table)/sizeof(cl_I)) if (n < sizeof(doublefakul_table)/sizeof(cl_I))
{ return doublefakul_table[n]; } { return doublefakul_table[n]; }
else { else {
@ -181,5 +179,3 @@ const cl_I doublefactorial (uintL n) // assume n >= 0 small
} // namespace cln } // namespace cln
CL_PROVIDE_END(cl_I_doublefactorial)
Loading…
Cancel
Save