# extended_math library

Library that add functionality of all maths sections that don't exist in `dart:math`

At the moment library have 4 sections:

``````1. General mathematics
2. Complex analysis
3. Discrete mathematics
4. Applied mathematics
``````

Each section don't have full implementation yet. See dartdoc for which functionality are implemented.

Sections are created according to Mathematics Subject Classification.

## Classes

CentralTendency
Central tendency (or measure of central tendency) is a central or typical value for a probability distribution. It may also be called a center or location of the distribution. Colloquially, measures of central tendency are often called averages
Complex
Defines type for number i of complex analysis
CubicEquation
Class for work with cubic equations
DiagonalMatrix
Class for work with numeric diagonal matrix
Dispersion
Class that contains methods from theory of probability distributions
Double
Class that provide type in equivalence of Dart's `double` [...]
EquationBase
Class defining methods for equation expressions
Integer
Class that provide type in equivalence of Dart's `int` [...]
Matrix
Class for work with numeric matrix
MutableRectangle<T extends num>
A class for representing two-dimensional axis-aligned rectangles with mutable properties.
NewtonsMethod
Newton's method, also known as the Newton–Raphson method, named after Isaac Newton and Joseph Raphson, is a root-finding algorithm which produces successively better approximations to the roots (or zeroes) of a real-valued function.
Number
Class that provide type in equivalence of Dart's `num` [...]
NumbersGenerator
Generator of random numbers [...]
Percentile
A percentile (or a centile) is a measure used in statistics indicating the value below which a given percentage of observations in a group of observations falls
Point<T extends num>
A utility class for representing two-dimensional positions.
Class for work with quadratic equations
Quantile
Class that cut points dividing the range of a probability distribution into continuous intervals with equal probabilities, or dividing the observations in a sample in the same way
Quartile
A quartile is a type of quantile (4-sized Quantile)
Random
A generator of random bool, int, or double values. [...]
Rectangle<T extends num>
A class for representing two-dimensional rectangles whose properties are immutable.
SecantMethod
Root-finding algorithm that uses a succession of roots of secant lines to better approximate a root of a function. [...]
ShapeOfProbabilityDistribution
Shape of a probability distribution arises in questions of finding an appropriate distribution to use to model the statistical properties of a population, given a sample from that population. The shape of a distribution may be considered either descriptively, using terms such as `J-shaped`, or numerically, using quantitative measures such as skewness and kurtosis.
SquareMatrix
Class for work with numeric square matrix
Tensor3
Class for work with 3 dimensional tensor
Tensor4
Class for work with 4 dimensional tensor
TensorBase
Base class for tensors
UniformDistribution
Class that represent methods of continuous uniform distribution
Vector
Class for work with vectors

## Constants

e → const double
Base of the natural logarithms. [...]
`2.718281828459045`
ln2 → const double
Natural logarithm of 2. [...]
`0.6931471805599453`
ln10 → const double
Natural logarithm of 10. [...]
`2.302585092994046`
log2e → const double
Base-2 logarithm of e.
`1.4426950408889634`
log10e → const double
Base-10 logarithm of e.
`0.4342944819032518`
pi → const double
The PI constant.
`3.1415926535897932`
sqrt1_2 → const double
Square root of 1/2.
`0.7071067811865476`
sqrt2 → const double
Square root of 2.
`1.4142135623730951`

## Functions

acos(num x) → double
Converts `x` to a `double` and returns its arc cosine in radians. [...]
asin(num x) → double
Converts `x` to a `double` and returns its arc sine in radians. [...]
atan(num x) → double
Converts `x` to a `double` and returns its arc tangent in radians. [...]
atan2(num a, num b) → double
A variant of atan. [...]
Converts `radians` to a `double` and returns the cosine of the value. [...]
exp(num x) → double
Converts `x` to a `double` and returns the natural exponent, e, to the power `x`. [...]
hypot(num x, num y) → num
Computes `sqrt(x^2 + y^2)` without under/overflow
log(num x) → double
Converts `x` to a `double` and returns the natural logarithm of the value. [...]
max<T extends num>(T a, T b) → T
Returns the larger of two numbers. [...]
min<T extends num>(T a, T b) → T
Returns the lesser of two numbers. [...]
pow(num x, num exponent) → num
Returns `x` to the power of `exponent`. [...]
Converts `radians` to a `double` and returns the sine of the value. [...]
sqrt(num x) → double
Converts `x` to a `double` and returns the positive square root of the value. [...]
Converts `radians` to a `double` and returns the tangent of the value. [...]

## Exceptions / Errors

DivisionByZeroException
An exception that trows when performing division by zero
EquationException
Exception that throws while perform improper elementary operations
MatrixException
An exception that trows when performing improper matrix operations.
MeanException
An exception that trows when performing unaccepted operation or operation under unaccepted values
QuantileException
Exception that is thrown when performing unaccepted operations with Quantile and its derivates
TensorException
An exception that trows when performing improper tensor operations
VectorException
An exception that trows when performing improper vector operations