11 #if defined TOON_CHECK_BOUNDS || defined TOON_TEST_INTERNALS
16 #ifdef TOON_TEST_INTERNALS
17 throw Internal::BadIndex();
19 std::cerr <<
"Toon index out of range" << std::endl;
31 #if defined TOON_INITIALIZE_SNAN
34 using std::numeric_limits;
35 for(
int i=0; i < n; i++)
36 data[i] = numeric_limits<P>::signaling_NaN();
38 #elif defined TOON_INITIALIZE_QNAN || defined TOON_INITIALIZE_NAN
41 using std::numeric_limits;
42 for(
int i=0; i < n; i++)
43 data[i] = numeric_limits<P>::quiet_NaN();
45 #elif defined TOON_INITIALIZE_VAL
48 for(
int i=0; i < n; i++)
49 data[i] = TOON_INITIALIZE_VAL;
51 #elif defined TOON_INITIALIZE_RANDOM
58 template<
class P>
union datafail
68 static intbits random = { ((std::time(NULL) & 0xffffffff) *1664525L + 1013904223L)& 0xffffffff};
69 unsigned char* cdata =
reinterpret_cast<unsigned char*
>(data);
71 size_t bytes =
sizeof(P)*n, i=0;
88 cdata[i++] = random.c[0];
90 cdata[i++] = random.c[1];
92 cdata[i++] = random.c[2];
94 cdata[i++] = random.c[3];
95 random.i = (1664525L * random.i + 1013904223L) & 0xffffffff;
Everything lives inside this namespace.
static void debug_initialize(P *, int)
static void check_index(int, int)