]> www.ginac.de Git - cln.git/blobdiff - src/modinteger/cl_MI_int32.h
Update documentation about infrastructure requirements.
[cln.git] / src / modinteger / cl_MI_int32.h
index 16e0f98d93ec84fb913fd78eb9a6646073ac46fd..8f073d611ce760c189eab33029e520bb95b73f9d 100644 (file)
@@ -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