15.3 Commonly Used NCProcess Options and Commands

15.3.1 UserSelect aListOfPolynomials

A valuable option for NCProcess is UserSelect. Using the option

UserSelect →  aListOf  Polynomials
forces the elements of the list aListOfPolynomials to appear in a “User Selected” part of the spreadsheet generated during this call to NCProcess. It also affects the order in which the polynomials are used inside NCMakeGB as well as reduction algorithms described in §19.1. The user selected polynomials are processed early and polynomials processed later tend to be eliminated.

15.3.2 DegreeCapaNumber1 and DegreeSumCapaNumber2

One way to reduce the run time for NCProcess is to use the options capping the degree of the polynomials that are produced in the course of running NCProcess.

This is valuable since the user will ordinarily know that a polynomial of a very high degree will not be useful to him, hence there is no reason to produce it. It is not the time that it takes to produce a large polynomial that is the primary factor; rather, it is the reduction algorithms that will get bogged down trying to remove it. Degree caps can prevent the algorithm from ever producing polynomials over a certain degree, or combining polynomials over a certain degree, and the user will still be left with a generating set for the ideal generated by the input relations. There are two different options associated with degree caps. For instance,

DegreeCap   → 8
would prevent a polynomial of degree 8 or higher from combining with a polynomial of higher degree.
DegreeSumCap    →  10
would prevent two polynomials whose degrees add up to 10 or more from combining. Degree caps could prevent an important relation from being created, so when there is a lack of progress, raising the degree caps as well as the iteration number would be the next step.

WE URGE USE OF DEGREE CAPS. THEY SAVE A LOT OF TIME.

In addition, DegreeCap and DegreeSumCap are options which cap the degree of polynomials occurring in NCMakeGB. Indeed, calling DegreeCap in NCProcess just sets the DegreeCap for running NCMakeGB inside of NCProcess.

15.3.3 MainUnknownsaListOfIndeterminates

If aListOfIndeterminates are given, then the output of NCProcess will only include equations whose unknowns are all contained in aListOfIndeterminates or are functions of them.

15.3.4 NCShortFormulaLength

If NCShortFormula is set to an integer, Length, the output of NCProcess will only contain expressions whose Mathematica defined LeafCount[ ] is less than Length. This could be useful in producing TEX output when very long expressions are involved. This option also reduces run time significantly since there is much less output to process. We often have good luck with NCShortFormulas300. If set to -1 no length elimination will be done.

WARNING The two options given above, NCShortFormula and MainUnknowns, actually eliminate polynomials from the output of NCProcess. If one of these options is set the system of equations which is the output of NCProcess is not equivalent to the system of equations which is input as is usually the case.

15.3.5 Getting Categories

GetCategory[aListOfV ariables,NCPAns] retrieves the polynomials in the category stored in NCPAns corresponding to the list of variables in the list aListOfV ariables. See Chapter 14.3. To be recognized immediately after an NCProcess run aListOfV ariables must equal a list of unknowns which corresponds to a category in that NCProcess run. The NCProcess stores all category information in NCPAns. The next NCProcess starts by clearing NCPAns and writes the category information it produces in NCPAns.