# generalizedSplines -- the module of generalized splines associated to a simple graph with an edge labelling

## Synopsis

• Usage:
M = generalizedSplines(E,I)
• Inputs:
• E, a list, list of edges of a graph (an edge is represented as a list with two elements)
• I, a list, list of ideals in a ring
• Optional inputs:
• RingType (missing documentation) => an integer, default value Ambient,
• Outputs:
• M, , module of generalized splines on the graph with edges E and edge labels I

## Description

This method returns the module of generalized splines on a graph with edgeset E on v vertices, whose edges are labelled by ideals of some ring R. By definition this is the submodule of $R^v$ consisting of tuples of polynomials such that the difference of polynomials corresponding to adjacent vertices are congruent module the ideal labelling the edge between them.

 i1 : S = QQ[x_0,x_1,x_2]; --the underlying ring i2 : E = {{0,1},{1,2},{0,2}} --edges of the graph (in this case a triangle) o2 = {{0, 1}, {1, 2}, {0, 2}} o2 : List i3 : I = {x_0-x_1,x_1-x_2,x_2-x_0} --ideals of S (elements of S are interpreted as principal ideals) o3 = {x - x , x - x , - x + x } 0 1 1 2 0 2 o3 : List i4 : generalizedSplines(E,I) --in this case this is the module of derivations on the $A_2$ arrangement o4 = image | 1 x_0-x_2 0 | | 1 x_1-x_2 x_0x_1-x_1^2-x_0x_2+x_1x_2 | | 1 0 0 | 3 o4 : S-module, submodule of S

If edge labels are integers, generalizedSplines is computed as a ZZ module by default.

 i5 : E={{0,1},{1,2},{2,3},{0,3}}; i6 : I={3,4,5,6}; i7 : generalizedSplines(E,I) o7 = image | -6 0 0 1 | | -24 -12 -15 1 | | 0 0 5 1 | | 0 0 0 1 | 4 o7 : ZZ-module, submodule of ZZ

The above splines may also be computed over ZZ modulo some integer.

 i8 : E={{0,1},{1,2},{2,3},{0,3}}; i9 : I={3,4,5,6}; i10 : generalizedSplines(E,I,RingType=>9) --computes spline module with underlying ring ZZ/9 o10 = image | 3 0 0 1 | | 0 3 0 1 | | 0 0 1 0 | | 0 0 0 1 | ZZ[] ZZ[] 4 o10 : -----module, submodule of (----) 9 9

Arbitrary ideals may also be entered as edge labels.

 i11 : S=QQ[x,y,z] o11 = S o11 : PolynomialRing i12 : E={{1,2},{2,3},{3,4}} o12 = {{1, 2}, {2, 3}, {3, 4}} o12 : List i13 : I={ideal(x,y),ideal(y),ideal(z)} o13 = {ideal (x, y), ideal y, ideal z} o13 : List i14 : generalizedSplines(E,I) o14 = image | 1 y x 0 z | | 1 0 0 y z | | 1 0 0 0 z | | 1 0 0 0 0 | 4 o14 : S-module, submodule of S

This method can be used to compute splines over non-linear partitions. The example below can be found in Exercise 13 of Section 8.3 in the book Using Algebraic Geometry by Cox,Little, and O'Shea.

 i15 : E={{0,1},{1,2},{0,2}}; i16 : S=QQ[x,y]; i17 : I={y-x^2,x+y^2,y-x^3};--these three curves meet at the origin i18 : generalizedSplines(E,I)--this is the module of C^0 splines on the partition o18 = image | 1 -x4y-x3y2-x4-x3+xy2+y3+xy+y -x4y+x3y2+x4-x3+xy2-y3-xy+y -x5-x4y+x3y-x3+x2y+xy2-y2+y -x5+x4y+x3y+x3+x2y-xy2-y2-y | | 1 -xy3-x2y+xy2+x2 xy3+x2y+xy2-2y3+x2-2xy -x2y2-x3+xy2+x2 x2y2+x3-xy2-x2 | | 1 0 0 0 0 | 3 o18 : S-module, submodule of S

## Ways to use generalizedSplines :

• "generalizedSplines(List,List)"

## For the programmer

The object generalizedSplines is .