Back to Forum | View unanswered posts | View active topics
Topic review - std applied to a Gröbner basis |
Author |
Message |
|
|
Post subject: |
Re: std applied to a Gröbner basis |
|
|
hannes wrote: std/slimgb/groeber(id) always do a computation. std(id1,id2) requires id1 to be given as a standard basis. There were some bugsin std(id1,id2) leading to too many computations, which should be fixed now (in the git repository), and a different handling of redTail/redSB (was always applied to id2). Indeed applying the two relevant changesets from the current repository did solve the problem for me. A computation that used to not finish within two days does now finish in ten seconds. Thank you very much and kind regards, Simon
[quote="hannes"]std/slimgb/groeber(id) always do a computation. std(id1,id2) requires id1 to be given as a standard basis. There were some bugsin std(id1,id2) leading to too many computations, which should be fixed now (in the git repository), and a different handling of redTail/redSB (was always applied to id2).[/quote]
Indeed applying the two relevant changesets from the current repository did solve the problem for me. A computation that used to not finish within two days does now finish in ten seconds.
Thank you very much and kind regards, Simon
|
|
|
|
Posted: Thu Jul 19, 2018 1:25 pm |
|
|
|
|
|
Post subject: |
Re: std applied to a Gröbner basis |
|
|
std/slimgb/groeber(id) always do a computation. std(id1,id2) requires id1 to be given as a standard basis. There were some bugsin std(id1,id2) leading to too many computations, which should be fixed now (in the git repository), and a different handling of redTail/redSB (was always applied to id2).
std/slimgb/groeber(id) always do a computation. std(id1,id2) requires id1 to be given as a standard basis. There were some bugsin std(id1,id2) leading to too many computations, which should be fixed now (in the git repository), and a different handling of redTail/redSB (was always applied to id2).
|
|
|
|
Posted: Wed Jul 18, 2018 3:27 pm |
|
|
|
|
|
Post subject: |
std applied to a Gröbner basis |
|
|
Hi! Let id be an ideal that is known to be a Gröbner basis. According to the protocol output, std(id) does involve an actual computation, which obviously is useless if id already is a Gröbner basis: Code: > ring R = 0,(x,y),lp; > option(prot); > ideal id = std(ideal(x^2*y^3-2*x^4*y^4+3*x^5*y, x^4*y^2+2*y^5+3*x^8)); [65535:1]8ss11.13.15.17s20s21s24(2)s25s26s27ss28ss29ss31ss32ss33ss34s35.s36ss37ss38ss39s40-s41ss60 product criterion:2 chain criterion:100 > ideal bla = std(id); [65535:1]8(5)s(4)s1113.s14.s1519.s20(5)s21s.23...24.25.28.ss2935..36.37.47----48- product criterion:1 chain criterion:17
Why is this? And is there a way to work around it? Maybe I am misremembering, but I thought that in the past, when a user did attrib(id,"isSB",1) , then it not only silenced a couple of warnings but also made Singular use that information in std/groebner/slimgb/... In my actual application, I use the std command in the form std(id1, id2), where id1 is known to be a standard basis and id2 provides additional generators. Even in the easiest case, the computation takes several days. But since id1 is known to be Gröbner and since in the easiest case id2 just provides a single ring variable, the computation should be fairly quick, shouldn't it? So, how to achieve it? Best regards, Simon
Hi!
Let id be an ideal that is known to be a Gröbner basis. According to the protocol output, std(id) does involve an actual computation, which obviously is useless if id already is a Gröbner basis: [code] > ring R = 0,(x,y),lp; > option(prot); > ideal id = std(ideal(x^2*y^3-2*x^4*y^4+3*x^5*y, x^4*y^2+2*y^5+3*x^8)); [65535:1]8ss11.13.15.17s20s21s24(2)s25s26s27ss28ss29ss31ss32ss33ss34s35.s36ss37ss38ss39s40-s41ss60 product criterion:2 chain criterion:100 > ideal bla = std(id); [65535:1]8(5)s(4)s1113.s14.s1519.s20(5)s21s.23...24.25.28.ss2935..36.37.47----48- product criterion:1 chain criterion:17 [/code]
Why is this? And is there a way to work around it? Maybe I am misremembering, but I thought that in the past, when a user did attrib(id,"isSB",1) , then it not only silenced a couple of warnings but also made Singular use that information in std/groebner/slimgb/...
In my actual application, I use the std command in the form std(id1, id2), where id1 is known to be a standard basis and id2 provides additional generators. Even in the easiest case, the computation takes several days. But since id1 is known to be Gröbner and since in the easiest case id2 just provides a single ring variable, the computation should be fairly quick, shouldn't it?
So, how to achieve it?
Best regards, Simon
|
|
|
|
Posted: Tue Jul 17, 2018 2:20 pm |
|
|
|
|
|
It is currently Fri May 13, 2022 10:58 am
|
|