Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 976 Categories, Downloaded 29.614.178 Times

# Math::Group::Thompson 0.96

Date Added: January 18, 2010  |  Visits: 1.852
 Report Broken Link Printer Friendly Version Product Homepage Download (73 downloads)

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 F F = < A,B | [AB^(-1),A^(-1)BA] = [AB^(-1),A^(-2)BA^2] = e > where A,B are formal symbols, [x,y] is the usual commutator and e is the identity element of F. [x,y] = xyx^(-1)y^(-1) This means that for every g in F, g can be written as word g = a_{1}a_{2} ... a_{n} where all the a_{i} are A,B,A^(-1) or B^(-1) for all i <= n. Internally, Math::Group::Thompson representates A,B,A^(-1),B^(-1) as A,B,C,D respectively. Considering the set S = { A,B,A^(-1),B^(-1) } as a generator set for F. One can define the length function L, as L(g) = min{ n | g can be written as a word with n elements of S } We have to define L(e) = 0 With this definition, the ball of radius n of F, can be defined as B(n) = { g in F | L(g) <= n } So, what this module do is to calculate #B(n) or #(gB(n) - B(n)), where g in F, depending on what you need. Note that by definition of S, B(n+1) = (AB(n)-B(n))U(BB(n)-B(n))U(CB(n)-B(n))U(DB(n)-B(n)) U B(n) so #B(n+1) = #(AB(n)-B(n))+#(BB(n)-B(n))+#(CB(n)-B(n))+#(DB(n)-B(n))+#B(n) Also, this module stores some special relations derived from [AB^(-1),A^(-1)BA] = [AB^(-1),A^(-2)BA^2] = e that must me avoided when counting the elements of B(n). For example, from [AB^(-1),A^(-1)BA] = e it can be derived the relations A^(-1)BAA = AB^(-1)A^(-1)BAB A^(-1)BAAB^(-1) = AB^(-1)A^(-1)BA among many other relations. The first relation show us that if we have a word g that contains AB^(-1)A^(-1)BAB it MUST NOT be counted as an element of B(n) for some n, because the word AB^(-1)A^(-1)BAB can be reduced to A^(-1)BAA and this implies that g was already counted as an element of B(n). Second relation tell us that if we have a word w that contains A^(-1)BAAB^(-1) it MUST NOT be counted as an element of B(n) because w was already counted (or will be counted) as and element of B(n). Resuming, relation [AB^(-1),A^(-1)BA] = 1, allow us to derive relations between words with length 4 and length 6, and between words of length 5. And the second relation [AB^(-1),A^(-2)BA^2] = 1 can be used to derive relations between words with length 6 and words with length 8, and between words of length 7. METHODS new Creates the Thompson object. Usage: my \$F = new->Math::Group::Thompson( VERBOSE => \$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: Its 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))} = cardBn This 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 set gB(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) ). reset Resets the counter used on cardBn method, set the FIRST_ELEMENT property at , and the FIRST_CALL proporty to 1. Usage: \$F->reset; multiply Multiplication 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. rotate This 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 inverse This method receives a word in F and returns its inverse. Usage: \$w = ABC; \$W = \$self->inverse(\$w); # \$W == ADC divide This 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_inv This method return the hash of inverse relations between the generators elements of F. note This 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: No special requirements Platforms: Linux Keyword: Libraries,  Mathgroupthompson,  Oo,  Programming,  Radius N,  Thompson Group,  Word Users rating: 0/10

 License: Freeware Size: 6.14 KB
USER REVIEWS
 More Reviews or Write Review
