# deviationsToPoincare -- Computes the power series corresponding to a set of deviations.

## Synopsis

• Usage:
pSeries = deviationsToPoincare(devHash)
• Inputs:
• devHash, , HashTable of the same form as the output from deviations
• Optional inputs:
• DegreeLimit => ..., default value 0
• Outputs:
• pSeries, ,

## Description

This command takes a HashTable of the same form output from deviations and produces the Poincare series corresponding to it. The (key,value) pairs must be of the form homologicalDegree=>number or (homologicalDegree,internalDegree)=>number. Because

 i1 : R = ZZ/101[a,b,c]/ideal{a^3,b^3,c^3} o1 = R o1 : QuotientRing i2 : RDevs = deviations(R,DegreeLimit=>6) o2 = HashTable{(1, {1}) => 3} (2, {3}) => 3 o2 : HashTable i3 : devPSeries = deviationsToPoincare(RDevs,DegreeLimit=>6) 6 9 6 8 5 7 5 6 4 6 4 5 3 4 3 3 2 3 o3 = 10S T + 18S T + 18S T + 3S T + 6S T + 9S T + 9S T + S T + 3S T 0 0 0 0 0 0 0 0 0 ------------------------------------------------------------------------ 2 2 + 3S T + 3S*T + 1 0 0 ZZ[S, T ] 0 o3 : --------- 7 S i4 : pSeries = poincareN (res(coker vars R, LengthLimit=>6)) 2 2 2 3 3 3 3 4 4 5 4 6 5 6 o4 = 1 + 3S*T + 3S T + 3S T + S T + 9S T + 9S T + 6S T + 3S T + 0 0 0 0 0 0 0 0 ------------------------------------------------------------------------ 5 7 6 8 6 9 18S T + 18S T + 10S T 0 0 0 o4 : ZZ[S, T ] 0 i5 : substitute(devPSeries,ring pSeries) == pSeries o5 = true

## Ways to use deviationsToPoincare :

• "deviationsToPoincare(HashTable)"

## For the programmer

The object deviationsToPoincare is .