Macaulay2 » Documentation
Packages » AlgebraicSplines :: AlgebraicSplines
next | previous | forward | backward | up | index | toc

AlgebraicSplines -- a package for working with splines on simplicial complexes, polytopal complexes, and graphs

Description

This package provides methods for computations with piecewise polynomial functions (splines) over polytopal complexes.

Let $\Delta$ be a partition (simplicial,polytopal,cellular,rectilinear, etc.) of a space $\RR^n$. The spline module $S^{r}(\Delta)$ is the module of all functions $f$ continuously differentiable to order $r$ such that $f$ is a polynomial when restricted to each facet $\sigma\in\Delta$. The vector space $S^r_d(\Delta)$ consists of splines whose polynomial restrictions have degree at most $d$. Its dimension is of particular interest in approximation theory (see [10]).

The foundations of the algebraic approach to splines (as it applies to numerical analysis) was developed by Billera and Rose in [1],[2],[3]. In particular, it is shown in [3] that dim$S^r_d(\Delta)=$dim$S^r(c\Delta)_d$, where $S^r(c\Delta)_d$ is the vector space of splines of degree exactly $d$ on the cone $c\Delta$ over $\Delta$. So the statistic dim$S^r_d(\Delta)$ is the Hilbert function of $S^r(c\Delta)$. The functions splineMatrix and splineModule construct the matrix from [3] whose kernel is $S^r(\Delta)$, and the module $S^r(\Delta)$, respectively. The functions splineDimensionTable and hilbertComparisonTable display the statistic dim$S^r_d(\Delta)$ and compare it to the long term dimension formula, respectively.

In [1], Billera uses a homological approach to solve a conjecture of Strang on the dimension of the space $S^1_d(\Delta)$. The chain complex which he defines in [1] was later modified by Schenck and Stillman in [10]; we will call this the Billera-Schenck-Stillman chain complex. It has appeared in many papers due to its use in finding dim$S^r_d(\Delta)$; perhaps most notable is [11]. In [10] the chain complex is also used to compute dimension formulas in the polytopal setting. The Billera-Schenck-Stillman complex is implemented by the method splineComplex. The Billera-Schenck-Stillman chain complex is a quotient of the cellular chain complex of $\Delta$ (relative to the boundary of $\Delta$); the latter is computed by cellularComplex. The kernel of this surjection is given by idealsComplex.

The functions mentioned thus far are concerned only with the structure of $S^r(\Delta)$ as a module over the polynomial ring. The method ringStructure constructs $S^r(\Delta)$ as a quotient of a polynomial ring, thus recovering its ring structure. In [2], Billera shows that there is a natural isomorphism between the affine Stanley-Reisner ring $K_a[\Delta]$ (see explanation in documentation for ringStructure) of a simplicial complex and the ring $S^0(\Delta)$ of continuous piecewise polynomials on $\Delta$. The isomorphism identifies the variable corresponding to a vertex with the Courant function for that vertex. The method courantFunctions computes these functions, and the method stanleyReisner constructs the isomorphism identified in [2]. Moreover, the rings $S^r(\Delta)$ live inside $S^0(\Delta)$ - this is of particular interest when $\Delta$ is simplicial due to Billera's result. The method stanleyReisnerPresentation constructs $S^r(\Delta)$ as a quotient of a ring map from a polynomial ring into $S^0(\Delta)$; in particular the generators of $S^r(\Delta)$ are presented in terms of generators of $S^0(\Delta)$. If $\Delta$ is simplicial these are selected to be the Courant functions.

In topology, splines arise as equivariant cohomology of spaces with a torus action via GKM theory - see [14] for a survey of how this relates to splines in numerical analysis; and [6] for the precise relationship between continuous splines and the equivariant Chow cohomology of toric varieties. From this perspective, the notion of generalized splines on graphs was introduced in [5]. The method generalizedSplines computes splines in this more flexible setting. The relationship to splines in numerical analysis is via the dual graph described by Rose in [7],[8].

Additionally, there are connections between splines and the module of multi-derivations of a hyperplane arrangement. A basic structural connection was noticed in [3]. For the braid arrangement and its sub-arrangements, the module of derivations is isomorphic to a ring of splines in a natural way (see [11] and [4]).

Methods in this package borrow from code written by Hal Schenck.