MATH::GROUP::THOMPSON RELATED
 Lifestyle  -  De N Hair 1.0.0.0 A salon brand synonymous with cutting edge hair technology and innovation, De N Hair group of salons in Singapore incorporate the latest Asia-influenced international styling, perming and colouring techniques to deliver beautiful, versatile... 1024 KB Programming  -  devkitPro 1.5.7 This project is for homebrew console development tools based on the gnu compiler collection with additional tools and libraries to aid programming each supported console. The windows variants are built with MinGW. 444.26 KB Miscellaneous  -  Group a list into sequential n-tuples 1.0 Group a list into sequential n-tuples function returns a list of n-tuples from a single "flat" list. Libraries  -  GODI 20060118 GODI library provides an advanced programming environment for the Objective Caml (OCaml) language. From INRIA (who created OCaml) you can get the OCaml compiler and runtime system, but this is usually not enough to develop applications. You also... 1.5 MB Development Tools  -  What's New for Object-Oriented Programming in MATLAB Webinar - Code Examples 1.0 These are the code examples used in the "What's New for Object-Oriented Programming in MATLABdlTÂ«" webinar, which described the new object oriented features in Release 2008a.To use the code, add the top folder to your path. See the test* M-files... 112.64 KB Mathematics  -  PTC Mathcad Express 3.1 PTC Mathcad Express is free-for-life engineering math software. You get unlimited use of the most popular capabilities in PTC Mathcad - the most powerful technical calculation software available. Easily solve, document, share and reuse vital... 1.06 GB Development Tools  -  Chess with "Greedy Edi" 1.0 Play chess against "Greedy Edi". Get started...1. extract zip file2. change current directory to the new "chess" directory3. Run "Chess" (optionally for text figures run Chess(2)) Some help ...a) How to move the chess figures ... 1. Position the... 532.48 KB Network & Internet  -  Simpy Tools 1.1 SimpyTools is a collection of various software for using and enhancing the simpy.com social bookmarking service. Simpy Tools includes libraries in various programming languages for using the REST API of simpy.com. It also includes a Firefox... 17.41 KB Development Editors  -  .NET Active Directory Wrapper Lite 1.0 .Net Active Directory Lite is a free package of two Visual Studio solutions (.sln) that includes all the source code to calling multiple Active Directory function and a complete sample application that demonstrates the functionality of the... 186 KB Programming  -  Eclipse PLaSM plugin 1.0.4.1 This is a PLaSM Plugin for Eclipse. PLaSM is a geometric extension of FL, a functional programming language by Backus' group at IBM research, that allows for rapid development of curves, surfaces and solids. 153.16 KB
NEW DOWNLOADS IN PROGRAMMING, LIBRARIES
 Programming  -  FLEX-db Digital Asset Manager 3.0.9 FLEX-db - an enterprise Digital Asset Manager (DAM). It ingests and links metadata with files, creates thumbnails, and processes files using business rules. FLEX-db has a JSP client, Java app server for file input and output and an EJB metadata... 21.57 MB Programming  -  Libicom 0.9.0 The libicom library is a character based dynamicly linked library for Linux. It is used to remotely control the Icom IC-R8500 wide band receiver via an RS232 link. All call and return parameters to the control functions are character string based.... 20.48 KB Programming  -  dotdesktop 0.3 Dotdesktop library provides ability to parse desktop entry file and access the information in a convenient way. Desktop entry file format is defined by freedesktop.org, it is used to describe information about an application such as the name and... 327.68 KB Programming  -  Cedalion for Linux 0.2.6 Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations. 471.04 KB Programming  -  libyasl 0.2 Libyasl is a C++ class library to easily realize TCP/UDP/Multicast clientsand servers in IPv4 and IPv6 environments under GNU/Linux systems. 143.36 KB Libraries  -  wolfSSL 3.11.0 The wolfSSL embedded SSL/TLS library is a lightweight SSL library written in ANSI standard C and targeted for embedded and RTOS environments - primarily because of its small size, speed, and feature set. It is commonly used in standard operating... 2.73 MB Libraries  -  EuGTK 4.8.9 Makes it easy to develop good- looking, fast, cross-platform programs that run on Linux, OS X, and Windows. Euphoria is a very fast interpreted/compiled language with straight-forward syntax. EuGTK allows programming in a clean, object-oriented... 10.68 MB Libraries  -  Linux User Group Library Manager 1.0 The LUG Library Manager is a project to help Linux User Groups start their own library. A LUG library is helpful to the community at large because it increases access to information, and gives everyone the opportunity to become more knowledgeable. 5.35 KB Libraries  -  Module::MakefilePL::Parse 0.12 Module::MakefilePL::Parse is a Perl module to parse required modules from Makefile.PL. SYNOPSIS use Module::MakefilePL::Parse; open \$fh, Makefile.PL; \$parser = Module::MakefilePL::Parse->new( join("", ) ); \$info = \$parser->required;... 8.19 KB Libraries  -  sqlpp 0.06 sqlpp Perl package is a SQL preprocessor. sqlpp is a conventional cpp-alike preprocessor taught to understand SQL ( PgSQL, in particular) syntax specificities. In addition to the standard #define/#ifdef/#else/#endif cohort, provides also... 10.24 KB