It is also an interface procedure under the short name
dualgraph. It computes the dual hypergraph of the normal
crossing total transform obtained by the resolution algorithm. In
this hypergraph a node is an exceptional divisor, and there is a
hyper-edge between a given subset of nodes if the corresponding
exceptional divisors have a common point. The procedure takes the
resolution information from the global variables chartHistory
There is the question of what is to be considered as 'one blowing up'
(or respectively 'one exceptional divisor'). We use the following
- A pair (A, M) where A is the list of vertices and
M is the list of hyperbonds. A vertex in A is a pair where the
first element is a list of pairs (ID, EQ) where ID is the identifier
of the chart in which the exceptional divisor of the vertex appears
given by the equation EQ and the second element of the vertex is the
stratifying function value.
If the dumpHTML configuration variable is true the data of
the hypergraph is exported into the dualgraph.html file in
the same directory as the other files.
- Decomposing the (complete, normal crossing) exceptional divisor
into irreducible components would be too costly; therefore we do not
- Because the blowing up centers are computed according to
Villamayor's stratifying function it seems to be the most reasonable
decision to take those blowing ups (exceptional divisors) as one
which are defined by blowing up centers along which the stratifying
function attains the same value.
- The indices of exceptional divisors in the stratifying function
value for a monomial blowing up depend on the chart. Thus we
replace local indices by global ones to make the references clean.
To compute the dual graph for the output of a
`desing/pdlocpdh` call over the ith
principal open subset of P3 (i=1,2,3,4), set
chartHistory := eval(chartHistorypdh[i]):
globalChartCounter := chartHistorypdh[i]:
before calling `desing/dualgraph`().