References:\break [1] Louis J. Billera. Homology of smooth splines: generic triangulations and a conjecture of Strang. Trans. Amer. Math. Soc., 310(1):325–340, 1988.\break [2] Louis J. Billera, The Algebra of Continuous Piecewise Polynomials, Adv. in Math. 76, 170-183 (1989).\break [3] Louis J. Billera and Lauren L. Rose. A dimension series for multivariate splines. Discrete Comput. Geom., 6(2):107–128, 1991.\break [4] Michael DiPasquale. Generalized Splines and Graphic Arrangements. J. Algebraic Combin. 45 (2017), no. 1, 171-189.\break [5] Simcha Gilbert, Julianna Tymoczko, and Shira Viel. Generalized splines on arbitrary graphs. Pacific J. Math. 281 (2016), no. 2, 333-364.\break [6] Sam Payne, Equivariant Chow cohomology of toric varieties, Math. Res. Lett. 13 (2006), 29-41.\break [7] Lauren Rose, Combinatorial and topological invariants of modules of piecewise polynomials, Adv. Math. 116 (1995), 34-45.\break [8] Lauren Rose, Graphs, syzygies, and multivariate splines, Discrete Comput. Geom. 32 (2004), 623-637.\break [9] T. McDonald, H. Schenck, Piecewise polynomials on polyhedral complexes, Adv. in Appl. Math. 42 (2009), 82-93.\break [10] Hal Schenck and Mike Stillman. Local cohomology of bivariate splines. J. Pure Appl. Algebra,117/118:535–548, 1997. Algorithms for algebra (Eindhoven, 1996).\break [11] Hal Schenck, A Spectral Sequence for Splines, Adv. in Appl. Math. 19, 183-199 (1997).\break [12] Schenck, Hal . Splines on the Alfeld split of a simplex and type A root systems. J. Approx. Theory 182 (2014), 1-6.\break [13] Gilbert Strang, Piecewise Polynomials and the Finite Element Method, Bull. Amer. Math. Soc. 79 (1973) 1128-1137.\break [14] Julianna Tymoczko. Splines in geometry and topology. Comput. Aided Geom. Design 45 (2016), 32-47.

Authors

Version

This documentation describes version 0.1.0 of AlgebraicSplines.

Source code

The source code from which this documentation is derived is in the file AlgebraicSplines.m2.

