[sage-combinat-devel] Re: List of methods at beginning of files
For graphs, the list is also long and is separated by theme (everything done by hand) : http://doc.sagemath.org/html/en/reference/graphs/sage/graphs/generic_graph.html See also sage/graphs/graph_plot.py for an example of how __doc__ string is being created using a for loop. Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/d/optout.
[sage-combinat-devel] Re: dot2tex
One issue that is bugging me isA https://github.com/kjellmf/dot2tex/issues/13 (https://code.google.com/p/dot2tex/issues/detail?id=32) I'm not able to reproduce the issue with \verb in the current development version. I may have fixed it or things may have changed in Graphviz or pyparsing. Can you confirm if this issue is still an issue in Sage? I reported that issue. The ticket on the sage side is http://trac.sagemath.org/sage_trac/ticket/13624 If I well remember, the issue was fixed indirectly by http://trac.sagemath.org/ticket/14382 which stop adding the \verb part for labels. I am trying to confirm it on my version of Sage (sage-6.2.beta6), but it seems dot2tex is broken because it can't find pyparsing again. See comment http://trac.sagemath.org/ticket/14594#comment:62. So I am not able to confirm it is okay, but I think it was. Note that *with* doc2tex installed, I get the following error message: sage: G = DiGraph() sage: G.add_edge(, 88, 'my_label') sage: G.set_latex_options(format='dot2tex') sage: G.set_latex_options(edge_labels=True) sage: view(G) Traceback (most recent call last): ... RuntimeError: dot2tex not available. Please see :meth:`sage.graphs.generic_graph.GenericGraph.layout_graphviz` for installation instructions. which is quite bad. The real error (while importing pyparsing) is not reraised and is replaced by the one above. I just created ticket #16242 to fix this. It needs review. http://trac.sagemath.org/ticket/16242 Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/d/optout.
[sage-combinat-devel] Re: poll for making dot2tex a standard spkg
Description of dot2tex -- Nicolas, can you describe the developement community which is behind dot2tex. Is it only one guy? Is it a team? How is dot2tex maintained? Is it a package that never needs fixes? At #13624, I got a problem with it and reported it upstream [2] last Fall. I got a quick acknowledgement and then silence. Finally the bug was fixed in another way by your patch at #13624 which needs review. Moreover, it seems that the bug will be fixed by #14382 which also needs review. [1] http://trac.sagemath.org/sage_trac/ticket/13624 [2] http://code.google.com/p/dot2tex/issues/detail?id=32 [3] http://trac.sagemath.org/sage_trac/ticket/14382 So in the future, will all the bug related to dot2tex be fixed in Sage like in this example? Will we have problem with the upstream? Anyway, I really like this dot2tex spkg, I use it a lot. If good warnings are printed if graphviz is needed and not installed, I agree to make it standard. Like we have code in Sage which are based on convert of ffmpeg : sage: a = animate([sin(x + float(k)) for k in srange(0,2*pi,0.3)],xmin=0, xmax=2*pi, figsize=[2,1]) sage: a.gif? ... Note: If neither ffmpeg nor ImageMagick is installed, you will get an error message like this: Error: Neither ImageMagick nor ffmpeg appears to be installed. Saving an animation to a GIF file or displaying an animation requires one of these packages, so please install one of them and try again. See www.imagemagick.org and www.ffmpeg.org for more information. -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sage-combinat-devel] Re: Permutations... again.
Hi, I have been using the sage-combinat branch from 2008 to 2010 (all of my patches were in sage-combinat before getting on the sage trac) and then stop using it. Here is my view of this. First I believe the following principle is simple but very important : Principle #1 : The priority (ordering) of patches to be merged into Sage should be given to the next patch which is ready and have positive review. To me the main disadvantage of Sage-Combinat queue is that it does not tend to respect Principle #1. Here is why I claim this. First let us introduce some definitions. Definition #2 - Conflict. There is conflicts between two patches if they is a conflict when applying one patch after the other or if the doctest of one patch is broken by the other. Principle #3 : When someone creates a patch in the sage-combinat queue, he or she will put the patch somewhere it does not disturb others, so somewhere it does not create conflicts with other patches. That means the patch will most probably be added after related patches susceptible to conflicts. The consequence of Principle #3 is that the creator of a patch in the sage-combinat queue accept that *the time before inclusion of its own patch into Sage is larger than the time of inclusion of all patches it depends on*. Moreover, those patches depends on others which depends on others and so on... Definition #4 - Slow patch : A patch is slow if it stays on the needs work or needs review status for a long time. The problem is that a certain patch might depend on a slow patch, so that it can be considered as a slow patch even if it is during a period of time while you are promptly working on Sage. I understand that a group of developpers working on similar research subject might work on similar patches/files and are suceptible to conflicts. Thus, it might be a good idea to share a common queue to anticipate and see conflicts in advance. For example : the sage-combinat queue. But, this tends to respect Principle #3 which violates Principle #1. Another reason which tends to violate Principle #1 is that changing the series file (changing the order of patches) takes a non negligeable amount of energy so that you might prefer to keep the ordering as it is and defined following Principle #3. Indeed, testing if a patch commutes with others is not that fast to check : one must unapply the patches, change the series file, reapply all the patches, run sage -br (with hundreds of modified files!!!) Then, once the commutativity is proved, one must recheck that the patch still work before putting it under review (unapply patches to go back to you patch, sage -br (with hundreds of modified files again). You might after build the documentation doing sage -docbuild reference html (with again hundreds of modified files again!!!) Hence, I believe that a development model where there exists a sane competition to be the first to be merged (creating conflicts to eventual slow patches) might be better than a system which tries to avoid conflicts (favorising slow patches). I am looking forward to discuss with Nicolas, Florent and Nathann about it during the next meeting of Sage users in Paris region. Cheers, Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To view this discussion on the web visit https://groups.google.com/d/msg/sage-combinat-devel/-/1HdTwfvjSqwJ. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
[sage-combinat-devel] Sage Days 28 in Montreal : First Announcement
PLEASE ADVERTISE WHERE APPROPRIATE Prière de diffuser cette information le plus largement possible. L'annonce en français suit l'annonce en anglais. Sage Days 38 First Announcement CRM, Montreal, May 7--11, 2012 Sage (www.sagemath.org) is a mathematics software package, developed by and for the mathematics community. It aims to become a viable alternative to commercial software packages on the basis of an open-source model. This workshop will be a 5-day intensive workshop to serve both as introduction to Sage and as an open developers meeting. The event will include a combination of mathematical talks, tutorials, demonstrations of Sage functionality as well as time spent on Sage development. The principal focus of the developers meeting is algebraic combinatorics and the representation theory of algebras. Further information is available at the following websites: http://wiki.sagemath.org/days38 INVITED SPEAKERS * Meinolf Geck, University of Aberdeen * Florent Hivert, LRI, Université Paris-Sud * Anne Schilling, University of California Davis * Øyvind Solberg, Norwegian University of Science and Technology * Nicolas Thiéry, LMO, Université Paris-Sud WHO SHOULD ATTEND You! A specific goal of the workshop is to provide a venue for faculty, graduate students and undergraduate students to learn more about the software. This will make it accessible to researchers at all levels, *even those without any prior experience with Sage*. Since it will be held in May, it is an excellent opportunity for undergraduate students embarking on summer research projects and graduate students looking to incorporate scientific computation into their research projects. REGISTRATION AND FINANCIAL SUPPORT Online registration will be available starting at the end of February through the official CRM website. In the meantime, you can express your intention to participate by completing the following questionnaire: http://goo.gl/q8o9j A limited amount of financial support is available for students, postdocs, and researchers without grants. You can register and apply for financial support through the conference website once the forms become available. Sincerely Yours, The organizing committee Srecko Brlek, Université du Québec à Montréal Sébastien Labbé, Université du Québec à Montréal Franco Saliola, Université du Québec à Montréal Sage Days 38 Première annonce CRM, Montréal, du 7 au 11 mai 2012 Sage (www.sagemath.org) est un logiciel libre de mathématiques développé par et pour la communauté mathématique visant à devenir une alternative viable aux logiciels commerciaux tels que Magma, Maple, Mathematica et Matlab. La conférence prendra la forme d'un atelier intensif de cinq jours et servira à la fois d'introduction au logiciel Sage et de réunion pour les utilisateurs et les développeurs. La conférence comprendra des présentations mathématiques, des tutoriels sur Sage et ses fonctionalités ainsi que des séances de développement de Sage. Le thème principal de la réunion des développeurs est la combinatoire algébrique et la théorie des représentations des algèbres. Information supplémentaire est disponible sur les pages web suivantes: http://wiki.sagemath.org/days38 CONFÉRENCIERS INVITÉS * Meinolf Geck, University of Aberdeen * Florent Hivert, LRI, Université Paris-Sud * Anne Schilling, University of California Davis * Øyvind Solberg, Norwegian University of Science and Technology * Nicolas Thiéry, LMO, Université Paris-Sud QUI DEVRAIT PARTICIPER ? Vous! Un objectif spécifique de l'atelier est de fournir un lieu pour les professeurs et les étudiants du premier cycle et des cycles supérieurs pour apprendre à utiliser Sage. Il sera accessible aux chercheurs et enseignants de tous les niveaux, *même ceux sans aucune expérience avec Sage*. Comme il sera tenu en mai, il sera une occasion en or pour les étudiants de premier cycle qui se lanceront dans des projets de recherche à l'été 2012 et pour les étudiants des cycles supérieurs qui cherchent à incorporer le calcul scientifique dans leurs projets de recherche. INSCRIPTION ET AIDE FINANCIÈRE L'inscription en ligne sera disponible à partir de la fin du mois de février sur le site web officiel du CRM. En attendant, vous pouvez exprimer votre intention de participer en remplissant le questionnaire ci-dessous: http://goo.gl/q8o9j Une aide financière est disponible pour les étudiants, post-docs et chercheurs sans subventions. Vous pouvez vous inscrire et demander l'aide financière à partir du site web de la conférence (lorsque les formulaires seront disponibles). Cordialement, Le comité d'organisation Srecko Brlek, Université du Québec à Montréal Sébastien Labbé, Université du Québec à Montréal Franco
[sage-combinat-devel] #10660 (merged in 4.7) creates conflicts with move_iet_into_dynamics-vd.patch
Salut, After updating patches (#8670, #10660, #10788, #11128 and #8673 all merged in 4.7) on the sage-combinat queue, I realized that #10660 creates conflicts with move_iet_into_dynamics-vd.patch. Other than that, everything is perfect. Patches applies fine. sage -br works. For now, I put a guard on #10660. Vincent you can remove the guard once you fix the problem. It should not be too hard to fix. I suggest you look at the ticket #10660. I remember it only changes some print statements at some places in the iet folder. You can redo the changes easily. Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Re: conjugate_position in words
Hello Alessandro, Sorry for the absence of feedback, I read your email and it was on my TODO list. This week, I am preparing a talk so I was busy... I also had problems with those conjugacy methods (speed issues) and created a patch for the is_conjugate_with method more than one year ago. Since then, the patch was dying in my branch. So, it's a good thing that you wrote on sage-combinat-devel: it motivates me to get it into Sage. I didn't know about the bug in the conjugate_position method. I also fixed it. A patch will be available in some minutes here : http://trac.sagemath.org/sage_trac/ticket/11128 Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Problem with pickle in CombinatorialFreeModule
Unless someone expresses a strong counter-feeling by Monday, I'll post a patch to revert that. Expect some conflicts with #10354 where I remove the `` print x; `` part (because the warnings do not appear anymore). http://trac.sagemath.org/sage_trac/ticket/10354 I will adapt if your patch gets merge first. Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Problem with pickle in CombinatorialFreeModule
Ah, thanks for the notice. Actually, would you mind updating your patch to remove the #long time? That will reduce the trac/patch/review overhead. I can reset a positive review as soon as done. It is done. The patch was having a positive review since some time. I put it back to needs review status, but I really want this to get into sage-4.7... Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Re: Pickle jar
Salut, Since, as far as I understand, we currently replace the whole pickle tar ball with all files included, this will not be a commutative operation, so we need to be careful in which the tickets are merged into Sage. This might not be the case anymore. Indeed, this week, Jeroen wrote in #10354 [1] : Instead of providing a whole new pickle jar, could you make a tarball containing only the new pickles? I would prefer that for merging as opposed to replacing the pickle jar as a whole. Hence, our pickle jar modification might now be commutative. Also, I wrote in a comment [2] some commands I learned about the pickle jar which I haven't seen in the documentation. Might be usefull for others... I don't know... [1] http://trac.sagemath.org/sage_trac/ticket/10354#comment:11 [2] http://trac.sagemath.org/sage_trac/ticket/10354#comment:13 Cheers, Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] [sage-devel] Ranking and unranking combinations
As a note, with subsets, the behavior of rank is stable under permutations : sage: S = Subsets([0,1,2],2) sage: S.unrank(1) {0, 2} sage: S.rank([0,2]) 1 sage: S.rank([2,0]) 1 2011/2/10 Rob Beezer nicolas.thi...@u-psud.fr: Is the last line a bug, or should the input required to be sorted and an error raised? Or am I missing something? The help for rank/unrank is not very complete. sage: C = Combinations([0,1,2], 2) sage: C.unrank(1) [0, 2] sage: C.rank([0,2]) 1 sage: C.rank([2,0]) 0 -- To post to this group, send an email to sage-de...@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en. -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
[sage-combinat-devel] Re: Pickle jar
Salut, I worked recently on the pickle jar #10354. It needs review. If we are many changing it at the same time, I guess it may cause trouble... If it's the case, let's talk and have a good strategy... http://trac.sagemath.org/sage_trac/ticket/10354 Since it is the first time I am changing the pickle jar, I wrote on ticket all what I understood about how to do such a modification. It might be usefull if one wants to improve the documentation about pickle jar (?). Cheers, Sébastien 2011/2/10 Nicolas M. Thiery nicolas.thi...@u-psud.fr: On Wed, Feb 09, 2011 at 04:51:14AM -0800, Anne Schilling wrote: For #8911 the new pickle jar was just attached. So I added this file to #10632. Probably you can do the same for #7922 (but then the tickets might not commute if both change the pickles). Yeah, that pickle jar procedure is not perfect yet. I have just created a ticket with a suggestion for improving it: http://trac.sagemath.org/sage_trac/ticket/10768 Cheers, Nicolas -- Nicolas M. Thiéry Isil nthi...@users.sf.net http://Nicolas.Thiery.name/ -- You received this message because you are subscribed to the Google Groups sage-combinat-days group. To post to this group, send email to sage-combinat-d...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-days+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-days?hl=en. -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-devel@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Re: De Bruijn Sequences
Hi again! On Thu, Dec 30, 2010 at 05:25:26PM -0500, Sébastien Labbé wrote: Languages are being implemented in the sage-combinat branch by Vincent and me. But we use the definition : the set of factors of a word, where factor means a finite sequence of consecutive letters. Thanks for the clarification! Since ``Language`` is a very common name, and the use case above is only one of the many usages, would it be possible to use a more specific name for the above, at least in the global namespace? I don't know the terminology, but possibly something like FactorLanguage? Or LanguageOfFiniteFactors? Sorry, I realized my answer was wrong the day after when I was country skiing. A language is simply a set of words. The set can be finite or not. Elements can be finite words or infinite words, why not!? So ``Language`` is still the good name for it. Dyck words forms a language and the set B(2,3) of certain DeBruijn Sequences is a language as well. So what I said above (about that the definition we use for language) was wrong. I confused with the notion of language we often use (a factorial language). So don't worry, when I write code I spend more time making sure everything is fine than when I write emails. The code should look like the following : class Language class FactorialLanguage(Language) class UnionOfLanguage(Language) etc. Note : a factorial language is a language L such that w in L and u factor of w implies that u in L. So one question we will have to answer is : Does Language should inherits from CombinatorialClass? Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Re: De Bruijn Sequences
Thank you for the information, Sébastien! The circular problem is interesting; maybe support for operations on circular words could be added in the future. Yes, good point! I am thinking about it. Moreover, I believe CircularWord would behave the same as a PeriodicInfiniteWord, so I am thinking of implementing both at the same time. Thus I think not having it return a word would be more appropriate. Note that DeBruijnSequences(10,3).an_element() could still return a word. This second design choice is yours. I think an_element shoud be consistent with the iterator (either both return words or both return lists or both return tuples). And I am ok with returning a python object like list or tuple. It is more versatile like that and a word can still be created from it. Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Re: De Bruijn Sequences
Hi, De Bruijn sequences are finite words. It would seem logical to include De Bruijn sequences as finite words, since they do fit the definition. Amongst the method of the class WordGenerator, most return infinite words but some return finite words (like PalindromicDefectWord, RandomWord and fibonacci_tile). So if it is a finite word, then it could be represented as a python list, tuple, str, a function {0,1,2...n} - or a finite iterator. What is the reason for not including necklaces and Lyndon Words there, for example? Are they not also words? Right, good question. The reason is simply that necklaces and Lyndon Words were already in Sage when we started working on sage/combinat/words in 2007. The uniformization has never been completed. We could also mention dyck word and yamanouchi words as well. But I think LyndonWord inherits from FiniteWord_list so it is partially linked. To illustrate my vision, I am making sure that the DeBruijnSequence satisfies its definition in two ways : (1) with your patch applied and (2) how it could be. With the patch available at #10530 : sage: L = DeBruijnSequence(2,3).first() sage: L [0, 0, 0, 1, 0, 1, 1, 1] sage: w = Word(L) sage: w word: 00010111 sage: map(w.number_of_factors, [0,1,2,3]) [1, 2, 4, 6] We are missing two factors of length 3 because the sequence is circular. By considering a certain power, we get the missing factors : sage: ww = w ^ (5/4) sage: ww word: 0001011100 sage: map(ww.number_of_factors, [0,1,2,3]) [1, 2, 4, 8] how it could be : -- sage: w = words.DeBruijnSequence(2,3).first()#maybe this one is not natural for the user to find it... sage: w = DeBruijnSequence(2,3).first() #maybe this is better, but in either case, the following could be... sage: w word: 00010111 sage: type(w) class 'sage.combinat.words.word.FiniteWord_list' sage: map(w.number_of_factors, [0,1,2,3]) [1, 2, 4, 6] We are missing two factors of length 3 because the sequence is circular. By considering a certain power, we get the missing factors : sage: ww = w ^ (5/4) sage: ww word: 0001011100 sage: map(ww.number_of_factors, [0,1,2,3]) [1, 2, 4, 8] --- There is one final important thing to consider : sage: L = [0, 0, 0, 1, 0, 1, 1, 1] sage: %timeit Word(L) 625 loops, best of 3: 186 µs per loop This is could be improved, but today it is like that. So if one wants to claim that 32.1 µs is 300 times faster than matematica to create the first element of B(2,3), keeping the result as a list might be a good idea as well. It depends what one wants to do with it. Cheers and happy new year! Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Re: De Bruijn Sequences
Hi Eviatar and Nicolas, Speaking of which, one question for the sage-word people: should De Bruijn sequences be output as Words? I believe so. Well, if we want to get things similar together. Many infinite sequences have already been implemented. They are available here (or in sage/combinat/words/word_generators.py) : sage: words.[TAB] Object returned are sequences (or infinite words over a given alphabet). They are slice-able and many other methods for infinite words have been implemented. Infinite words can be coded by an iterator or a function N - Alphabet. Examples are in the following file : sage/combinat/words/word_generator.py. What do you think? Maybe we could rename words by sequences , sequencesBank or something. Should the set of all De Bruijn sequences be a Language? Languages are being implemented in the sage-combinat branch by Vincent and me. But we use the definition : the set of factors of a word, where factor means a finite sequence of consecutive letters. Cheers, Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
[sage-combinat-devel] Not able to use layout_graphviz
Salut Nicolas et Vincent, I am trying to use the graphviz functionalities you added in ticket #7004. So, I installed graphviz and the dot2tex spkg as explained in the documentation of layout_graphviz method, but I get the following error when I use it : sage: g = Graph({2:[3,4]}) sage: g.layout_graphviz() Traceback (most recent call last): ... UnboundLocalError: local variable 'positions' referenced before assignment Are you able to make this (or any) example to work? How should I use it? Thank you, Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Word bug ???
Hi, This is now #10261 : http://trac.sagemath.org/sage_trac/ticket/10261 Cheers, Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
[sage-combinat-devel] Removed 15 of my work in progress patches from the sage-combinat tree.
Hi, If you read the log of the sage combinat patch server, you will see that today I removed 15 of my work in progress patches from the sage-combinat tree. The reason is that I decided to change my workflow of Sage development. I learned how to contribute to Sage in 2008 through Sage Combinat and since then, all of my patches started their lives in the Sage-Combinat tree. But now, I realize that I can be more efficient by keeping my use of the Sage Combinat tree to the strict necessary, that is, for patches that are made in a collaboration with other people using Sage-Combinat (language-vd.patch with Vincent Delecroix, Alexandre Blondin Massé, Thierry Monteil... for example). Indeed, the following actions take lot of time : - Make sure I don't mess up the Sage-Combinat tree (one single hg qpop -a hg qpush -a sage -br takes minutes) - Compile the documentation (even though my patch often change only one or two files, I am constantly building the documentation of hundred modified files by the all the sage combinat patches) Hence, since the majority of the patches I'm working on are independent of other's, I decided to create my own patches repository (made of my patches and the patches I am reviewing) : http://sage.math.washington.edu/home/slabbe/patches/ The sage-combinat script can be used to install my patches on your computer in a new branch called slabbe by simply running the following command (don't consider the last print of that command which ends saying Sage Combinat installed) : $ sage -combinat install -b slabbe -s http://sage.math.washington.edu/home/slabbe/patches/ Doing so, my workflow will be more efficient and sage-combinat workflow as well because there are now 15 patches less in the sage-combinat tree. Cheers, Sébastien Labbé -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
[sage-combinat-devel] I get 2 warnings while building the documentation from patches needing review
Hi Sage-Combinat developers, I get 2 warnings while building the documentation from patches needing review : /Users/slabbe/Applications/sage-4.5.3/local/lib/python2.6/site-packages/sage/categories/modules_with_basis.py:docstring of sage.categories.modules_with_basis.ModulesWithBasis:21: (ERROR/3) Unexpected indentation. /Users/slabbe/Applications/sage-4.5.3/local/lib/python2.6/site-packages/sage/categories/modules_with_basis.py:docstring of sage.categories.modules_with_basis.ModulesWithBasis.ParentMethods.module_morphism:85: (WARNING/2) Block quote ends without a blank line; unexpected unindent. I get them quite early in the sage-combinat tree. So the author of the responsible patch should recognize himself : sla...@pol ~/Applications/sage-4.5.3/devel/sage-combinat/sage/combinat/words $ hg qapplied sage-5.0.patch trac_9648_modulemorphism_codomain_extension-cs.patch trac_9651_CombinatorialFreeModule_Addition-cs.patch trac_9075_unpickle_all_testsuite-nt.patch trac_8925-call_set_enumset-fh.patch trac_8674_word_combinaorial_cmp-sl.patch trac_8674_fixes_after_review-sl.patch trac_8670-word-path-projection-sl.patch trac_8670-review-sl.patch Cheers, Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
[sage-combinat-devel] updated sage-combinat tree for 4.5.3
Hi, Today, we updated the sage-combinat tree to work on sage-4.5.3. It was easy : Thierry Monteil added the guard 4_5_3 on a patch merged in sage-4.5.3. So if you are still using sage-4.5.2 or an earlier version of sage, consider adding the guard 4_5_3 to avoid conflicts in the application of the sage-combinat patches (which is done automatically with the script sage -combinat update.) Cheers, Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
[sage-combinat-devel] Re: updated sage-combinat tree for 4.5.3
Hi, consider adding the guard 4_5_3 to avoid conflicts By adding the guard, I meant qselecting it : $ sage -hg qselect 4_5_2 $ sage -hg qselect 4_5_2 4_5_3 $ sage -hg qselect 4_5_2 4_5_3 Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
[sage-combinat-devel] Sage Day 25.5 - First Announce ment - Première Annonce
PLEASE ADVERTISE WHERE APPROPRIATE Sage Day 25.5 First Announcement (en français plus bas) LaCIM, UQAM, Montréal, Canada, September 1st, 2010 OVERVIEW Held in sandwich between LaCIM 2010 - 20th anniversary and GASCom 2010 conferences, this day is an opportunity for their participants to learn more about Sage. Introductory talks will be given and possibly talks or discussions on Sage adapted to the audience of LaCIM 2010 (algebraic combinatorics, theoretical computer science, bioinformatic, physics and number theory) and GASCom (generation of combinatorial objects and bijective combinatorics). Students starting their Autumn semester will be invited as well. The goals are : * Give introduction talk on Sage * Help people installing Sage on their computer * Give talks on Sage for topics related to LaCIM 2010 and GASCom conferences * Give the opportunity for Sage developers to meet and discuss RELATED CONFERENCES * LaCIM 2010, August 29-31 2010, http://lacim2010.lacim.uqam.ca/ * GASCom, September 2-4 2010, http://gascom2010.lacim.uqam.ca/ ABOUT SAGE Sage is a free open-source software for mathematical computations. Its mission is to provide a viable alternative to commercial software like Maple or Mathematica, and its community is growing fast worldwide. You will find more information about Sage on the website: http://www.sagemath.org WORKSHOP PROGRAM More information on the program, together with a list of speakers, will be made available on the website: http://wiki.sagemath.org/days25.5 WHO SHOULD ATTEND You! The workshop will be accessible to researchers at all levels, even those without any experience with Sage. This also includes undergraduates that will be starting their autumn semester. REGISTRATION The last day to register is August 28, but potential registrants are requested to register as *soon as possible*. You can register here: https://spreadsheets.google.com/viewform?formkey=dE1mc0N2M3lJQlpyN244MTdHOTdRUXc6MQ It is strongly recommended that participants bring their own laptop, as the number of on-site computers is limited. Questions should be directed to Sébastien Labbé sla...@gmail.com. Sincerely Yours, The organizing committee Alexandre Blondin Massé, LaCIM, UQAM Sébastien Labbé, LaCIM, UQAM Franco Saliola, LaCIM, UQAM == Journée Sage 25.5 Première annonce LaCIM, UQAM, Montréal, Canada, 1er Septembre 2010 INFORMATIONS Tenue en sandwich entre les conférences LaCIM 2010 - 20e anniversaire et GASCom 2010, cette journée est une occasion pour leurs participants à en savoir plus sur Sage. Des exposés d'introduction seront donnés ainsi que des des discussions sur Sage adaptés à l'auditoire de LaCIM 2010 (Combinatoire algébrique, informatique théorique, bioinformatique, la physique et la théorie des nombres) et GASCom (génération d'objets combinatoires et combinatoire bijective). Les étudiants qui commencent leur trimestre d'automne seront également invités. Les objectifs sont les suivants: * Donner des exposés d'introduction à Sage * Aider les participants à installer Sage sur leur ordinateur * Donner des conférences sur Sage sur des sujets liés aux conférences LaCIM 2010 et GASCom * Donner la possibilité pour les développeurs de Sage se rencontrer et discuter CONFÉRENCES CONNEXES * LaCIM 2010, 29 au 31 août 2010, http://lacim2010.lacim.uqam.ca/ * GASCom, 2 au 4 Septembre 2010, http://gascom2010.lacim.uqam.ca/ À PROPOS DE SAGE Sage est un logiciel libre et open-source de mathématiques. Sa mission est d'offrir une alternative viable aux logiciels commerciaux comme Maple ou Mathematica, et sa communauté est en pleine croissance dans le monde entier. Vous trouverez plus d'informations sur Sage sur le site: http://www.sagemath.org PROGRAMME DE LA JOURNÉE Plus d'informations sur le programme, le local exact ainsi que la liste des orateurs, seront mises à disposition sur le site: http://wiki.sagemath.org/days25.5 QUI PEUT PARTICIPER? Vous! L'atelier sera accessible aux chercheurs de tous les niveaux, même ceux qui n'ont aucune expérience avec Sage. Cela inclut également les étudiants qui commenceront le semestre d'automne. INSCRIPTION Le dernier jour pour s'inscrire est le 28 août, mais comme l'annonce est tardive, on préfère que les participants s'inscrivent dès que possible. Vous pouvez vous inscrire ici: https://spreadsheets.google.com/viewform?formkey=dE1mc0N2M3lJQlpyN244MTdHOTdRUXc6MQ Il est fortement recommandé aux participants d'apporter leur propre ordinateur portable, étant donné que le nombre d'ordinateurs sur place est limité. Les questions peuvent être adressées à Sébastien Labbé sla...@gmail.com. Cordialement, Le
Re: [sage-combinat-devel] Re: LACIM + GASCOM
Hi! Thanks Florent for starting this topic. It's time to start organizing this! - I have already the rights to put web pages on the LaCIM server: therefore, I can be in charge of the website for this Sage Day. Alex, I propose not to do a web page on the LaCIM server. My opinion is that web pages are often not that practical for Sage Days because it centralizes its management. A wiki page is lot more convenient. It can be updated by anyone, people can add their pdf presentations, etc. So I will create such a page right now and will try to gather all the basic informations we have (date, people attending, objective ...). I think it can be a good way to start the organisation. Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Re: LACIM + GASCOM
So I will create such a page right now and will try to gather all the basic informations we have (date, people attending, objective ...). I think it can be a good way to start the organisation. The page is up (it is a first version) : http://wiki.sagemath.org/days25.5 I put the information I have and wrote a small section about the goals of the day as I see them. Please read it and edit it so that the goals become as WE see them! There is also a Projects section that you can edit. Florent : I added you as an invited speaker. Thanks for your proposal for giving an introductory talk! Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Failure in words.py in needs_review
2 items had failures: 2 of 7 in __main__.example_10 2 of 12 in __main__.example_9 ***Test Failed*** 4 failures. For whitespace errors, see the file /home/combi/nthiery/.sage//tmp/.doctest_words.py [1.7 s] -- Please fix it soon! Fixed! Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Poset labels
x.element gives you the element underlying the node. sage: x.element() --- TypeError Traceback (most recent call last) /home/martin/ipython console in module() TypeError: 'SkewPartition_class' object is not callable Try with no parenthesis... I don't know why it is an attribute and not a method as usual... Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
[sage-combinat-devel] Re: language
Bonjour Vincent, I am adding sage-combinat-devel in cc to my answer to your email because I think it the discussion is pertinent. Although, I realized it in the end, so everything is in French... Sorry. Je viens de poster un brouillon de la classe LanguageOfFullWords. Comme j'ai besoin de faire des calculs rapides, j'utilise le plus possibles des objets python de base, mais évidemment ça limite l'utilisation. En plus, on pourrait aller exponentiellement plus vite (et gagner beaucoup de place) en utilisant en SuffixTrie... En effet, la construction du langage est locale: pour construire les mots de taille n on regarde juste les mots de taille n-1 et on fait éventuellement un test de palindrome. Par contre on a besoin de regarder à gauche et à droite. Cool, alors, je vais continuer à travailler sur le suffix trie à la cassaigne. sage: L = sage.combinat.words.language.LanguageOfFullWords(2) sage: L Language of full words over the Ordered Alphabet ['0', '1'] sage: [L.factor_complexity(i) for i in range(15)] [1, 2, 4, 8, 16, 32, 64, 128, 252, 488, 932, 1756, 3246, 5916, 10618] Quelques remarques, dis-moi ce que tu en penses: 1) Ce serait pratique d'avoir un __getitem__ dans Language, pour le moment il est implémenté très bas (LanguageOfMorphism, LanguageOfFullWords) D'abord le getitem retourne une liste des facteurs de longueurs n du langage, c'est bien ça qu'on veut? Je trouve ça pratique, sauf que souvent le getitem suit le comportement de __iter__ alors qu'ici __iter__ itère sur le facteurs eux-mêmes. Tu n'avais peut-être pas une version à jour lorsque tu as fait cette remarque, car __getitem__ est implémenté dans Language. 2) L'utilisation de __new__ complique l'héritage ! Je suis obligé de faire une méthode __new__ presque triviale dans ma nouvelle classe. Le but du __new__ est d'éviter d'appeler LanguageOfFullWords, LanguageOfMorphism, LanguageOfWord, pour construire une instance et d'utiliser plutôt et toujours le même mot clé Language. Maintenant, la question est de savoir comment reconnaître qu'avec certains arguments donnés l'utilisateur veut construire le language d'un morphisme, des facteurs d'un mot, des mots pleins, etc. En fait, je crois qu'une autre solution serait mieux dans ce cas-ci. L'utilisation de méthodes sur les objets permet d'éviter toute l'ambiguité due à la création d'un objet plus complexes à partir d'objets simples (qui peuvent utiliser les mêmes structures de données python pour représenter des objets différents). sage: W = Words('ab') sage: F = W.language_of_full_palindromic_words() sage: P = W.language_of_palindromes() De même, on pourrait faire la même chose pour le langage des facteurs d'un mot: sage: w = Word('aasldnafnasdfl') sage: L = w.language() et le langage d'une substitution: sage: m = WordMorphism('a-ab,b-ba') sage: L = m.language() Et on pourrait même éviter l'ajout du mot Language dans le namespace de Sage, car de toute façon, on doit toujours créer un autre objet Sage (Morphisme, Mot, Ensemble de mots) avant de créer une instance de langage. Qu'en penses-tu? Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] queue is broken -- am I responsible ?
Salut Alex, applying trac_8696-character_rings-nt.patch patching file sage/combinat/j_trivial_monoids.py Hunk #2 FAILED at 223 1 out of 9 hunks FAILED -- saving rejects to file sage/combinat/ j_trivial_monoids.py.rej patch failed, unable to continue (try -v) patch failed, rejects left in working dir errors during apply, please fix and refresh trac_8696-character_rings- nt.patch Abort Did you read the 10 lines about reject in the following section ? http://wiki.sagemath.org/combinat/MercurialStepByStep#Handlingrejection I was having the same reject this morning (I should have written to sage-combinat-devel about it but I didn't), so I don't think you are responsable for it. Another way for you to know if you are responsable for the reject is to ask yourself if you modified the file where the conflicts arise, in this case : j_trivial_monoids.py. The problem seems to come from trac_8696-character_rings-nt.patch, which is N. Thiéry's patch, but I don't understand how I could have made it fail, nor how I can fix it. One thing you can do is to sage -hg qpush -a one more time (and do not worry about the conflicts) and until all patches are applied or until you get to your patch. It is possible that sage -br still works anyway so that you can work on your patch anyway. In any case, it is a good thing to email sage-combinat-devel, because most probably the author didn't know about the conflict. Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] can I use dynamic classes without lost of speed ?
Great! Thanks for your answer Nicolas and for the clues you give me. I am now more confident and I will continue to work on it! Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] WordMorphismExtension, vocabulary ang global namespace
Hi, {{{ sage: e = WordMorphismExtensionDual('a-ab,b-ac,c-a') sage: e E*(WordMorphism: a-ab, b-ac, c-a) sage: f1 = Face((0,0,0),1) # the face 1 or a at (0,0,0) sage: f2 = Face((0,0,0),2) # the face 2 or b at (0,0,0) sage: f3 = Face((0,0,0),3) # the face 3 or c at (0,0,0) sage: e(f1) # the image of f1 Patch([((0, 1, -1), 2), ((1, 0, -1), 1), ((0, 0, 0), 3)]) sage: e(f2) # the image of f2 Patch([((0, 0, 0), 1)]) sage: e(f3) # the image of f3 Patch([((0, 0, 0), 2)]) }}} Instead of adding WordMorphismExtensionDual to the namespace, I prefer the following : sage: m = WordMorphism('a-ab,b-ac,c-a') sage: e = e.extension_dual() sage: e Extension dual of WordMorphism: a-ab, b-ac, c-a And one can iterates and this is the way we obtain our beautiful pictures (is there a standard for the option iterations ?) {{{ sage: e(f1,iterations=5) Patch([((1, -3, 4), 1), ((0, -1, 2), 3), ((1, -1, 1), 1), ((-1, -1, 4), 2), ((0, -1, 2), 1), ((1, -3, 3), 3), ((-1, -1, 4), 3), ((1, -2, 2), 2), ((1, -1, 0), 1), ((2, -2, 0), 1), ((1, -3, 3), 1), ((0, -2, 4), 2), ((0, -3, 5), 3), ((2, -2, 1), 1), ((-1, 0, 2), 2), ((0, 0, 1), 2), ((0, -1, 2), 2), ((0, -2, 4), 3), ((2, -3, 1), 1), ((1, -2, 3), 1), ((1, -1, 1), 2), ((0, 0, 0), 2), ((1, -2, 2), 3), ((0, -1, 3), 2), ((1, -2, 2), 1), ((2, -3, 2), 1), ((-1, -2, 5), 3), ((0, -1, 3), 1), ((1, -1, 0), 2), ((-1, 0, 3), 2), ((0, -2, 4), 1)]) }}} Right now, with word morphism, one can do either of the following sage: m = WordMorphism('a-ab,b-ac,c-a') sage: (m^5)('a') word: abacabaabacababacabaabac sage: m('a', 5) word: abacabaabacababacabaabac You obtain the fixed point using : sage: m('a', oo) word: abacabaabacababacabaabacabacabaabacababa... Hence, you could follow the same idea : sage: (e^5)(f1) A patch ... sage: e(f1, 5) A patch ... sage: e(f1, oo) The limit fractal! Does the name of patch is really used by Arnoux, Ito? Or is it Franco who used that name? Instead of patch, I would use another name that evoques a little bit more the idea of a finite domain of a discrete plane. So why not, finite domain of a discrete plane which says what it is!? Thanks! So, somehow, e is a function from the set of patches to itself, right? I have no clue on the subject, so this might be completely silly, but what about: {{{ sage: Patches = e.codomain() # or e.domain()? }}} ``patches`` would be a parent modeling the collection of all patches. And then, one could do things like: {{{ sage: f1 = Patches.face((0,0,0),1) # builds a face sage: p = Patches( ( ((0,0,0),1), ((0,0,0),2) ) ) # builds a patch from an iterable of face-data }}} +1 : I agree with the ideas of Nicolas After speaking with Timo (now in Montpellier), I think the extension (before taking the dual) of word morphism corresponds to something I use quite often for example to construct a Christoffel Tile : sage: P = WordPaths('abAB') sage: P Word Paths on the square grid sage: P.letters_to_steps() {'a': (1, 0), 'A': (-1, 0), 'B': (0, -1), 'b': (0, 1)} sage: L = WordMorphism('a-aBab,b-ab,A-AbAB,B-AB', codomain=P) sage: bar = WordMorphism('a-A,b-B,A-a,B-b', codomain=P) sage: w = P(words.ChristoffelWord(5,8, alphabet='ab')) sage: L(w*bar(w)).plot(endarrow=False) Maybe it can be usefull ... Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Garded trac_8429_split_word-sl.patch for 4.3.4
Hi Florent, the patch 8429 depends on many patches merged in 4.3.4.alpha1 already (for instance 8418). Did you applied those first? Maybe I should not guard by 4_3_4 the patches which 8429 depends on Sébastien 2010/3/6 Florent Hivert florent.hiv...@univ-rouen.fr: Dear Sébastien, For some reason, the patch trac_8429_split_word-sl.patch is rejected against 4.3.4alpha0... I guarded it. You probably want to update it. Cheers, Florent -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en. -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Check when defining a permutation by one-line notation (list of int)
This function then call an hidden internal function called for example _from_list that creates the object from a list without any check. hidden or not : I now remember Nicolas saying from_list is good. The user might want to use it. Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Empty word and comparisons
Le 15 février 2010 23:19, Nicolas M. Thiery nicolas.thi...@u-psud.fr a écrit : Hi Sébastien, I just went through the patch. Great. Thanks! It sounds good! What about having a common super class for all the concrete word classes (list/tuple/str) which would contain all the shared logic about how finite words interact together? Good idea, one could put there the function length because its code is the exact same for all of those three classes. So, your idea is (like you explain below) that concatenation of finite word defined by list with another defined by str could be treated there, right? The two following design decisions will probably require more discussion: - Using _mul_ rather than __mul__ in the Words class, so as not to get in the way of coercion? Ok, I need more explanation here. (You can wait for next week if you don't want to write a long mail for that). - Automatically concatenating concrete words, with coercion if needed (say list+string - list, ...) Right, I understand. Some discussion are needed. Like tuple + list - list or tuple ? Thanks, Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] server down?
My fault. Fixed in principle. I had hopped no-one would have pulled in the 2 minutes gap ... No, I think it was Alexandre who pushed an old version of the series file on the server. With Nicolas's and my recent changes, everything is back to normal. Nothing was lost. I didn't explain to Alexandre exactly what to do in case of conflicts (if this is what happened to him). Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Re: [sage-devel] Re: #8044: Categories for finite/permutation/symmetric groups
Sébastien Labbé: you played quite some with the Cayley graph code. Would you be ok reviewing this part? (unless Robert beats you to it). As a teaser, you might like the following: sage: M = Monoids().example(); M An example of a monoid: the free monoid generated by ('a', 'b', 'c', 'd') sage: elements = [ M.prod(w) for w in sum((list(Words(M.semigroup_generators(),k)) for k in range(4)),[]) ] sage: G = M.cayley_graph(elements = elements) sage: G.show3d(color_by_label=True, edge_size=0.001, vertex_size=0.01) Cool! I like it! (and I take your suggestions for a better way to create all words of length =3) A solution (independant of monoid code though): sage: Words('abcd', length=4) Finite Words of length 4 over Ordered Alphabet ['a', 'b', 'c', 'd'] We could have a discussion about merging this code in February By the way, Sébastien, if you want to make a small patch on top of #8044 which would include the cl Cayley graph examples from cayley_graph-sl.patch, it would make sense to merge it in the same ticket, and I'll be happy to review it. I just added the patch on sage-trac and on sage-combinat server. I don't have time right now to do more than that... Maybe on sunday (in Marseille!). Have a good weekend! Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
[sage-combinat-devel] ** unknown exception encountered, details follow
Bonjour sage-combinat, I am currently having a strange problem with the sage-combinat tree. Are you experiencing a similar thing? Sébastien sla...@pol:~/sage-4.3.1/devel/sage-combinat$ hg qpop -a aucun patch appliqué sla...@pol:~/sage-4.3.1/devel/sage-combinat$ hg qpush application de impossible de lire ** unknown exception encountered, details follow ** report bug details to http://mercurial.selenic.com/bts/ ** or mercur...@selenic.com ** Mercurial Distributed SCM (version 1.3.1) ** Extensions loaded: mq, extdiff Traceback (most recent call last): File /home/slabbe/sage-4.3.1/local/bin/hg, line 27, in module mercurial.dispatch.run() File /home/slabbe/sage-4.3.1/local/lib/python/mercurial/dispatch.py, line 16, in run sys.exit(dispatch(sys.argv[1:])) File /home/slabbe/sage-4.3.1/local/lib/python/mercurial/dispatch.py, line 27, in dispatch return _runcatch(u, args) File /home/slabbe/sage-4.3.1/local/lib/python/mercurial/dispatch.py, line 43, in _runcatch return _dispatch(ui, args) File /home/slabbe/sage-4.3.1/local/lib/python/mercurial/dispatch.py, line 449, in _dispatch return runcommand(lui, repo, cmd, fullargs, ui, options, d) File /home/slabbe/sage-4.3.1/local/lib/python/mercurial/dispatch.py, line 317, in runcommand ret = _runcommand(ui, options, cmd, d) File /home/slabbe/sage-4.3.1/local/lib/python/mercurial/dispatch.py, line 501, in _runcommand return checkargs() File /home/slabbe/sage-4.3.1/local/lib/python/mercurial/dispatch.py, line 454, in checkargs return cmdfunc() File /home/slabbe/sage-4.3.1/local/lib/python/mercurial/dispatch.py, line 448, in lambda d = lambda: util.checksignature(func)(ui, *args, **cmdoptions) File /home/slabbe/sage-4.3.1/local/lib/python/mercurial/util.py, line 402, in check return func(*args, **kwargs) File /home/slabbe/sage-4.3.1/local/lib/python/hgext/mq.py, line 2117, in push mergeq=mergeq, all=opts.get('all')) File /home/slabbe/sage-4.3.1/local/lib/python/hgext/mq.py, line 979, in push top = self.applied[-1].name IndexError: list index out of range -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
[sage-combinat-devel] conflicts with triangular-morphisms-jb.patch
Dear Jason, Dear Nicolas, I am currently experiencing a small conflict in the sage-combinat tree. See below for the content of the reject file. Sébastien sla...@pol:~/sage-4.3/devel/sage-combinat$ hg qpop -a aucun patch appliqué sla...@pol:~/sage-4.3/devel/sage-combinat$ hg qselect no active guards sla...@pol:~/sage-4.3/devel/sage-combinat$ hg qpush -a application de trac_7776-inject_variable-nt.patch application de trac__symmetric_functions-inject_shorthands-nt.patch skipping trac_7921-categories_for_extension_types-nt.patch - guarded by ['+category'] application de trac_7145-iet-final.patch application de trac_7543_s_adic_final.patch application de trac_7520_words_construction_improvements-sl.patch application de trac_7619_pickle_for_FiniteWord_iter_callable-sl.patch skipping words_ng-cpp_basic_string.patch - guarded by ['+words_ng_fixme'] application de classcall_metaclass-nt.patch application de element_wrapper-improvement-nt.patch patching file sage/categories/examples/finite_semigroups.py Hunk #1 succeeded at 171 with fuzz 2 (offset 57 lines). application de crystal_cleanup-as.patch patching file sage/combinat/crystals/letters.py Hunk #11 succeeded at 1309 with fuzz 2 (offset 0 lines). application de crystal_cleanup-nt.patch application de trac_7538_poset_equal_fix-fh.patch application de trac_6641-poset_antichains_backtracker.patch application de trac_6641-poset_antichains_backtracker-part2.patch application de combinat-quickref-jb.patch application de trac_6655_partition_newfeature-ny.patch patching file sage/combinat/partition.py Hunk #1 succeeded at 834 with fuzz 2 (offset -13 lines). application de triangular-morphisms-jb.patch patching file sage/categories/modules_with_basis.py Hunk #3 FAILED at 240 Hunk #4 succeeded at 245 with fuzz 2 (offset -28 lines). 1 out of 8 hunks FAILED -- saving rejects to file sage/categories/modules_with_basis.py.rej l'application du patch a échoué, impossible de continuer (essayez avec -v) patch failed, rejects left in working dir des erreurs se sont produites durant l'application, veuillez corriger puis rafraîchir triangular-morphisms-jb.patch Here is the reject : sla...@pol:~/sage-4.3/devel/sage-combinat$ cat sage/categories/modules_with_basis.py.rej --- modules_with_basis.py +++ modules_with_basis.py @@ -239,6 +241,16 @@ class ModulesWithBasis(Category_over_bas # TODO: find something better to get this inheritance from CategoryWithTensorProduct.Element class ElementMethods(CategoryWithTensorProduct.ElementMethods, CategoryWithCartesianProduct.ElementMethods): +# TODO: Define the appropriate element methods here (instead of in +# subclasses). These methods should be consistent with those on +# polynomials. + +# def _neg_(self): +# +# Default implementation of negation by trying to multiply by -1. +# TODO: doctest +# +# return self._lmul_(-self.parent().base_ring().one(), self) def support_of_monomial(self): -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Enhancement of graph drawing
Hi Victor Miller, I would like the following enhancements of graph drawing: 1) The ability to add an optional label to vertices (the labels needn't be unique) and to have an option to drawing the graph use that label, instead of the unique vertex label. This arises, for instances, in the standard drawing of decision diagrams in which internal nodes of a DAG are labeled with a variable name. A number of different nodes may be labeled with the same variable name. Great! What do people think of this? I have been needing (1) in the past : often, the repr of an object is not aesthetic (e.g. too long) for graph drawing. So I like the possibility of defining the labels of the vertices using a dict maybe. I also wondered recently if one can do a graph of Graphics objects. For example : sage: a = Graph().plot() sage: b = Graph({0:[0]}).plot() sage: c = Graph({0:[1],1:[0]}).plot() sage: d = Graph({0:[1],1:[2],2:[0]}).plot() Beware, the following line doesn't fail and produces dozens of drawings I guess because repr called on a,b,c and d produces a plot. sage: g = Graph({a:[b],b:[c],c:[d]}) The following line could produce one plot where each vertices is a circle containing the plot of a, b, c or d (beware, is still produces dozens of plots) : sage: g.plot() I just wanted to share this idea. Feel free to share me development on (1), I will be happy to try it, gives comments and/or be a reviewer. Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Alphabet and Words
I propose to create a class UnionAlphabet which heritates from UnionCombinatorialClass and Alphabet. Do you agree ? Yes! 2) The _str_ method of words is pretty bad in a lot of situations. I agree! Up to now, I was using the WordOptions(identifier='') method which could be better. It could be more automatic. Especially in my case where the labels of my intervals are words (but there is also the example of the Rauzy graph). Do you have any idea for this ? I propose to build a _str_ method of any words inside Words. I imagine something that looks like this {{{ sage: W1 = Words(alphabet=abc, str=standard) sage: print str(W2(abbaca)) word: abbaca sage: W2 = Words(alphabet=abc, str=minimalist) sage: print str(W2(abbaca)) abbaca sage: W3 = Words(alphabet=abc, str=sequence) sage: print str(W3(abbaca)) a, b, b, a, c, a }}} I don't think I like this proposition. The print option of an element is not really a property of the parent. The latter is especially nice when your alphabet looks like A = {'ab', 'ac', 'be'} This is the current default behavior (comma are added when there is a letter using more than one character): sage: A = Alphabet(['ab','ac','be']) sage: W = Words(A) sage: W(['ab','ab','be','ac']) word: ab,ab,be,ac What do you think ? Cheers, Vincent I think that the problem is that str and repr are currently the same : sage: w = Word('abccdef') sage: str(w) 'word: abccdef' sage: repr(w) 'word: abccdef' str(w) should not include the identifier : sage: str(w) 'abccdef' sage: print w abccdef This would solve the problem for labels of (rauzy) graphs...and probably more. I will create the ticket soon, if you don't do it before me. Cheers, Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
Re: [sage-combinat-devel] Re: [sage-devel] sage combinat installation freezes on mac os 10.6
Hello everyone ! I'm trying to install sage combinat on my computer to share patches with a friend, but it freezes after only a few minutes. Here are the last lines of input in the terminal Alexandre, I think that this is solved by http://trac.sagemath.org/sage_trac/ticket/7473 merged yesterday. Sébastien -- You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.
[sage-combinat-devel] Re: Reject on word_pal_complexity-sl.patch
Hi application de word_pal_complexity-sl.patch patching file sage/combinat/words/word.py Hunk #1 succeeded at 1264 with fuzz 2 (offset 147 lines). Hunk #3 FAILED at 2738 1 out of 4 hunks FAILED -- saving rejects to file sage/combinat/words/word.py.rej Can you please fix it or at least disable the patch. It does not bother me since it's very low in the queue but it is a problem for newcommers. The patch word_pal_complexity-sl.patch depends on #7227 patches merged in sage-4.2.1.alpha0. If you are using a version of sage 4.2.1.alpha0, make sure to apply the 4_2_1 guard : /sage-4.2/devel/sage-combinat$ hg qselect 4_2_1 This should fix the problem (tell me if not). Sébastien --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-devel@googlegroups.com To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en -~--~~~~--~~--~--~---
[sage-combinat-devel] Re: word_pal_complexity-sl.patch and 4.2
I found the reason : I added the guard 4_2_1 this morning to the patches #7227 which are needed by word_pal_complexity-sl.patch So everybody should now add this guard to their qselect... Althought, I still get the reject on primes.py --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-devel@googlegroups.com To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en -~--~~~~--~~--~--~---
[sage-combinat-devel] Re: word_pal_complexity-sl.patch and 4.2
2009/11/3 Sébastien Labbé sla...@gmail.com: I found the reason : I added the guard 4_2_1 this morning to the patches #7227 which are needed by word_pal_complexity-sl.patch So everybody should now add this guard to their qselect... Finally, I just removed the 4_2_1 guard since sage-4.2.1 doesn't exist yet! When should we add the new x_y_z guard for the first time to avoid this problem? Althought, I still get the reject on primes.py --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-devel@googlegroups.com To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en -~--~~~~--~~--~--~---
[sage-combinat-devel] Re: word_pal_complexity-sl.patch and 4.2
PS by the way, please make sure to systematically include the ticket number in the patch description. That helps diagnosing this kind of error. Thanks! E.g: this is one piece of 5038, as it shows up in hg log in sage 4.2 vanilla: changeset: 13197:af3f9d33e6cc user: Sebastien Labbe sla...@gmail.com date: Fri Sep 18 23:28:17 2009 +0200 summary: * * * Ok, I must admit I was not doing it systematically. I will also make sure to keep the header on one single line... sla...@pol:~/sage-4.1.2/devel/sage-combinat$ hg qtop trac_5038_paths-sl.patch sla...@pol:~/sage-4.1.2/devel/sage-combinat$ hg qheader * * * This patch introduces classes for word paths. * * * Sébastien --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-devel@googlegroups.com To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en -~--~~~~--~~--~--~---
[sage-combinat-devel] Re: Accent in patches...
Dear Florent, disjoint_sets_sl.patch:# User Sébastien Labbé sla...@gmail.com Sébastien, I'm sorry to ask this to you but can you remove the accents in your patches and refresh them ? Done. Sorry for that. I removed the accent from my .hgrc file 2 months ago. I guess I haven't qrefresh that patch for a long time. Sébastien --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-devel@googlegroups.com To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en -~--~~~~--~~--~--~---
[sage-combinat-devel] Re: polynoms/finite words and series/infinite words
Salut Vincent, Do you know that I am in France now!? For one year! What do you think if we made the following works: sage: w = Word(P, datatype=polynom) sage: P == R(w) True Well, I thought that the datatype input above meant in which kind of data to store the word and not really the way to understand the input P. Does the following is satisfaisant? sage: R = GF(2)['x'] sage: P = R('x^5 + x^3 + x + 1') sage: Word(P, datatype='list') word: 110101 sage: Word(P, datatype='iter') word: 110101 sage: l = list(P) sage: Word(l) word: 110101 My second question is what about infinite series ? If S is a infinite series, Word(S, datatype='callable') should work as long as S is callable and Word(S, datatype='iter') as long as S is iterable. Sébastien --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sage-combinat-devel group. To post to this group, send email to sage-combinat-devel@googlegroups.com To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en -~--~~~~--~~--~--~---