Opened 3 years ago

Last modified 7 months ago

#22016 needs_work enhancement

Implement tete-a-tete graphs

Reported by: pportilla Owned by: pportilla
Priority: major Milestone: sage-8.6
Component: geometry Keywords: tat, ribbon graphs, tete-a-tete, periodic, automorphisms, surfaces, boundary
Cc: tscrim, tmonteil Merged in:
Authors: Pablo Portilla Reviewers:
Report Upstream: N/A Work issues:
Branch: u/pportilla/tat_graph-22016 (Commits) Commit: b3fb968117108fae2a7a8a3893faa9d1f225a507
Dependencies: Stopgaps:

Description (last modified by pportilla)

In this ticket we will implement tete-a-tete graphs. These are ribbon graphs together with a metric on its edges satisfying a certain property (the tete-a-tete property). These are an original idea by the mathematician Norbert A'Campo in [A2009]. A tete-a-tete graph encodes the mapping class of an automorphism of a surface with boundary that restricts to the identity to the boundary of this surface and whose mapping class is periodic (when we allow isotopies to rotate the boundary components). Also some ideas were further developed by C. Graf, an student of A'Campo in [G2015]. Also, my current PhD thesis develops other aspects of these graphs.

These are some of the ideas that will be implemented in this ticket:

  • A class of objects called TatGraph? (tat stands for tete-a-tete). This includes the notion of relative tat graph, which are a kind of graphs that allow to permute certain boundary components of the thickening of the underlying ribbon graph.
  • Numerous methods for the class above, for instance:
    • Rotation numbers around each boundary component
    • Matrix depicting the action on the first homology group of the ribbon graph with respect to the basis given by RibbonGraph?.homology_basis()
    • Global method to find the end of a safewalk of a certain length.
    • Global method that produces examples of tat graphs. In particular it produces all Milnor fibers and monodromies of the Brieskorn-Pham singularities.
    • Orbit graph, this is a ribbon graph that corresponds to the orbit space resulting from taking the quotient of the original underlying ribbon graph by the action the the automorphism induced by the tat property.

[A2009] N. A'Campo, Tete-a-tete graphs and geometry monodromy.

[G2015] C.Graf, Tete-a-tete graphs and periodic automorphisms of surfaces.

Change History (51)

comment:1 Changed 3 years ago by pportilla

  • Branch changed from public/geometry/tat_graphs to u/pportilla/tat_graphs

comment:2 Changed 3 years ago by pportilla

  • Branch changed from u/pportilla/tat_graphs to u/pportilla/tat_graph

comment:3 Changed 3 years ago by pportilla

  • Authors changed from Pablo Portilla to pportilla
  • Description modified (diff)

comment:4 Changed 3 years ago by pportilla

  • Owner changed from (none) to pportilla

comment:5 Changed 3 years ago by pportilla

I just created this ticket from the web interface but I can't checkout on it from the console in my compute by doing "git trac checkout 22016", it returns:

Loading ticket #22016... Checking out Trac #22016 remote branch u/pportilla/tat_graph -> local branch t/22016/tat_graph... Traceback (most recent call last):

File "/usr/local/bin/git-trac", line 18, in <module>

cmdline.launch()

File "/usr/local/lib/python2.7/dist-packages/git_trac/cmdline.py", line 215, in launch

app.checkout(args.ticket_or_branch, args.branch_name)

File "/usr/local/lib/python2.7/dist-packages/git_trac/app.py", line 116, in checkout

self._checkout_ticket(int(ticket_or_branch), branch_name)

File "/usr/local/lib/python2.7/dist-packages/git_trac/app.py", line 144, in _checkout_ticket

self.repo.checkout_new_branch(ticket.branch, branch)

File "/usr/local/lib/python2.7/dist-packages/git_trac/git_repository.py", line 136, in checkout_new_branch

self.git.fetch('trac', remote)

File "/usr/local/lib/python2.7/dist-packages/git_trac/git_interface.py", line 341, in meth

return self.execute(git_cmd, *args, kwds)

File "/usr/local/lib/python2.7/dist-packages/git_trac/git_interface.py", line 328, in execute

popen_stderr=subprocess.PIPE)

File "/usr/local/lib/python2.7/dist-packages/git_trac/git_interface.py", line 263, in _run

raise GitError?(result)

git_trac.git_error.GitError?: git returned with non-zero exit code (128) when executing "git fetch trac u/pportilla/tat_graph"

STDERR: fatal: Couldn't find remote ref u/pportilla/tat_graph STDERR: fatal: The remote end hung up unexpectedly

I can, however fetch other tickets like for example 21587. Any ideas?

comment:6 Changed 3 years ago by pportilla

  • Branch changed from u/pportilla/tat_graph to u/pportilla/tat_graph-22016

