Words Sprint (FrancoSaliola, Sébastien Labbé, Vincent Delecroix)
- New implementation for words:
new design of the abstract words (here : SemanticOfWords)
- faster [some caching will be implemented]
- space efficient
- special class for words over an alphabet of at most two letters (each letter takes one bit)
[DONE: Franco added two new classes for caching for words from iterators and functions; caching can be turned off through WordOptions]: consider using Streams and (Lazy)Familys here. [Streams doesn't exactly do what we need, but the ideas are interesting (caching)]
- discussion about the content-datastructure-as-subobject (anti?)design pattern
[DONE: Franco implemented any CombinatorialClass as an alphabet] : allow for words over arbitrary alphabets? (example, the alphabet of the elements of a group)
- New classes:
Sebastien, Vincent: Language
Vincent: FixedPointOfMorphism (things like the language, iterator with logarithmic storage, complexity, ..., can be computed).
- Lyndon word class
Dyck Word, discussions about getting DyckWord to inherit from Language, comparisons of efficiency.
- bi-infinite words, or more generally, words indexed by objects other than integers
- bi-infinite alphabets (like integers)
- New words:
[DONE: Sebastien] Generalized Thue-Morse words to words.[TAB]
- [needs fixing] Add Random Word (combine arguments m and alphabet)
- fix random_element for Words
Random Testing (how do we do this?) See : http://www.sagemath.org/doc/prog/node14.html
- Geometrization:
Vincent, Sebasiten, Franco: WordMorphism, following the work of G. Rauzy, A. Siegel, P. Arnoux, ...
Sebastien: Word Paths, via words as paths in a lattice
- Miscellaneous:
- add notes about words library
[DONE: Sebastien's patch is in the s-combinat tree] trac #4954: Words_over_Alphabet should check the type of input alphabet (related to allowing CombinatorialClass as alphabets)
- finish and post words_new_fct_sl.patch to trac #5037
[DONE: Franco implemented an alphabet of integers, ordered naturally] discussions regarding the trac #5002
look through the algorithms for finite words, and identify the ones that need improvement (some are really slow, like is_subword_of)
WordMorphism, inherits from SageObject and it should be a more general Morphism class.