Steenrod Tcl library
Status: pre-release
This program is a library that can be loaded into a Tcl program.
That Tcl program then becomes able to deal efficiently
with Steenrod operations. Here's a sample (and simple) Tcl-session using the library:
# load the library
package require Steenrod
namespace import steenrod::*
# compute Sq(4) * (Sq(6) + Sq(0,2)) at p=2 and print the result
set res [poly steenmult {{1 0 4 0}} {{1 0 6 0} {1 0 {0 2} 0}} 2]
puts "product = $res"
# compute the degree of Q(0,1) P(1,0,3) at prime 5
puts "degree = [mono degree 5 {0 2 {1 0 3} 0}]"
# show basis of reduced Steenrod algebra for p=7, dim=192
enumerator e -prime 7 -genlist {{0 0 0 0}} -ideg 192
puts "basis = [e basis]" |
The output would be
product = {1 0 {0 1 1} 0} {1 0 {7 1} 0}
degree = 761
basis = {1 0 {0 2} 0} {1 0 {8 1} 0} {1 0 16 0} |
The library has been succesfully tested on Linux, Solaris and Windows.
The current version 0.7631 still counts as a pre-release: while
most planned features are already there
(and everything that is there has been properly tested), the package
is still incomplete; in particular, the documentation still
needs to be improved. The first officially released version will eventually
be called 1.0.
The package also contains a little resolver program
as a proof-of-concept demo application.
If you start it from the demo
subdirectory with the command line
tclkit ./resolver.tcl -prime 3 -algebra '0 -1 {9 9 9 9 9 9} 0' -maxdim 80 -maxs 25 |
you should see something like this:
Screenshot of the included demo resolver
Essentially the same resolver will also be used in the
yacop project.