
=head1 README: Math::Algebra::Symbols

Symbolic Algebra in Pure Perl


This package supplies a set of functions and operators to manipulate
Perl expressions algebraically:

Example symbols.pl

 #!perl -w -I..
 #______________________________________________________________________
 # Symbolic algebra.
 # Perl License.
 # PhilipRBrenan@yahoo.com, 2004.
 #______________________________________________________________________
 
 use Math::Algebra::Symbols hyper=>1;
 use Test::Simple tests=>5;
 
 ($n, $x, $y) = symbols(qw(n x y));
 
 $a     += ($x**8 - 1)/($x-1);
 $b     +=  sin($x)**2 + cos($x)**2; 
 $c     += (sin($n*$x) + cos($n*$x))->d->d->d->d / (sin($n*$x)+cos($n*$x));
 $d      =  tanh($x+$y) == (tanh($x)+tanh($y))/(1+tanh($x)*tanh($y));
 ($e,$f) =  @{($x**2 eq 5*$x-6) > $x};
 
 print "$a\n$b\n$c\n$d\n$e,$f\n";
 
 ok("$a"    eq '$x+$x**2+$x**3+$x**4+$x**5+$x**6+$x**7+1');
 ok("$b"    eq '1'); 
 ok("$c"    eq '$n**4'); 
 ok("$d"    eq '1'); 
 ok("$e,$f" eq '2,3');
 


This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself. 

=head1 INSTALL

This is alpha code. It is written in pure Perl. It uses the standard
Perl install mechanism.

Download from CPAN, untar and:

  perl Makefile.PL
  make
  make test
  make install

If you are on Windows, use nmake, available at:

http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe

Following the excellent work done by Steffen Müller (CPAN Author:
SMUELLER), I believe that we should try to capture all known Mathematics
symbolically in Perl. Indeed, can you say that you know any Mathematics
at all if you cannot explain it in Pure Perl?

For bug reports or suggestions please send email to:
philiprbrenan@yahoo.com

=head1 TO DO

Help with this project would be appreciated:

Allow substitution and solution for simple expressions like miles/gallon.

Recognize sin, cos, sinh, cosh etc. in expressions involving exp.

Sigma,Product

Taylor series

Integrals

Fourier

Laplace

Groups

Sets

Graphing using Tk.

normalizeSqrts(), see t/polynomial.t

=cut
