CoCoALib: Issueshttps://cocoa.dima.unige.it/redmine/https://cocoa.dima.unige.it/redmine/redmine/favicon.ico?15088260392024-03-25T18:06:41ZCoCoA Project
Redmine Feature #1803 (New): Improve trivial operations with ideal whose GBasis is [1]https://cocoa.dima.unige.it/redmine/issues/18032024-03-25T18:06:41ZAnna Maria Bigatti
<p>Sum is clever -- if HasGBasis(I) and is ideal(1).<br />Do the same for product and for other similar operations.<br /><pre>
use QQ[x,y,z];
I := ideal(x, x-1); GBasis(I);
ideal(y) + I; ---> gives (1) :-)
ideal(y) * I; ---> uses generators :-(
</pre></p> Feature #1784 (New): Add flag IhaveHomogGensValue for ideals in SparsePolyRing?https://cocoa.dima.unige.it/redmine/issues/17842024-03-01T13:36:11ZAnna Maria Bigatti
<p>We already have<br /><pre>
mutable bool3 IhaveMonomialGens3Value;
mutable bool3 IhaveSqFreeMonomialGens3Value;
</pre><br />(because optimized function might be even faster than the check).<br />Should we also have IhaveHomogGensValue?<br />I'm not sure it is so critical, but think about it.</p> Feature #1654 (New): New function IsInSymbolshttps://cocoa.dima.unige.it/redmine/issues/16542022-01-28T07:51:14ZAnna Maria Bigatti
<p>We misuse <strong><code>AreDistinct</code></strong> to test whether a symbol is in a PolyRing.<br />The advantage is that <strong><code>AreDistinct</code></strong> sees just symbols, but that's costly!</p>
<p>This is a very invasive little function (in all rings).<br />I think we'll need also something like <strong><code>IsArityConsistent</code></strong>.</p> Bug #1620 (New): MinPolyQuot not documentedhttps://cocoa.dima.unige.it/redmine/issues/16202021-10-15T12:24:57ZFlorian Walsh
<p>MinPolyQuot is available in CoCoALib but is not documented.</p> Design #921 (New): Design GBMillhttps://cocoa.dima.unige.it/redmine/issues/9212016-09-16T06:29:50ZAnna Maria Bigatti
<p>(I believe we have already written something long these lines, but I cannot find it)</p> Feature #919 (New): Hilbert Driven GBasishttps://cocoa.dima.unige.it/redmine/issues/9192016-09-07T14:22:55ZAnna Maria Bigatti
<p>Hilbert-driven: to be done. Trivial in principle, probably requires designing the GBMill.</p> Design #871 (New): Redesign idealshttps://cocoa.dima.unige.it/redmine/issues/8712016-04-26T13:01:25ZJohn Abbott
<p>Review the design of ideals.</p>
Some points to bear in mind:
<ul>
<li>an ideal should probably be immutable -- any operation which would "change" the ideal should actually produce a new ideal</li>
<li>while the main ideals are those in poly rings, I'd like the design to work also for ideals in <code>ZZ</code> (at least).</li>
</ul> Feature #282 (New): Global setting: to use IsProbPrime in place of IsPrimehttps://cocoa.dima.unige.it/redmine/issues/2822012-12-04T11:14:57ZJohn Abbott
<p>An idea: since <strong><code>IsPrime</code></strong> can be extremely slow for larger inputs, and since <strong><code>IsProbPrime</code></strong> is normally extremely reliable, we could allow the user to specify when creating the <code>GlobalManager</code> to allow calls to <code>IsPrime</code> to be redirected silently to <code>IsProbPrime</code>.</p>
<p>There are several other functions where a probabilistic version can be much faster than a fully deterministic equivalent; so it may be nice to offer flags for these too.</p>
<p>We could also put into the <code>GlobalManager</code> the default number of iterations which <code>IsProbPrime</code> performs. And similarly for any other default values?</p> Feature #281 (New): Store unique copy of FF(p) in GlobalManagerhttps://cocoa.dima.unige.it/redmine/issues/2812012-12-03T14:31:38ZAnna Maria Bigatti
<p>Now calling <strong>ZZ/(7)</strong> twice produces two different rings.<br />Maybe that should be stored into GlobalManager.</p> Bug #277 (New): Eliminate class RefPPMonoidElem?https://cocoa.dima.unige.it/redmine/issues/2772012-11-23T17:24:39ZJohn Abbott
<p>Recently I eliminated the class <code>RefRingElem</code> for ring elements.<br />Should I do the same for <strong><code>RefPPMonoidElem</code></strong>?<br />Presumably the same reasoning applies.</p> Feature #258 (New): Multivariate liftinghttps://cocoa.dima.unige.it/redmine/issues/2582012-10-09T13:51:35ZJohn Abbott
<p>In CoCoA-4 there is some rather inefficient code for multivariate lifting. Can it be made more efficient?</p>
<p>In any case, we need a good (sparse?) multivariate lifter in CoCoALib. Zippel's method needs good (exact) linear algebra. We also want to avoid rational arithmetic.</p>
<p>If I recall well, the multivariate lifter was one of the trickiest piece of code I've ever written.</p> Feature #257 (New): Transcribe C4 code for GCD in QQ[x]https://cocoa.dima.unige.it/redmine/issues/2572012-10-09T13:36:30ZJohn Abbott
<p>The old CoCoA-4 univariate GCD code should be transcribed into CoCoALib.</p>
It comprises:
<ul>
<li>gcd in Fp[x] via standard euclidean algorithm.</li>
<li>Removal of content.</li>
<li>Leading coeff handling.</li>
<li>Optional reversal trick.</li>
<li>chinese remaindering of many modular images</li>
<li>heuristic stopping criterion & check</li>
<li>final content correction</li>
</ul>
<p>Why not use Hensel?</p> Bug #130 (New): Design problem in idealshttps://cocoa.dima.unige.it/redmine/issues/1302012-04-15T20:07:17ZJohn Abbott
<p>Now that there is a linear system solver I tried to write a general implementation for<br /><code>SparsePolyRingBase::IdealImpl::myDivMod</code><br />but encountered some (serious?) technical problems. It seems to be impossible to compute the quotient basis of the <code>this</code> ideal, because <code>this</code> is a pointer-to-constant, and the pseudo-ctor <code>ideal</code> wants a non-const pointer.</p>
<p>No idea how to solve this one. One possibility would be to pass in the original ideal and hand that to <code>QuotientBasis</code>.</p>
<p>Anyone got any good ideas?</p> Feature #126 (New): New datastructures directoryhttps://cocoa.dima.unige.it/redmine/issues/1262012-04-05T12:26:11ZJohn Abbott
<p>Create a new datastructures directory to hold source code for impls of various datastructures (e.g. the various DistrMPoly impls).</p>
<p>It makes sense that this code be kept separate from the main "algebraic" code.</p>
<p>Some of the old factorizer code should/could be moved there too.</p>
<p>This may also help understand how to connect NTL to CoCoALib.</p> Bug #6 (New): Sort out RingElem, RefRingElem, ConstRefRingElem messhttps://cocoa.dima.unige.it/redmine/issues/62011-10-19T10:45:25ZJohn Abbott
<p>Study in detail the current approach to handling _RingElem_s.</p>
<p>Write a report discussing the pros and cons, then decide what to do.</p>