https://github.com/uberparagon/mgn
Tip revision: 87eacb93177c9d41edb525bb71ae03ae45f18d14 authored by Drew Johnson on 20 March 2020, 16:48:33 UTC
added a ps and ps_ member to strataalgebra
added a ps and ps_ member to strataalgebra
Tip revision: 87eacb9
stratagraph2.py
"""This file is for a a future update...."""
from __future__ import absolute_import
from sage.all import Graph, InfinitePolynomialRing, PolynomialRing
from sage.rings.integer_ring import ZZ
class StrataGraph2(object):
KappaRing = InfinitePolynomialRing(ZZ, "K")
K = KappaRing.gen()
PsiRing = PolynomialRing(ZZ, "psi")
psi = PsiRing.gen()
def __init__(self, strataG):
#make the graph
G = Graph()
for v in range(1,strataG.num_vertices()):
G.add_vertex(v)
for expon, coef in strataG.M[v,0].dict().items():
if expon[0] == 1:
genus = coef
else:
pass
self.decorations = dict()
dec_items = list(self.decorations.items())
dec_items.sort(lambda x: x[1])
parts = []
prev = None
dec_list = []
for a in dec_items:
if a != prev:
dec_list.append(a[1])
parts.append(new_part)
new_part = [a[0]]
else:
new_part.append(a[0])
self.dec_list = tuple(dec_list)
self.graph, cert = graphUncan.canonical_labeling(parts).copy(immutable = True)
self.parts = tuple(( tuple([cert[i] for i in part_j].sort) for part_j in parts))
def __eq__(self,other):
return self.parts == other.parts and self.dec_list == other.dec_list and self.graph == other.graph
def __hash__(self):
return hash(self.parts, self.graph, self.dec_list)