(I am not subscribed to sage anymore...)

"Nicolas M. Thiery" <[EMAIL PROTECTED]> writes:

> In MuPAD-Combinat, we have one Dom::SymmetricGroup(n) for each size n. So, we
> decided to put the functions on permutations in a separate domain (e.g. class
> in MuPAD parlance) combinat::permutations, because there are a lot of
> functions that apply to permutations of varying size (e.g. take a permutation
> of size m, one of size n, and return a permutation of size n+m). Also, in
> many cases, we manipulate permutations of many different size, and it would
> not make sense to instantiate the domain Dom::SymmetricGroup(n) for each of
> those sizes.  Of course, there are "back links" in Dom::SymmetricGroup(n),
> albeit not done automatically yet. Ideally, there probably should be some
> hierarchy of categories (abstract class) containing the functions for
> manipulating permutations, and various domains for the different use cases
> (permutations of a fixed size, with group structure, permutations of varying
> size possibly with other structures, ...).

In Axiom, there is one domain PermutationGroup(S: SetCategory), whose
"elements" are all the subgroups of the permutations of S.

In Aldor it goes witout saying (not in SPAD currently though) that these
elements are again domains, of type Group.

I guess, one really should provide means to specialize to Coxeter groups.

(I just wasted a day or so to implement the things I need for the case of B_n.)

In Axiom, domain instantiation should be very cheap:

(9) -> l := test 5000;

                                                               Type: List Any
                           Time: 0.81 (EV) + 0.03 (OT) + 0.07 (GC) = 0.91 sec
(10) -> l.400

   (10)  1
                                                        Type: IntegerMod 4601

(Note that the type is correct: IntegerMod 4601)
       
Martin

-- code: save to "test.spad", compile in axiom with ")co test.spad"
-- did not take time to write clean code.
-- In Aldor, Any becomes unnecessary, fortunately.
)abbrev package TESTG TestGeneration
TestGeneration: Exports == Implementation where

    Exports == with

      test: PositiveInteger -> List Any

    Implementation == add

      test n ==
          l: List Any := []
          for i in 1..n repeat
              Z := IntegerMod(i::PositiveInteger)
              any1 := AnyFunctions1 Z
              l := cons(coerce((i+1)::Z)$any1, l)
          l





-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Aldor-combinat-devel mailing list
Aldor-combinat-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/aldor-combinat-devel

Reply via email to