Hello,

I should probably put that stuff into trunk, but before it gets 
accidentially removed from my hard disk I want to archive it via the 
mailing list.

With it one can easily print the series and structures without invoking 
Axiom.

Compile with

trunk/combinat/src>aldor -fx -Y . -i ../include/ -l combinatd -lalgebrad 
-laldord -DDEBUG speciestest.as


Ralf

---BEGIN speciestest.as
#include "combinat"
#include "aldorio"
macro {
         V == CycleIndexVariable;
         NonNegativeMachineInteger == MachineInteger;
         T == SparseIndexedPowerProduct(V, NonNegativeMachineInteger);
         P == SparseDistributedPolynomial(Q, V, T);
         PrimePowerProduct == SparseIndexedPowerProduct(I, I);
     I == MachineInteger;
     Z == Integer;
     Q == Fraction Integer;

     E == SetSpecies;
}
t(S: (L: LabelType)->CombinatorialSpecies L): () == {
     import from I, Z, P, S Z, Trace, List Z;
     stdout << "=====================" << newline;
     stdout << name(S Z) << newline;
     stdout << "=====================" << newline;
     for n: I in 0..5 repeat {
         stdout << n << "---------------------------------------";
         stdout << newline;
         import from ExponentialGeneratingSeries;
         import from OrdinaryGeneratingSeries;
         egs := count(generatingSeries$S(Z), n);
         ogs := count(isomorphismTypeGeneratingSeries$S(Z), n);
         stdout << "-- count(egs, ogs)(" << n << ") = (";
         stdout << egs << ", " << ogs << ")" << newline;
         e: E(Z) := set [z for z: Z in 1..(n::Z)];

         for k: I in 1.. for s in structures(e)$S(Z) repeat {
             stdout << "structure " << n << "-" << k << ": ";
             stdout << s << newline;
         }
         stdout << newline;
         for k: I in 1.. for s in isomorphismTypes(e)$S(Z) repeat {
             stdout << "isotype   " << n << "-" << k << ": ";
             stdout << s << newline;
         }
         stdout << newline << newline;
     }
}

main(): () == {
         macro {
         CS == CombinatorialSpecies;
                 X == SingletonSpecies;
                 + == Plus;
                 * == Times;
         N == NonEmpty;
         ** == Compose;
         }
     --t(E);
     --t(Subset);
     --t(X * X);
     t(E ** N(E));
     t(N(E) ** N(E));
     t(Partition);
     --B(L: LabelType): CS L == Plus(X, Times(B,B))(L) add;
     --t(B);
     --t(Compose(B, N E));
}
main();
---END speciestest.as

-------------------------------------------------------------------------
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