CadDataRec:
TYPE =
RECORD [
dimension: CARDINAL, -- Define r = dimension
givenInputPolynomials: SEQ.Sequence, -- r-variate polynomials in inputVariables
localizationFormula: QFF.Formula ← NIL, -- involving r-variate polynomials in inputVariables
inputPolynomials: SEQ.Sequence, -- givenInputPolynomials + localizationFormula polynomials; localizationFormula = NIL => inputPolynomials = givenInputPolynomials. Initial subsequence assumed to be Contents[parentCad.inputPolynomials], to facilitate computation of inputSignatures for Cells of parentCad
basis: SEQ.Sequence, -- finest squarefree basis
inputPolynomialFactorizations: SEQ.Sequence, -- of CompleteFactorization's, in 1-1 correspondence with inputPolynomials
basisIndividualProjections: SEQ.Sequence, -- of OnePolynomialProjection's; dimension = 1 => NIL. Need not be in same order as basis.
basisPairwiseProjections: SEQ.Sequence, -- of TwoPolynomialProjection's; dimension = 1 => NIL
minPolyVariable: VariableSequences.VariableSequence,
cells: SEQ.Sequence ← NIL, -- of cells, in lexicographic order (for binary searching)
inducedCad: Cad ← NIL, -- dimension = 1 => NIL
parentCad: Cad ← NIL -- if any
signatures: LIST OF SIGNATURES
primaryPolynomials: SEQ.Sequence ← NIL, -- irreducible (<= r)-variate rational polynomials, all of which occur in the bases of some (possibly 0th) induced cad (and hence are invariant on all cells of the r-space cad), whose signs on each cell constitute its primarySignature
In other words, the polynomials in primaryPolynomials may be in different numbers of vars. Poly eval routines are assumed to be able to cope with this, i.e. if asked to eval a poly in i variables at a point with i+j coordinates, will use first i coordinates.
secondaryPolynomials: SEQ.Sequence ← NIL, -- same specs as primaryPolynomials, signs on each cell constitute its secondarySignature. Typically a superset of primaryPolynomials.
projectionType: ProjectionType, -- dimension = 1 => projectionType = none
abstractGraph: Graphs.Graph ← nullGraph,
basisClusters: SEQ.Sequence ← NIL, -- of SignedRegions
otherClusters: SEQ.Sequence ← NIL, -- of SignedRegions
statistics: CadStatisticsRec, -- to be added later
];