Exports

  • Functions and commands
    • cellularComplex -- create the cellular chain complex whose homologies are the singular homologies of the complex $\Delta$ relative to its boundary
    • courantFunctions -- returns the Courant functions of a simplicial complex
    • formsList -- list of powers of (affine) linear forms cutting out a specified list of codimension one faces.
    • generalizedSplines -- the module of generalized splines associated to a simple graph with an edge labelling
    • hilbertComparisonTable -- a table to compare the values of the hilbertFunction and hilbertPolynomial of a graded module
    • idealsComplex -- creates the Billera-Schenck-Stillman chain complex of ideals
    • postulationNumber -- computes the largest degree at which the Hilbert function of the graded module M is not equal to the hilbertPolynomial
    • ringStructure -- given a sub-module of a free module (viewed as a ring with direct sum structure) which is also a sub-ring, creates a ring map whose image is the module with its ring structure
    • splineComplex -- creates the Billera-Schenck-Stillman chain complex
    • splineDimensionTable -- a table with the dimensions of the graded pieces of a graded module
    • splineMatrix -- compute matrix whose kernel is the module of $C^r$ splines on $\Delta$
    • splineModule -- compute the module of all splines on partition of a space
    • stanleyReisner -- Creates a ring map whose image is the ring of piecewise continuous polynomials on $\Delta$. If $\Delta$ is simplicial, the Stanley Reisner ring of $\Delta$ is returned.
    • stanleyReisnerPresentation -- creates a ring map whose image is the sub-ring of $C^0(\Delta)$ generated by $C^r(\Delta)$. If $\Delta$ is simplicial, $C^0(\Delta)$ is the Stanley Reisner ring of $\Delta$.
  • Methods
    • cellularComplex(List) -- see cellularComplex -- create the cellular chain complex whose homologies are the singular homologies of the complex $\Delta$ relative to its boundary
    • cellularComplex(List,List) -- see cellularComplex -- create the cellular chain complex whose homologies are the singular homologies of the complex $\Delta$ relative to its boundary
    • courantFunctions(List,List) -- see courantFunctions -- returns the Courant functions of a simplicial complex
    • formsList(List,List,ZZ) -- see formsList -- list of powers of (affine) linear forms cutting out a specified list of codimension one faces.
    • generalizedSplines(List,List) -- see generalizedSplines -- the module of generalized splines associated to a simple graph with an edge labelling
    • hilbertComparisonTable(ZZ,ZZ,Module) -- see hilbertComparisonTable -- a table to compare the values of the hilbertFunction and hilbertPolynomial of a graded module
    • idealsComplex(List,List,ZZ) -- see idealsComplex -- creates the Billera-Schenck-Stillman chain complex of ideals
    • postulationNumber(Module) -- see postulationNumber -- computes the largest degree at which the Hilbert function of the graded module M is not equal to the hilbertPolynomial
    • ringStructure(Module) -- see ringStructure -- given a sub-module of a free module (viewed as a ring with direct sum structure) which is also a sub-ring, creates a ring map whose image is the module with its ring structure
    • splineComplex(List,List,ZZ) -- see splineComplex -- creates the Billera-Schenck-Stillman chain complex
    • splineDimensionTable(ZZ,ZZ,List,ZZ) -- see splineDimensionTable -- a table with the dimensions of the graded pieces of a graded module
    • splineDimensionTable(ZZ,ZZ,Module) -- see splineDimensionTable -- a table with the dimensions of the graded pieces of a graded module
    • splineMatrix(List,List,List,ZZ) -- see splineMatrix -- compute matrix whose kernel is the module of $C^r$ splines on $\Delta$
    • splineMatrix(List,List,ZZ) -- see splineMatrix -- compute matrix whose kernel is the module of $C^r$ splines on $\Delta$
    • splineMatrix(List,ZZ) -- see splineMatrix -- compute matrix whose kernel is the module of $C^r$ splines on $\Delta$
    • splineModule(List,List,List,ZZ) -- see splineModule -- compute the module of all splines on partition of a space
    • splineModule(List,List,ZZ) -- see splineModule -- compute the module of all splines on partition of a space
    • stanleyReisner(List,List) -- see stanleyReisner -- Creates a ring map whose image is the ring of piecewise continuous polynomials on $\Delta$. If $\Delta$ is simplicial, the Stanley Reisner ring of $\Delta$ is returned.
    • stanleyReisnerPresentation(List,List,ZZ) -- see stanleyReisnerPresentation -- creates a ring map whose image is the sub-ring of $C^0(\Delta)$ generated by $C^r(\Delta)$. If $\Delta$ is simplicial, $C^0(\Delta)$ is the Stanley Reisner ring of $\Delta$.
  • Symbols
    • RingType -- see generalizedSplines -- the module of generalized splines associated to a simple graph with an edge labelling
    • GenVar -- see ringStructure -- given a sub-module of a free module (viewed as a ring with direct sum structure) which is also a sub-ring, creates a ring map whose image is the module with its ring structure
    • IdempotentVar -- see ringStructure -- given a sub-module of a free module (viewed as a ring with direct sum structure) which is also a sub-ring, creates a ring map whose image is the module with its ring structure
    • Trim -- see ringStructure -- given a sub-module of a free module (viewed as a ring with direct sum structure) which is also a sub-ring, creates a ring map whose image is the module with its ring structure
    • VariableGens -- see ringStructure -- given a sub-module of a free module (viewed as a ring with direct sum structure) which is also a sub-ring, creates a ring map whose image is the module with its ring structure
    • BaseRing -- see splineMatrix -- compute matrix whose kernel is the module of $C^r$ splines on $\Delta$
    • ByFacets -- see splineMatrix -- compute matrix whose kernel is the module of $C^r$ splines on $\Delta$
    • ByLinearForms -- see splineMatrix -- compute matrix whose kernel is the module of $C^r$ splines on $\Delta$
    • Homogenize -- see splineMatrix -- compute matrix whose kernel is the module of $C^r$ splines on $\Delta$
    • InputType -- see splineMatrix -- compute matrix whose kernel is the module of $C^r$ splines on $\Delta$
    • VariableName -- see splineMatrix -- compute matrix whose kernel is the module of $C^r$ splines on $\Delta$

For the programmer

The object AlgebraicSplines is a package.