comment:7 Changed 3 years ago by pportilla

  • Cc tmonteil added

comment:8 follow-up: Changed 3 years ago by tscrim

  • Authors changed from pportilla to Pablo Portilla

Were you able to fix the git trac command issue? If not, have you tried using git directly?

comment:9 in reply to: ↑ 8 Changed 3 years ago by pportilla

Replying to tscrim:

Were you able to fix the git trac command issue? If not, have you tried using git directly?

No I haven't been able to solve it and yes, I have also tried "git fetch -v trac u/pportilla/tat_graph-22016 && echo OK" and it returns the same kind of error " fatal: Couldn't find remote ref u/pportilla/tat_graph-22016"

I can checkout other tickets so I don't know what can be the problem.

comment:10 Changed 3 years ago by tscrim

Can you send me the results of git remote -v to my e-mail (tscrimsh at umn * edu, with * = dot)?

comment:11 Changed 3 years ago by git

  • Commit set to 87e33427fafde28da4c547a4ebe62582203ad966

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

4cd202eSuggested changes commited
72ef663Fixed similar lines and turned them more "pythonic"
f4a419cMerge branch 'u/pportilla/ribbon_graphs' of trac.sagemath.org:sage into public/geometry/ribbon_graphs-21587
6b0f5fcReworking some things with the documentation and internal structures.
4e3b676Added extra test to _find.
0075562Added one method and one function. Both were already included in the next work I will be uploading when this is positively reviewed, but since they refer strictly to ribbon graphs I think that they suit better here.
6f4b8a6Added a missing example.
82b52ebFixed typos and normalized name of method.
b22ef55Merge branch 'public/geometry/ribbon_graphs-21587' of trac.sagemath.org:sage into public/geometry/ribbon_graphs-21587
87e3342Moving the bipartite construction into the RibbonGraph constructor.

comment:12 Changed 3 years ago by pportilla

I just updated the branch with all the commits from #21587 (since it depends on it)

comment:13 Changed 3 years ago by git

  • Commit changed from 87e33427fafde28da4c547a4ebe62582203ad966 to af006ae67a1f5e65fb509456e0ddf844a0c3897c

Branch pushed to git repo; I updated commit sha1. New commits:

af006aeIncluded main file and changes so that I can start trying compilation.

comment:14 Changed 3 years ago by git

  • Commit changed from af006ae67a1f5e65fb509456e0ddf844a0c3897c to 7d4611758f651074fcfc6d675538b8fdc1da6e08

Branch pushed to git repo; I updated commit sha1. New commits:

7d46117silly mistake on the lazy imports

comment:15 Changed 3 years ago by git

  • Commit changed from 7d4611758f651074fcfc6d675538b8fdc1da6e08 to 808897820dc98055ae22034688d47c84f9dec66f

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

809412efixed indentation on docstring
f8339daIncluded main file and changes so that I can start trying compilation.
8088978silly mistake on the lazy imports

comment:16 Changed 3 years ago by git

  • Commit changed from 808897820dc98055ae22034688d47c84f9dec66f to ec1b5a2c3428e41dcf4596f115d24903196cf839

Branch pushed to git repo; I updated commit sha1. New commits:

6dbbf00Merge branch 't/22016/tat_graph-22016' into develop
ec1b5a2Merge branch 'develop' into t/22016/tat_graph-22016

comment:17 follow-up: Changed 3 years ago by tscrim

  • Milestone changed from sage-7.5 to sage-7.6

Is this ready for review?

comment:18 in reply to: ↑ 17 Changed 3 years ago by pportilla

Replying to tscrim:

Is this ready for review?

Hi. No, it is not. I have been busy. This is my last PhD year and, as you can imagine, I lack of time. Nevertheless, I will be back on this soon (I hope).

comment:19 Changed 3 years ago by git

  • Commit changed from ec1b5a2c3428e41dcf4596f115d24903196cf839 to 97647c5ba3fd188dd75b5a24bcc8ebadaa18c58a

Branch pushed to git repo; I updated commit sha1. New commits:

97647c5Merge branch 'develop' into t/22016/tat_graph-22016

comment:20 Changed 22 months ago by git

  • Commit changed from 97647c5ba3fd188dd75b5a24bcc8ebadaa18c58a to 40c50420c0884d83c77391b9d19422ffef5eed0f

Branch pushed to git repo; I updated commit sha1. New commits:

40c5042Merge branch 'master' into u/pportilla/tat_graph-22016

comment:21 Changed 22 months ago by git

  • Commit changed from 40c50420c0884d83c77391b9d19422ffef5eed0f to d10022aca53035859823ef8607d7068432fe906c

Branch pushed to git repo; I updated commit sha1. New commits:

d10022aMerge remote-tracking branch 'origin/develop' into u/pportilla/tat_graph-22016

