previous up next
Go backward to Basic objects
Go up to Data structures

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:

The list chart-records which are not resolved yet.
The list of resolved chart records (i.e. charts which contain a single resolved WBO).
The array of all charts of the resolution (the whole resolution tree).
A list of records for the HTML exporter, with entries:
An integer containing the next available index for a chart ID.
A list of node information in the resolution tree (used by the HTML exporter) with the structure:
a table of configuration information for the package.

The desingcfg table contains the following configuration variables:

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.
(boolean) true - do not keep the chart history (i.e. keep only the leafs), false (default) - keep the whole chart tree,
(boolean) true - print debug info; false (default) - print nothing,
(boolean) true - generate HTML output, false (default) - do not produce HTML (see also section *),
(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 *,
(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 *),
(boolean) true - save the state of the computation periodically; false (default) - no saving (see also section *),
(integer) the time interval (in seconds) between the saves (see also section *),
(string) the name of the file in which the saving is done (see also section *),
(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,
(integer) default: 0, see section *,
(boolean) default: false, see section *,
(boolean) default: false, see section *,
(integer) default: 10, see section *,
(boolean) default: false, see section *,
(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):

used by `desing/monsequence`,
desingSingS, desingSingIND, desingSingPDER, desingSingSL
used by `desing/singrc` and `desing/singrc2`,

previous up next