]> www.ginac.de Git - cln.git/blobdiff - src/numtheory/cl_nt_sqrtmodp.cc
Replace unused macro with cl_unused.
[cln.git] / src / numtheory / cl_nt_sqrtmodp.cc
index 8c0741e9c7524cb7c6b7316a79bcf887b431e987..5f804edc929da1a90ec5db70c9e23c4e02a1dee6 100644 (file)
@@ -1,7 +1,7 @@
 // sqrt_mod_p().
 
 // General includes.
-#include "cl_sysdep.h"
+#include "base/cl_sysdep.h"
 
 // Specification.
 #include "cln/numtheory.h"
@@ -9,7 +9,7 @@
 
 // Implementation.
 
-#include "cl_I.h"
+#include "integer/cl_I.h"
 #include "cln/exception.h"
 
 #undef floor
@@ -113,12 +113,13 @@ static const sqrt_mod_p_t cantor_zassenhaus_sqrt (const cl_modint_ring& R, const
                };
                const gcd_result gcd (const pol2& u)
                {
-                       if (zerop(u.c1))
+                       if (zerop(u.c1)) {
                                // constant polynomial u(X)
                                if (zerop(u.c0))
                                        return gcd_result(2);
                                else
                                        return gcd_result(0);
+                       }
                        // u(X) = c0 + c1*X has zero -c0/c1.
                        var cl_MI_x c1inv = R->recip(u.c1);
                        if (c1inv.condition)
@@ -176,16 +177,6 @@ static const sqrt_mod_p_t cantor_zassenhaus_sqrt (const cl_modint_ring& R, const
        }
 }
 
-#if defined(__GNUC__) && defined(__s390__) && (__GNUC__ == 2)  // Workaround GCC-bug (see below)
-               struct cl_sylow2gen_property : public cl_property {
-                       SUBCLASS_cl_property();
-               public:
-                       cl_I h_rep;
-                       // Constructor.
-                       cl_sylow2gen_property (const cl_symbol& k, const cl_MI& h) : cl_property (k), h_rep (h.rep) {}
-               };
-#endif
-
 // Algorithm 3 (for p > 2 only):
 // Tonelli-Shanks.
 // [Cohen, A Course in Computational Algebraic Number Theory,
@@ -226,7 +217,6 @@ static const sqrt_mod_p_t tonelli_shanks_sqrt (const cl_modint_ring& R, const cl
                // Since this computation is a bit costly, we cache its result
                // on the ring's property list.
                static const cl_symbol key = (cl_symbol)(cl_string)"generator of 2-Sylow subgroup of (Z/pZ)^*";
-#if !(defined(__GNUC__) && defined(__s390__) && (__GNUC__ == 2))  // Workaround GCC-bug (see above)
                struct cl_sylow2gen_property : public cl_property {
                        SUBCLASS_cl_property();
                public:
@@ -234,7 +224,6 @@ static const sqrt_mod_p_t tonelli_shanks_sqrt (const cl_modint_ring& R, const cl
                        // Constructor.
                        cl_sylow2gen_property (const cl_symbol& k, const cl_MI& h) : cl_property (k), h_rep (h.rep) {}
                };
-#endif
                var cl_sylow2gen_property* prop = (cl_sylow2gen_property*) R->get_property(key);
                if (prop)
                        h = cl_MI(R,prop->h_rep);