]> www.ginac.de Git - ginac.git/blobdiff - ginac/polynomial/cra_garner.cpp
[bugfix] integer_cra: check if arguments contain at least 2 moduli
[ginac.git] / ginac / polynomial / cra_garner.cpp
index b400adbe69fca8d9c278e3f370197faf112aa2e6..76d1e075c1d1a5e63395f8ea6be786433c2422e2 100644 (file)
@@ -3,6 +3,7 @@
 #include <vector>
 #include <cstddef>
 #include "cra_garner.hpp"
+#include "compiler.h"
 
 namespace cln
 {
@@ -73,6 +74,8 @@ mixed_radix_2_ordinary(const vector<cl_I>& mixed_radix_coeffs,
 cl_I integer_cra(const vector<cl_I>& residues,
                 const vector<cl_I>& moduli)
 {
+       if (unlikely(moduli.size() < 2))
+               throw std::invalid_argument("integer_cra: need at least 2 moduli");
 
        vector<cl_MI> recips(moduli.size() - 1);
        compute_recips(recips, moduli);