# pairingMatrix -- Applies dual space functionals to polynomials

## Synopsis

• Usage:
M = pairingMatrix(S, D)
• Inputs:
• Outputs:
• M, , containing the values of the generators of D applied to the generators of S

## Description

The dual space represents functionals from the polynomial ring to the base field. Given a polySpace S with n generators f_1,...,f_n and a dualSpace D with m generators p_1,...,p_m, pairingMatrix returns a nxm matrix M over the base field whose entries are p_j(f_i).

A dual functional is applied to a polynomial by taking the standard pairing of their coefficient vectors. In other words, the functional represented by the monomial a acts on monomials in the polynomial ring as a(a) = 1 and a(b) = 0 for all other monomials b.

 i1 : R = CC[x,y]; i2 : S = polySpace matrix{{x+y,2*x+y^2}}; i3 : D = dualSpace(matrix{{1,x,y}}, origin R); i4 : M = pairingMatrix(S, D) o4 = {-1} | 0 1 1 | {-2} | 0 2 0 | 2 3 o4 : Matrix R <--- R

The function pairingMatrix can also be called with one or both inputs . If both arguments are single elements, the output is also a ring element rather than a matrix.

 i5 : pairingMatrix(S, 1+x) o5 = {-1} | 1 | {-2} | 2 | 2 1 o5 : Matrix R <--- R i6 : pairingMatrix(x, D) o6 = {-1} | 0 1 0 | 1 3 o6 : Matrix R <--- R i7 : pairingMatrix(x, 1+x) o7 = 1 o7 : R

## Ways to use pairingMatrix :

• "pairingMatrix(PolySpace,DualSpace)"
• "pairingMatrix(PolySpace,PolySpace)"
• "pairingMatrix(PolySpace,RingElement)"
• "pairingMatrix(RingElement,DualSpace)"
• "pairingMatrix(RingElement,RingElement)"

## For the programmer

The object pairingMatrix is .