comment:22 Changed 11 months ago by git

  • Commit changed from d10022aca53035859823ef8607d7068432fe906c to e738728620efe9b61ebfb014514ef90062fb9f58

Branch pushed to git repo; I updated commit sha1. New commits:

e738728Merge branch 'develop' of git://trac.sagemath.org/sage into t/22016/tat_graph-22016

comment:23 Changed 11 months ago by git

  • Commit changed from e738728620efe9b61ebfb014514ef90062fb9f58 to f37725f17a7354783010359ddb3e6fa6eacd76b3

Branch pushed to git repo; I updated commit sha1. New commits:

f37725ffixing some error and preparing to start doc writing

comment:24 Changed 11 months ago by git

  • Commit changed from f37725f17a7354783010359ddb3e6fa6eacd76b3 to fa3701e0498a1c3975920cda47cc5793680d27d6

Branch pushed to git repo; I updated commit sha1. New commits:

fa3701eAdded references and some documentation of main object.

comment:25 Changed 11 months ago by git

  • Commit changed from fa3701e0498a1c3975920cda47cc5793680d27d6 to 43f936edcc6dbf0b14d26843ff00b992294ca06a

Branch pushed to git repo; I updated commit sha1. New commits:

43f936eç

comment:26 Changed 11 months ago by pportilla

  • Milestone changed from sage-7.6 to sage-8.6
  • Status changed from new to needs_review

comment:27 follow-ups: Changed 11 months ago by chapoton

(1) Do not use latex for accents, but just unicode. Something like

+# -*- coding: utf-8 -*-
+r"""
+Tête-a-tête graphs.

where the coding line should be the first line of the .py file.

(2) You can use one single lazy_import by using a list as second argument

(3) this is wrong : :arxiv:`arXiv:1706.05580`

(4) you should not touch cypari files. If you would like to change something here, make pull requests in their own developer site.

comment:28 Changed 11 months ago by chapoton

  • Status changed from needs_review to needs_work

comment:29 in reply to: ↑ 27 Changed 11 months ago by pportilla

Hi chapoton, I am sorry but I don't know what you mean by (4). Which files did I touch that I shouldn't have?

Replying to chapoton:

(1) Do not use latex for accents, but just unicode. Something like

+# -*- coding: utf-8 -*-
+r"""
+Tête-a-tête graphs.

where the coding line should be the first line of the .py file.

(2) You can use one single lazy_import by using a list as second argument

(3) this is wrong : :arxiv:`arXiv:1706.05580`

(4) you should not touch cypari files. If you would like to change something here, make pull requests in their own developer site.

comment:30 Changed 11 months ago by git

  • Commit changed from 43f936edcc6dbf0b14d26843ff00b992294ca06a to 3933ca9f884023c0aee28e86994098256e8c3d88

Branch pushed to git repo; I updated commit sha1. New commits:

3933ca9added changes suggested by chapoton

comment:31 follow-up: Changed 11 months ago by chapoton

click on the name of the branch on the top of this page ; you will see that your branch does something on some files like

-rw-r--r--	src/sage/libs/cypari2/.gitignore	2	
-rw-r--r--	src/sage/libs/cypari2/auto_gen.pxi	20819	
-rw-r--r--	src/sage/libs/cypari2/auto_instance.pxi

comment:32 Changed 11 months ago by git

  • Commit changed from 3933ca9f884023c0aee28e86994098256e8c3d88 to 2c3c85a412c0e9bf0fd1c68d37b64e342f230712

Branch pushed to git repo; I updated commit sha1. New commits:

2c3c85adeleted cypari2 modified files

comment:33 Changed 11 months ago by pportilla

  • Status changed from needs_work to needs_review

comment:34 in reply to: ↑ 31 Changed 11 months ago by pportilla

Thank you! Done it already. Changed to needs_review again

Replying to chapoton:

click on the name of the branch on the top of this page ; you will see that your branch does something on some files like

-rw-r--r--	src/sage/libs/cypari2/.gitignore	2	
-rw-r--r--	src/sage/libs/cypari2/auto_gen.pxi	20819	
-rw-r--r--	src/sage/libs/cypari2/auto_instance.pxi

comment:35 in reply to: ↑ 27 Changed 11 months ago by pportilla

It looks that there was an error compiling with the lazy_import one-liner. Apparently it only accepts up to three arguments. So I guess I either revert the changes or use the usual "import *"

Replying to chapoton:

(1) Do not use latex for accents, but just unicode. Something like

