Math::Group::Thompson

Math::Group::Thompson module contains OO methods that calculates the cardinality of the ball of radius 'n' of Thompson group F.
Download

Math::Group::Thompson Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Roberto Alamos Moreno
  • Publisher web site:
  • http://search.cpan.org/~ralamosm/Math-Group-Thompson-0.96/lib/Math/Group/Thompson.pm

Math::Group::Thompson Tags


Math::Group::Thompson Description

Math::Group::Thompson module contains OO methods that calculates the cardinality of the ball of radius 'n' of Thompson group F. Math::Group::Thompson Perl module contains OO methods that calculates the cardinality of the ball of radius 'n' of Thompson group F.SYNOPSIS use Math::Group::Thompson; my $F = Math::Group::Thompson->new( VERBOSE => 0 ); my $card = $F->cardBn(3,''); print "#B(3) = $cardn";The Math::Group::Thompson module provides objetct oriented methods that calculates the cardinality of the ball of radius 'n' of Thompson group F.This module uses the presentation of FF = < A,B | = = e >where A,B are formal symbols, is the usual commutator and e is the identity element of F. = xyx^(-1)y^(-1)This means that for every g in F, g can be written as wordg = a_{1}a_{2} ... a_{n}where all the a_{i} are A,B,A^(-1) or B^(-1) for all i $v );Verbose argument tells Math::Group::Thompson whether print every word generated ($v == 1) or not ($v == 0), or store them in a file, where $v is the name of the file (obviously different to 0 or 1). If the verbose file exists it is replaced, so you have to check for its integrity. NOTE: It's not recommend to store the words on a file because for very small values of n, #B(n) or #gB(n)-B(n) are very very large. For example for n = 19, #B(n) ~ 3^n = 1162261467 ~ 1.1 Giga, but the space ocupped by the file will be (in bytes): #B(1) + sum(i=2 to 19){i*(#B(i) - #B(i-1))} = cardBnThis method calculates #B(n) or #(gB(n) - B(n)) depending on if the argument passed to the first call of cardBn is '' or not.Usage: my $c = $F->cardBn($radius,$g);where$radius is an integer number >= 0 and $g is an element of F (word written with A,B,C or D).If the first time cardBn is called $g is not equal to '', then cardBn returns the cardinality of the setgB(n) - B(n) = { w in F | w in gB(n) and w not in B(n) }If the firs time cardBn is callen $g is equal to '', then cardBn returns #B(n).This algorithm runs on exponential time because F is of exponential growth (more "exactly", this algorithm is O(3^n) ).resetResets the counter used on cardBn method, set the FIRST_ELEMENT property at '', and the FIRST_CALL proporty to 1.Usage: $F->reset;multiplyMultiplication between two words of F. This method considers the inverse relations stored in the attribute INV.Usage: my $mul = $F->multiply($g,$w);where $g and $w are elements of F, and $mul is the result of $g$w.rotateThis module receives as argument a word in F and puts the last letter on word in its first place.Usage: $w = 'ABC'; $W = $self->rotate($w); # $W is now equal to 'CBA'inverseThis method receives a word in F and returns its inverse.Usage: $w = 'ABC'; $W = $self->inverse($w); # $W == 'ADC'divideThis method receives a word in F and returns a 2-dimensional array where the first element is the first half of the word, and the second is the inverse of the second half of the word.Usage: $w = 'AABC'; ($w1,$w2) = $self->divide($w); # Now $w1 == 'AA' and $w2 == 'AD'get_invThis method return the hash of inverse relations between the generators elements of F.noteThis method prints in STDERR the string received or puts it on the correspondent file.Usage: $F->note('AA'); # Print AA."n" or store it on a file.Requirements:· Perl Requirements: · Perl


Math::Group::Thompson Related Software