Changes between Initial Version and Version 1 of Ticket #13072


Ignore:
Timestamp:
07/06/12 16:00:45 (8 years ago)
Author:
andrew.mathas
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #13072

    • Property Status changed from new to needs_review
  • Ticket #13072 – Description

    initial v1  
    11This patch implements the following classes:
    2 * PartitionTuple          - returns a tuple of partitions
    3 * PartitionTuples         - factory class for all tuples of partitions
    4 * PartitionTuples_level   - class of all tuples of partition of a fixed level
    5 * PartitionTuples_n       - class of all tuples of partition of a fixed size
    6 * PartitionTuples_level_n - class of all tuples of partition of a fixed level and size. The first three of these are infinite enumerated classes whereas the last is finite. They all have iterators.
     2
     3 * PartitionTuple          - returns a tuple of partitions
     4 * PartitionTuples         - factory class for all tuples of partitions
     5 * PartitionTuples_level   - class of all tuples of partition of a fixed level
     6 * PartitionTuples_size       - class of all tuples of partition of a fixed size
     7 * PartitionTuples_level_size - class of all tuples of partition of a fixed level and size. The first three of these are infinite enumerated classes whereas the last is finite. They all have iterators.
    78
    89The idea is to implement a fully function class for PartitionTuples as I currently need this together with a class for tuples of (standard) tableaux (coming soon).
    910
    10 My initial intention was to consider Partitions() as PartitionTuples(), however, I found that this caused some minor issues because constructions like
     11PartitionTuples of level 1 are in natural bijection with Partitions so  when given a 1-tuple of partitions or a partition PartitionTuples() returns the corresponding Partition. This works almost seamlessly, making it possible to almost ignore the distinction between Partitions() and PartitionTuples(). One exception is that the expected behaviour of
     12
    1113{{{
    1214     for component in mu:
    1315          do X
     16
    1417}}}
    15 work differently for l-tuples of partitions when l=1 (partitions) and when l>1. If some one can see a nice way around this please let me know.
     18is different for partitions and partition tuples (in the first case, you expect to loop over the pars of the partition and in the second over the component of the tuple). To get around this both classes now have a components() method so that you can uniformly write
    1619
    17 The patch currently fails some of the category tests called from TestSuite. I think that these failures are all caused by the fact the category is always set to
    18 {{{Category of elements of Tuple of Partitions}}}
    19 whereas the tests expect it to be set to category of the subclasses. There ought to be a simple fix to this but I have found it yet. Improvements welcome!
     20{{{
     21for nu in mu.components():
     22      do X
     23}}}
     24mprovements welcome!
    2025
    2126In terms of implementation, for my use of these objects the `level` is more intrinsic than the size so I have set the syntax for the PartitionTuples classes as
     27
    2228{{{
    2329PartitionTuples(level=l, n=n)
     
    2531where `level` and `n` are both optional named arguments BUT level is specified first. Previously, `n` was given first and `level` second. I think that it makes much more sense this way around, but if people feel really strongly about this I will change it back. Previously, `level` was just called `k`, which is a fairly random variable whereas `level` makes sense in terms of categorification and higher level Fock spaces. (Replacing `n` with `size` would also be sensible but I didn't go there.)
    2632
    27 Finally, in addition to these new classes I have removed a bunch functions which were depreciated years ago. I also added normal_nodes() and good_nodes methods to Partition_class and reinstated the beta_numbers() methods which were removed in the last patch to partition.py (this patch said that beta_numbers and frobenius_coordinates are identical objects, but they are actually different).
    28 
    29 
     33Finally, in addition to these new classes as discussed previously on sage-combinat I have removed a bunch functions which were depreciated years ago. I also added normal_nodes() and good_nodes methods to Partition_class and reinstated the beta_numbers() methods which were removed in the last patch to partition.py (this patch said that beta_numbers and frobenius_coordinates are identical objects, but they are actually different).