Chart-records and global variables
Basic objects are defined in context of charts, that is, there must
always be a chart in which the basic object exists. By this
correspondence the data of basic objects and charts that belong
together are stored in a common data structure, which is called a
chart-record (or by overloading the name, simply: chart).
A chart-record contains the data of exactly one chart, and a list of
data of basic objects that belong to the chart. This list contains at
least one WBO, and it works as a stack. The structure of this basic
object stack comes from Lemma 6.12 in [EV00].
For any SBO in the stack we have that either it locally contains a
codimension one subset, which will be the next blowing up center, or
its singular locus is the same as the weighted singular locus of the
WBO derived from it by coefficient object computation.
The nature of the computation requires to keep the chart-records in
global variables. There are three main global variables containing
charts with another one that store information about the tree
structure of the charts. There are additional variables in connection
with the special features of the package or for storing administrative
data. The global variables are:
- globalChartList
- The list chart-records which are not
resolved yet.
- resolvedChartList
- The list of resolved chart records
(i.e. charts which contain a single resolved WBO).
- chartHistory
- The array of all charts of the resolution (the
whole resolution tree).
- chartTree
- A list of records for the HTML exporter, with
entries:
- the ID of the parent chart
- a list of pairs [child_ID, info] representing
children of this chart, where info is the expression to
be printed in the HTML table under the link to the corresponding
child,
- an integer code of the operation that was performed on the
parent chart (1-blowup, 2-exchange, 3-cover).
- globalChartCounter
- An integer containing the next available
index for a chart ID.
- treeOut
- A list of node information in the resolution tree (used
by the HTML exporter) with the structure:
- the ID of the chart of the node (a name),
- the number of leafs in the subtree of the resolution tree
given by this node as its root (an integer),
- the depth of the node in the resolution tree (an integer),
- a boolean value which is true iff the node is a leaf,
- the code of the operation that was taken on the chart of the
node (1-blowup, 2-exchange, 3-cover, 4-resolved).
- desingcfg
- a table of configuration information for the package.
The desingcfg table contains the following configuration
variables:
- gblib
- string that indicates which Gröbner package is to be
used: "": use the standard package in Maple,
"algolib": use the Algolib package, "Gb": use the
Gb package.
- dropHistory
- (boolean) true - do not keep the chart history
(i.e. keep only the leafs), false (default) - keep the whole chart
tree,
- desingDebug
- (boolean) true - print debug info; false (default)
- print nothing,
- dumpHTML
- (boolean) true - generate HTML output, false (default)
- do not produce HTML (see also section *),
- htmlpath
- (string) the name of the directory (ending with a /)
in which the HTML files should be created (default "", i.e. the
current working directory), see also section *,
- htmlstyle
- (integer) 0 (default) - tree.html shows the maximal
values of the stratifying function over the charts, 1 - tree.html
shows the chart IDs (see also section *),
- saveWork
- (boolean) true - save the state of the computation
periodically; false (default) - no saving (see also section *),
- saveTime
- (integer) the time interval (in seconds) between the
saves (see also section *),
- saveFile
- (string) the name of the file in which the saving is
done (see also section *),
- haltingmode
- (integer) a control parameter to stop the
resolution in the non-hypersurface case: 0 - resolve the WBOs of
largest dimension completely (i.e. achieve principalization of
ideals), 1 - stop when the nonsingular blowing up center is the same
as the proper part of the ideal of the WBO with largest dimension
(resolution of singularities). This parameter is automatically set,
by the procedures to be called for singularity resolution and
principalization,
- progressmode
- (integer) default: 0, see
section *,
- useDEP2
- (boolean) default: false, see
section *,
- skewcover
- (boolean) default: false, see
section *,
- rotationrange
- (integer) default: 10, see
section *,
- usenctest
- (boolean) default: false, see
section *,
- maxchartindex
- (integer) the size of the array allocated for
chartHistory (default 65000).
The global variables pglobalChartList, pglobalChartCounter,
pchartHistory, pchartTree, presolvedChartList, pdesingDebug,
pdumpHTML has the same role as their counterparts, but they are
used in the main thread in a distributed computation. The global
variable chartHistorypdh stores the resolution data obtained
over each principal open subset of the input projective chart in pairs
(chartHistory, globalChartCounter).
The following global variables are used by certain procedures of the
package to optimize performance (e.g. not to pass the same information
to recursively called procedures over and over again):
- desingmonseq
- used by
`desing/monsequence`,
- desingSingS, desingSingIND, desingSingPDER, desingSingSL
- used
by `desing/singrc` and
`desing/singrc2`,