X-Git-Url: https://ginac.de/CLN/cln.git//cln.git?a=blobdiff_plain;f=src%2Fmodinteger%2Fcl_MI_int32.h;h=8f073d611ce760c189eab33029e520bb95b73f9d;hb=b338e09d3bd41878b6528202133f2b9a77777e6b;hp=16e0f98d93ec84fb913fd78eb9a6646073ac46fd;hpb=dd9e0f894eec7e2a8cf85078330ddc0a6639090b;p=cln.git diff --git a/src/modinteger/cl_MI_int32.h b/src/modinteger/cl_MI_int32.h index 16e0f98..8f073d6 100644 --- a/src/modinteger/cl_MI_int32.h +++ b/src/modinteger/cl_MI_int32.h @@ -1,5 +1,7 @@ // 1 < m < 2^32, standard representation +namespace cln { + static const _cl_MI int32_plus (cl_heap_modint_ring* R, const _cl_MI& x, const _cl_MI& y) { var uint32 xr = cl_I_to_UL(x.rep); @@ -72,8 +74,26 @@ class cl_heap_modint_ring_int32 : public cl_heap_modint_ring { SUBCLASS_cl_heap_modint_ring() public: // Constructor. - cl_heap_modint_ring_int32 (const cl_I& m) - : cl_heap_modint_ring (m, &std_setops, &int32_addops, &int32_mulops) {} - // Virtual destructor. + cl_heap_modint_ring_int32 (const cl_I& m); + // Destructor. ~cl_heap_modint_ring_int32 () {} }; + +static void cl_modint_ring_int32_destructor (cl_heap* pointer) +{ + (*(cl_heap_modint_ring_int32*)pointer).~cl_heap_modint_ring_int32(); +} + +cl_class cl_class_modint_ring_int32 = { + cl_modint_ring_int32_destructor, + cl_class_flags_modint_ring +}; + +// Constructor. +inline cl_heap_modint_ring_int32::cl_heap_modint_ring_int32(const cl_I& m) + : cl_heap_modint_ring (m, &std_setops, &int32_addops, &int32_mulops) +{ + type = &cl_class_modint_ring_int32; +} + +} // namespace cln