def test_p_forms_crossing_ngens(self): crossing = self.x*self.y*self.z logdf = LogarithmicDifferentialForms(crossing) self.assertEqual(len(logdf.p_form_generators(0)),1) self.assertEqual(len(logdf.p_form_generators(1)),3) self.assertEqual(len(logdf.p_form_generators(2)),3) self.assertEqual(len(logdf.p_form_generators(3)),1)
def setUp(self): self.poly_ring = PolynomialRing(QQ, "x", 3) x = self.x = self.poly_ring.gens()[0] y = self.y = self.poly_ring.gens()[1] z = self.z = self.poly_ring.gens()[2] self.normal_logdf = LogarithmicDifferentialForms(x * y * z) self.whitney_logdf = LogarithmicDifferentialForms(x**2 * y - z**2)
def test_equi_complex_whitney(self): whitney = self.x**2*self.y - self.z**2 logdf = LogarithmicDifferentialForms(whitney) complex = logdf.chain_complex("equivarient") complex_size = {} for i,c in complex.iteritems(): complex_size[i] = len(c) self.assertEqual(complex_size,{0:1,1:1,2:1,3:1})
def test_relative_homology_0_crossing(self): crossing = self.x*self.y*self.z logdf = LogarithmicDifferentialForms(crossing) homology = logdf.homology("relative",0) homology_size = {} for i,c in homology.iteritems(): homology_size[i] = len(c) self.assertEqual(homology_size,{0:1,1:2,2:1,3:0})
def test_relative_homology_0_whitney(self): whitney = self.x**2*self.y-self.z**2 logdf = LogarithmicDifferentialForms(whitney) homology = logdf.homology("relative",0) homology_size = {} for i,c in homology.iteritems(): homology_size[i] = len(c) self.assertEqual(homology_size,{0:1,1:0,2:0,3:0})
def test_complement_homology_crossing(self): crossing = self.x*self.y*self.z logdf = LogarithmicDifferentialForms(crossing) homology = logdf.homology("complement") homology_size = {} for i,c in homology.iteritems(): homology_size[i] = len(c) self.assertEqual(homology_size,{0:1,1:3,2:3,3:1})
def test_equi_complex_crossing(self): crossing = self.x*self.y*self.z logdf = LogarithmicDifferentialForms(crossing) complex = logdf.chain_complex("equivarient") complex_size = {} for i,c in complex.iteritems(): complex_size[i] = len(c) self.assertEqual(complex_size,{0:1,1:3,2:4,3:4})
def test_p_module_n_crossing(self): #Make sure this doesnt throw an error - fix bug for i in range(4,5): p_ring = PolynomialRing(QQ,i,"z") crossing = p_ring.one() for g in p_ring.gens(): crossing *= g logdf = LogarithmicDifferentialForms(crossing) logdf.p_module(i-1)
def test_2_modules_crossing_ngens(self): x = self.x y = self.y z = self.z zero = self.poly_ring.zero() crossing = self.x*self.y*self.z logdf = LogarithmicDifferentialForms(crossing) crossing_2_module = SingularModule([[z,zero,zero],[zero,y,zero],[zero,zero,x]]) self.assertTrue(crossing_2_module.equals(logdf.p_module(2)))
def test_1_modules_crossing_ngens(self): x = self.x y = self.y z = self.z zero = self.poly_ring.zero() crossing = x*y*z logdf = LogarithmicDifferentialForms(crossing) crossing_1_module = SingularModule([[y*z,zero,zero],[zero,x*z,zero],[zero,zero,x*y]]) self.assertTrue(crossing_1_module.equals(logdf.p_module(1)))
def _crossing_divisor(n): print "Crossing divisor: ", n div = examples.crossing_divisor(n) logdf = LogarithmicDifferentialForms(div) logdf.homology("complement")
def _rand_w_hom_divisor(n): print "Breiskorn Pham Divisor: ", n div = examples.rand_w_hom_divisor(n) logdf = LogarithmicDifferentialForms(div) logdf.homology("complement")
def _braid_divisor(n): print "Braid Divisor: ", n div = examples.braid_divisor(n) logdf = LogarithmicDifferentialForms(div) logdf.homology("complement")
#!/usr/local/bin/sage from logarithmic_forms import LogarithmicDifferentialForms from sage.rings.rational_field import QQ from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing #Make a more general class for these print "Whintney Umbrlla fact sheet" poly_ring = PolynomialRing(QQ,3,'z') z0 = poly_ring.gens()[0] z1 = poly_ring.gens()[1] z2 = poly_ring.gens()[2] divisor = z0**2*z1-z2**2 print "Divisor equation: ",divisor logdf = LogarithmicDifferentialForms(divisor) print "Modules of logarithmic differential forms:-" for i in range(4): print "--"+str(i)+": Module generated by "+str(logdf.p_form_generators(i)) print "0 wieghted part of the module of logarthmic differential forms:-" for i in range(4): print "--"+str(i)+": complex vector space with basis "+str(logdf.p_forms_zero_basis(i)) print "Complement Homology (Based on global logarithmic comparrason theorem: " print logdf.complement_homology()
def test_0_modules_crossing_ngens(self): crossing = self.x*self.y*self.z logdf = LogarithmicDifferentialForms(crossing) crossing_0_module = SingularModule([[crossing]]) self.assertTrue(crossing_0_module.equals(logdf.p_module(0)))
def _rand_w_hom_divisor(n): print "Breiskorn Pham Divisor: ",n div = examples.rand_w_hom_divisor(n) logdf = LogarithmicDifferentialForms(div) logdf.homology("complement")
def test_3_modules_crossing_ngens(self): crossing = self.x*self.y*self.z logdf = LogarithmicDifferentialForms(crossing) crossing_3_module = SingularModule([[self.poly_ring.one()]]) self.assertTrue(crossing_3_module.equals(logdf.p_module(3)))
#!/usr/local/bin/sage from logarithmic_forms import LogarithmicDifferentialForms from sage.rings.rational_field import QQ from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing #Make a more general class for these print "Whintney Umbrlla fact sheet" poly_ring = PolynomialRing(QQ, 3, 'z') z0 = poly_ring.gens()[0] z1 = poly_ring.gens()[1] z2 = poly_ring.gens()[2] divisor = z0**2 * z1 - z2**2 print "Divisor equation: ", divisor logdf = LogarithmicDifferentialForms(divisor) print "Modules of logarithmic differential forms:-" for i in range(4): print "--" + str(i) + ": Module generated by " + str( logdf.p_form_generators(i)) print "0 wieghted part of the module of logarthmic differential forms:-" for i in range(4): print "--" + str(i) + ": complex vector space with basis " + str( logdf.p_forms_zero_basis(i)) print "Complement Homology (Based on global logarithmic comparrason theorem: " print logdf.complement_homology()
def _braid_divisor(n): print "Braid Divisor: ",n div = examples.braid_divisor(n) logdf = LogarithmicDifferentialForms(div) logdf.homology("complement")
def _crossing_divisor(n): print "Crossing divisor: ",n div = examples.crossing_divisor(n) logdf = LogarithmicDifferentialForms(div) logdf.homology("complement")