From 117eb8c30fc9e991c4decca4832b1d19036c4c65 Mon Sep 17 00:00:00 2001 From: Claus Fieker Date: Wed, 9 Aug 2023 11:39:11 +0200 Subject: [PATCH] fix absprimdec - an unlucky tranformation was chosen should fix Oscar #2531 --- Singular/LIB/primdec.lib | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/Singular/LIB/primdec.lib b/Singular/LIB/primdec.lib index 22572a4c28..ef0ee550e5 100644 --- a/Singular/LIB/primdec.lib +++ b/Singular/LIB/primdec.lib @@ -3217,15 +3217,23 @@ static proc decomp_i(int patchPrimaryDecomposition, ideal i,list #) } else { - invsigma=basering,maxideal(1); - jmap=randomLast(50); - sigma=basering,jmap; - jmap[nn]=2*var(nn)-jmap[nn]; - invsigma=basering,jmap; - II=groebner(sigma(II)); - absotto = absFactorize(II[1],77); - II=var(nn); - tempo= primary[2*ab-1],primary[2*ab],absotto,string(invsigma(II)); + invsigma=basering,maxideal(1); + while(1) + { + jmap=randomLast(50); + sigma=basering,jmap; + jmap[nn]=2*var(nn)-jmap[nn]; + invsigma=basering,jmap; + ideal JJ=groebner(sigma(II)); + if (deg(JJ[1]) == vdim(JJ)) + { + II = JJ; + break; + } + } + absotto = absFactorize(II[1],77); + II=var(nn); + tempo= primary[2*ab-1],primary[2*ab],absotto,string(invsigma(II)); } resu[ab]=tempo; }