On 29/05/2018 21:45, 'Martin R' via sage-devel wrote:
Actually, I wonder whether it wouldn't be better to change the internal
representation of set partitions to restricted growth words (together with
a fixed ordering of the base set).
On the one hand, very likely everything becomes much faster.
Your remark is relatively orthogonal to the current thread. Though I
agree that using sets (Python "set" or Sage "Set") as a datastructure
for set partitions is completely naive and inefficient.
Using "restricted growth words" is good for
- checking whether the element i belongs to the atom j of the
partition (and by extension ask wheter i1 and i2 belong to the
same atom)
but bad for
- listing elements of atom j
I believe that the simplest would be to mix two "dual" representations
- a restricted growth word (ie array of size n)
- the list of the atoms (can be encoded in two arrays of size n)
On the other hand, this may make the code slightly more difficult to read
for people not familiar with restricted growth words (including myself).
This is not a problem if:
* it is justified (performance, etc)
* it is well documented
The question is more:
* where and why do you need faster code?
Best
Vincent
--
You received this message because you are subscribed to the Google Groups
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.