# Last edited on 2005-02-12 02:07:41 by stolfi To do: ??? tent --> finel (finite element)? ??? dg_tent_domain_cell = CellIndex of the kth cell in the domain of a tent. ??? dg_basic -> dg_grid Status of modules on 2003-10-13: -- OK ---------------------------------------------------------------- dg_basic.h, dg_basic.c Dimensions, axes, sets of axes. Boxes and faces. The infinite dyadic multigrid {G*}. Cell indices and ranks. Cell-relative coordinates. Cell positions and grid walking. Locus in {G*}. Star of a locus. Canonical geometry for {G*}. Text formatting for face index, cell index, and locus. Vectors of cell index and locus. dg_tree.h, dg_tree.c Finite dyadic trees and their interpretation as finite, non-uniform dyadic grids. Tree node enclosing a cell. Node stars. Shrinking and splitting node stars. Vectors of node pointers. dg_spline.h, dg_spline.c Univariate Bézier polynomials. Univariate splines (mother splines) with two-cell support: B-spline-type and Hermite-type. Multidimensional tensor-style elements (/tents/). Tent evaluation. Enumeration of tent bases for the splines on a finite grid {G}. TO DO: (1) Trimming of elements associated with a locus so as to imitate total-degree behavior instead of tensor-style behavior. (2) Efficient update of a tent basis after node split/join. (3) Extend the whole theory to the case {g < 2*c + 1}. The support of the univariate mother splines then covers {2*c-g+3} unit intervals, namely {[-1..2*c-g+2]}. Note that there will be wrap-around whenever the grid size {sz} is less than {2*c-g+3}. (4) Rename: DG_HER --> DG_PK_H, DG_TK_H DG_BSP --> DG_PK_B, DG_TK_B dg_SplineKind --> dg_pulse_kind_t, dg_tent_kind_t dg_mother_spline --> dg_pulse_mother dg_plot.h, dg_plot.c Plotting color bands and isolines of a multivariate multiaffine function on a quadrilateral. Ditto for a multivariate affine function on a triangle. Plotting of a subtree of a finite dyadic grid, whose shape is defined by a tensort-style Bézier patch. -- not OK ------------------------------------------------------------ bz_basic.h, bz_basic.c Bézier patch (a tensor-style polynomial mapping from {R^m} to {R^n}). Degree vector of a Bézier patch (one degree per axis). Index of a control point or coeff for a univariate Bézier polynomial. Index vector for a coeff of a Bézier patch. Patch allocation and delocation. Locating a coeff in a patch. Evaluating at a point (De Casteljau algorithm). Trimming and reparametrizing a patch to a given box. Splitting a patch. Bounding the range. Extracting, modifying, and flattening a face. Rasing the degree. Approximating a general patch by a multiaffine patch or affine function. Compting the gradient of a patch. Finding the inverse image of a point. Printing a patch. dg_makegrid.h, dg_makegrid.c Creating a finite grid with client-defined spatially variable resolution. dg_spline-old.c dg_plotextra.h dg_plotextra.c dg_plot-claudio.h dg_plot-claudio.c dg_itemmap.h dg_itemmap.c junk1.c junk.c Junk and work-in-progress.