Math::Expr parses mathematical expressions into a tree structure.
The expressions may contain integers, real numbers, alphanumeric
variable names, alphanumeric function names and most other characters
might be used as operators. The operators can consist of multiple
characters. The only limitation is that a variable or function
name may not start on a digit, and not all chars are accepted in
operation names.
p5-Math-MPC is a module wraps the MPC library functions.
The MPC library is a C library for multiple-precision complex number
computations with exact rounding. It is based on the MPFR C library
which, in turn, is based on the GMP C library.
p5-Math-MPFR is a module wraps the MPFR library functions.
The MPFR library is a C library for multiple-precision floating-point
computations with exact rounding (also called correct rounding). It
is based on the GMP multiple-precision C library.
The Math::FFT module provides an interface to various Fast Fourier
Transform (FFT) routines of the C routine of fft4g.c; The one-dimensional
data sets, of size 2^n, are assumed to be sampled at a constant
rate.
The FFT methods available are
- cdft: Complex Discrete Fourier Transform
- rdft: Real Discrete Fourier Transform
- ddct: Discrete Cosine Transform
- ddst: Discrete Sine Transform
- dfct: Cosine Transform of RDFT (Real Symmetric DFT)
- dfst: Sine Transform of RDFT (Real Symmetric DFT)
as well as their inverses.
The C code for the FFT routines of fft4g.c is copyrighted 1996-99
by Takuya OOURA. The file arrays.c included here to handle passing
arrays to and from C comes from the PGPLOT module of Karl Glazebrook
<kgb@aaoepp.aao.gov.au>. The perl interface of the Math::FTT module
is Copyright 2000 by Randy Kobes <randy@theoryx5.uwinnipeg.ca>,
and may be distributed under the same terms as Perl itself.
p5-MatrixReal is port of the perl module Math::MatrixReal, implementing a
matrix of Reals.
Math::MatrixReal needs support for operator overloading to support
operations on matrixes as though they were just another basic perl type.
In addition to the basics (+, -, *) also supported are:
matrix norm, matrix transposition, matrix inverse, determinant of a
matrix, order and numerical condition of a matrix, scalar product of
vectors, vector product of vectors, vector length, projection of row and
column vectors, a comfortable way for reading in a matrix from a file, the
keyboard or your code, solving linear equations, etc.
It also has an implementation of Kleene's algorithm for finding minimal
costs for paths in a graph.
Math::ConvexHull is a simple module that calculates convex hulls from a
set of points in 2D space. It is a straightforward implementation of the
algorithm known as Graham's scan which, with complexity of O(n*log(n)),
is the fastest known method of finding the convex hull of an arbitrary
set of points. There are some methods of eliminating points that cannot
be part of the convex hull. These may or may not be implemented in a
future version.
This is a package for doing integer arithmetic while using a different
base representation than normal. In base n arithmetic you have n
symbols which have a representation. I was going to call them
"glyphs", but being text strings they are not really. On Tye McQueen's
whimsical suggestion I settled on the name Math::Fleximal, the set of
text representations is called a "flex", and the representation of
individual digits are the "flecks". These names are somewhat
unofficial...
This allows you to do basic arithmetic using whatever digits you want,
and to convert from one to another.
The Math::Units module converts a numeric value in one unit of measurement
to some other unit. The units must be compatible, i.e. length can not be
converted to volume. If a conversion can not be made an exception is
thrown.
A combination chaining and reduction algorithm is used to perform the most
direct unit conversion possible. Units may be written in several different
styles. An abbreviation table is used to convert from common long-form
unit names to the (more or less) standard abbreviations that the units
module uses internally. All multiplicative unit conversions are cached so
that future conversions can be performed very quickly.
Too many units, prefixes and abbreviations are supported to list here. See
the source code for a complete listing.
Math::Geometry::Voronoi computes Voronoi diagrams from a set of
input points.
This module adds numeric error (or uncertainty) support to the
Math::Symbolic parser. It does so by extending the parser grammar of the
Math::Symbolic module (that is, the one stored in $Math::Symbolic::Parser)
with certain special functions that create constants as Number::WithError
objects. (Math::Symbolic::Variable objects have been able to contain
objects since the very beginning.)