+# -*- coding: utf-8 -*-
+r"""
+Tête-a-tête graphs.

where the coding line should be the first line of the .py file.

(2) You can use one single lazy_import by using a list as second argument

(3) this is wrong : :arxiv:`arXiv:1706.05580`

(4) you should not touch cypari files. If you would like to change something here, make pull requests in their own developer site.

comment:36 follow-up: Changed 11 months ago by chapoton

second argument of lazy import is a list of functions

git grep "lazy_import"

to see some examples

comment:37 Changed 11 months ago by git

  • Commit changed from 2c3c85a412c0e9bf0fd1c68d37b64e342f230712 to ddfc9224ca136855d8ab4b46c87a80a993c6408a

Branch pushed to git repo; I updated commit sha1. New commits:

ddfc922fixed lazy_import issue

comment:38 in reply to: ↑ 36 Changed 11 months ago by pportilla

Thank you once again. Done it. Replying to chapoton:

second argument of lazy import is a list of functions

git grep "lazy_import"

to see some examples

comment:39 follow-up: Changed 11 months ago by chapoton

  • Dependencies #21587 deleted

(1) undo this change:

+
+Hyperbolic Geometry
+-------------------
+

(2) in the same file, the J. should be {\J.}

comment:40 in reply to: ↑ 39 Changed 11 months ago by pportilla

I don't know where the Hyperbolic Geometry change came from. Maybe it was there in a previous develop-version and I repushed it (?). Anyway, it is done now.

Replying to chapoton:

(1) undo this change:

+
+Hyperbolic Geometry
+-------------------
+

(2) in the same file, the J. should be {\J.}

comment:41 Changed 11 months ago by git

  • Commit changed from ddfc9224ca136855d8ab4b46c87a80a993c6408a to cd848c51acd6361e3927968adac1d28c753e7873

Branch pushed to git repo; I updated commit sha1. New commits:

cd848c5changes on references

comment:42 Changed 11 months ago by git

  • Commit changed from cd848c51acd6361e3927968adac1d28c753e7873 to 999c09ee879c94f9b2e2ea9da1fa78f253a406d7

Branch pushed to git repo; I updated commit sha1. New commits:

999c09efixing the lazy_import (test failed previously because of bad import)

comment:43 Changed 11 months ago by git

  • Commit changed from 999c09ee879c94f9b2e2ea9da1fa78f253a406d7 to dc825b02728a60f89c907cdc0bc9cb38f713d4a2

Branch pushed to git repo; I updated commit sha1. New commits:

dc825b0Removed unused imports and fixed coverage problem adding doctests.

comment:44 Changed 11 months ago by git

  • Commit changed from dc825b02728a60f89c907cdc0bc9cb38f713d4a2 to 990c5b2bd63a0604a88cc44a1db2b13beb74273e

Branch pushed to git repo; I updated commit sha1. New commits:

990c5b2One last pyflakes error. Now all tests succeed.

comment:45 Changed 11 months ago by git

  • Commit changed from 990c5b2bd63a0604a88cc44a1db2b13beb74273e to 50117588de4578eb8d1444063e6418de12f596d5

Branch pushed to git repo; I updated commit sha1. New commits:

5011758Forgot to run docbuild and produced some errors, now fixed.

comment:46 Changed 11 months ago by chapoton

(1) This is not the right way:

while (finish_cycle == False):

should rather be

while not finish_cycle:

(2) idem here

while (len(aux_orbits_rho) > 0):

could be

while aux_orbits_rho:

(3) This

+    darts = [x for i in range(len(aux_sigma)) for x in aux_sigma[i]]

could be

darts = [x for y in aux_sigma for x in y]

(4) This

+    for i in range(len(aux_sigma[orb_vertex[0]])):
+        assert tat_graph._metric[aux_sigma[orb_vertex[0]][i]] > epsilon

could be

+    for y in aux_sigma[orb_vertex[0]]:
+        assert tat_graph._metric[y] > epsilon

comment:47 Changed 11 months ago by tscrim

I just want to expand slightly on (1) that there are a few places where you are checking if foo == True:/if foo == False: and all of those should be changed appropriately to if foo:/if not foo:`.

comment:48 Changed 11 months ago by git

  • Commit changed from 50117588de4578eb8d1444063e6418de12f596d5 to ee1c35b79d06b9cd617cb3b6fa12089fd7a2405e

Branch pushed to git repo; I updated commit sha1. New commits:

ee1c35bMore examples, cleaning code in the direction indicated.

comment:49 Changed 11 months ago by git

  • Commit changed from ee1c35b79d06b9cd617cb3b6fa12089fd7a2405e to b3fb968117108fae2a7a8a3893faa9d1f225a507

Branch pushed to git repo; I updated commit sha1. New commits:

b3fb968A couple more of changes suggested by tscrim

comment:50 Changed 10 months ago by chapoton

This has not been corrected:

while (len(darts) > 0):

comment:51 Changed 7 months ago by chapoton

  • Status changed from needs_review to needs_work

and the branch is now red, meaning some conflicts with the latest develop version of sage

Note: See TracTickets for help on using tickets.