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::Utils provides ueful mathematical functions not in Perl.
The Math::VectorReal package defines a 3D mathematical "vector",
in a way that is compatible with the previous CPAN module
Math::MatrixReal. However it provides a more vector oriented set
of mathematical functions and overload operators, to the MatrixReal
package. For example the normal perl string functions "x" and "."
have been overloaded to allow vector cross and dot product
operations. Vector math formula thus looks like vector math formula
in perl programs using this package.
Number::Uncertainty provides an object-orientated uncertainty object. It stores
information about a value and its error bounds.
This class is a container class for numbers with a number of associated
symmetric and asymmetric errors. It overloads practically all common
arithmetic operations and trigonometric functions to propagate the errors.
It can do proper scientific rounding (as explained in more detail below in
the documentation of the significant_digit() method).
You can use Math::BigFloat objects as the internal representation of
numbers in order to support arbitrary precision calculations.
Errors are propagated using Gaussian error propagation.
With a notable exception, the test suite covers way over ninety percent of
the code. The remaining holes are mostly difficult-to-test corner cases
and sanity tests. The comparison routines are the exception for which
there will be more extensive tests in a future release.
A Perl package providing the functionality to convert between
Arabic and Roman numerals.
Carve is a C++ library designed to perform boolean operations between two
arbitrary polygonal meshes. The standard union and intersection operations are
supported, as are symmetric and asymmetric difference. It is also possible to
implement custom operations using Carve, allowing results to be formed from any
combination of inputs.
Carve supports a variety of inputs, including both closed and open surfaces,
faces with arbitrary edge counts and datasets with multiple disjoint,
embedded or touching surfaces. Carve can also interpolate arbitrary
values across faces, meaning that CSG operations need not discard colour,
texture coordinates or other data.
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.
This module parses range definitions and returns
an array of individual numbers.
Set::Partition takes a list or hash of elements and a list numbers that
represent the sizes of the partitions into which the list of elements
should be arranged.
The resulting object can then be used as an iterator which returns a
reference to an array of lists, that represents the original list arranged
according to the given partitioning. All possible arrangements are
returned, and the object returns undef when the entire combination space
has been exhausted.