|  Download MathPHP Change Logv2.7.0 - 2022-12-31Improvements
Improved algorithm for `regularizedIncompleteBeta`: Addresses issue 458
Issue 456: Improved PHPDoc blocks: Changed "number" to "int|float"
Added PHP 8.2 for CI test target
 v2.6.0 - 2022-04-10Improvements
`Average::truncatedMean` behavior at 50% trim made consistent
PHP 8.1 compatibility improvements
 Backwards Incompatible ChangesAverage::truncatedMeanthrows exception if trim percent greater than 50% rather than error or unpredictable results.
v2.5.0 - 2021-11-21New Features
Special function `logbeta`
Special function `logGamma`
Special function `logGammaCorr`
Special function `stirlingError`
 Improvements
Improvements in StudentT continuous distribution
Improvements in special function `gamma`
Improvements in special function `beta`
 Bug Fixes
Issue 393 (regularizedIncompleteBeta NAN)
Issue 429 (Linear regression CI division by zero)
 v2.4.0 - 2021-07-27New Features
Complex Exponential (`exp`)
Complex Exponentiation (`pow`)
Zipf's Law Discrete Distribution
Generalized harmonic non-integer sequence
 Improvements
Fixed Complex `polarForm` to compute the right values
Fixed `hyperharnomic` non-integer sequence. Previously was computing the wrong thing
Fixed how `ArbitraryInterger` handles `pow` of negative exponents
 Backwards Incompatible Changes
Complex `polarForm` now returns an array rather than a Complex number, as the Complex return was incorrect
Interface to `hyperharmonic` non-integer sequence changed due to previous implementation being incorrect
 v2.3.0 - 2021-07-14New Features
Matrix SVD (Singular Value Decomposition)
Polynomial companion matrix
 v2.2.0 - 2021-07-11New Features
PLS (Partial Least Squares Regression)
 Improvements
Add custom `__debugInfo` to `NumericMatrix`
 v2.1.0 - 2021-07-07New Featuresv2.0.0 - 2021-05-09New Features
Matrix Improvements
* `walk` method to map a function to all values without mutation or returning a value
* `MatrixFactory` creates more matrix types
* `MatrixFactory::createNumeric` to create `NumericMatrix` types
* `MatrixFactory::createFromRowVector`
* `MatrixFactory::createFromColumnVector`
* Internal `ObjectMatrix` improvements
  * Add `trace`
  * Add `scalarMultiply`
* Add initial `ComplexMatrix`
Sample data People
 Improvements
Bug fixes
* Issue 414 fixed - PCA/Eigenvalue convergence
* Issue 413 fixed - matrix solve with singular matrix using RREF
 Migration - Upgrading to v2.0 from v1.0
PHP minimum version now 7.2 (was 7.0)
Deprecated code removed (backwards-incompatible change)
* `MathPHP\Statistics\Distance::kullbackLeiblerDivergence` removed (Use `MathPHP\Statistics\Divergence::kullbackLeibler` instead)
* `MathPHP\Statistics\Distance::jensenShannonDivergence` removed (Use `MathPHP\Statistics\Divergence::jensenShannon` instead)
* Matrix Decompositions no longer implement `\ArrayAccess` interface to access decomposition matrixes. Use properties instead.
  * `MathPHP\LinearAlgebra\Decomposition\Cholesky`
    * `$cholesky['L']`, `$cholesky['L?']`, `$cholesky['LT']` removed, use `$cholesky->L`, `$cholesky->L?`, `$cholesky->LT` instead.
  * `MathPHP\LinearAlgebra\Decomposition\Crout`
    * `$crout['L']`, `$crout['U']` removed, use `$crout->L`, `$crout->U` instead.
  * `MathPHP\LinearAlgebra\Decomposition\LU`
    * `$LU['L']`, `LU['U']`, `LU['P']` removed, use `$LU->L`, `$LU->U`, `$LU->P` instead.
  * `MathPHP\LinearAlgebra\Decomposition\QR`
    * `$QR['Q']`, `$QR['R']` removed, use `$QR->Q`, `$QR->R` instead.
Methods renamed (backwards-incompatible change)
* `MathPHP\Statistics\Distance::bhattacharyyaDistance` renamed to `MathPHP\Statistics\Distance::bhattacharyya`
* `MathPHP\Statistics\Distance::hellingerDistance` renamed to `MathPHP\Statistics\Distance::hellinger`
Moved Functionality (backwards-incompatible change)
* `MathPHP\Functions\Polynomial` moved to `MathPHP\Expression\Polynomial`
* `MathPHP\Functions\Piecewise` moved to `MathPHP\Expression\Piecewise`
Matrix internal refactoring
* Note: These changes will not affect any client code as long as matrices were created using `MatrixFactory`.
* `Matrix` is not a base abstract class for all matrix classes to extend
* `Matrix` renamed `NumericMatrix`
* `Matrix` base method `createZeroValue`
  * Use case is various `ObjectMatrix` classes that implement `ObjectArithmetic`
* `RowVector` removed. Use `MatrixFactory::createFromRowVector` instead
* `ColumnVector` removed. Use `MatrixFactory::createFromColumnVector` instead
 v1.11.0 - 2021-05-09Improvements
Bugfix (Issue 413): Matrix solve with singular matrix using RREF
Bugfix (Issue 414): PCA/Eigenvalue convergence
 v1.10.0 - 2020-12-19Improvements
Bugfix (Issue 356): Fix Finance IRR NANs
 v1.9.0 - 2020-12-13New Features
Vector min and max
Arithmetic isqrt (integer square root)
 Improvements
Remove Travis CI (Moved CI to Github Actions in v1.8.0 release)
Rearrange non-code files
 v1.8.0 - 2020-12-11Improvements
Improve permutations algorithm to be more efficient and more numerically stable
Qualify PHP function names with root namespace
Move CI to Github Actions
 v1.7.0 - 2020-11-15New Features
Algebra linear equation of one variable
Rational number inverse
Rational number pow
 Improvements
Improve combinations algorithm to be more efficient and more numerically stable
Internal Matrix class reorganization
 v1.6.0 - 2020-10-22New Features
Special function regularized lower incomplete gamma
Cereal sample data set
 Improvements
Define boundary condition for lower incomplete gamma function
 v1.5.0 - 2020-10-12New Features
Matrix LU solve
Matrix QR solve
 Improvements
Bugfix (Issue 386) Matrix solve improvements
Matrix solve has optional method parameter to force a solve method
Bugfix ArbitraryInteger multiplication sign not taken into account
 v1.4.0 - 2020-10-02New Features
Multivariate Regular Grid Interpolation
Jensen-Shannon Distance
Canberra Distance
Search Sorted
Search ArgMax
Search NanArgMax
Search ArgMin
Search NanArgMin
Search NonZero
 Improvements * Divergence factored out of Distance into new Divergence class Backwards Incompatible Changes * Legacy Distance divergences marked as deprecated (To be removed in v2.0.0) v1.3.0 - 2020-08-24New Features
LinearAlgebra\Vector
* Angle between two vectors
* L¹ distance of two vectors
* L² distance of two vectors
* Minkowski distance of two vectors
Statistics\Distance
* Minkowski distance
* Euclidean distance (L² distance)
* Manhattan distance (Taxicab geometry, L¹ distance, etc.)
* Cosine distance
* Cosine similarity
 v1.2.0 - 2020-07-24New Features
Ranking
* Ordinal ranking
* Standard competition ranking
* Modified competition ranking
* Fractional ranking
 Improvements
(Issue 380) Fixed Spearman's Rho calculation when there are rank ties
 v1.1.0 - 2020-04-19New FeaturesImprovements
Improved matrix multiplication performance using cache-oblivious algorithm optimization
 v1.0.0 - 2020-04-14Initial version 1.0.0 release! v0.62.0 - 2020-04-08Improvementsv0.61.0 - 2020-03-22New Features
Multivariate Hypergeometric distribution
 v0.60.0 - 2020-02-27New Features
Sample Data
- MtCars
- Iris
- ToothGrowth
- PlantGrowth
- UsArrests
 v0.59.0 - 2020-02-19New Features
Add population and sample kurtosis
Changed default kurtosis algorithm to the more common population kurtosis
kurtosis now takes an optional parameter to set the kurtosis type algorithm
 v0.58.0 - 2020-02-06Improvements
Changed default skewness algorithm to the more common sample skewness
skewness now takes an optional parameter to set the skewness type algorithm
Improvements to skewness algorithms
 v0.57.0 - 2020-01-07New Features
Number\Rational basic getters
* getWholePart
* getNumerator
* getDenominator
Set Theory n-ary Cartesian product
 Improvements
Data direction control for Matrix meanDeviation and covarianceMatrix
Algebra factors performance improvement
 v0.56.0 - 2019-12-03New Features
Number Theory
* isDeficientNumber
* isAbundantNumber
* aliquotSum
* radical
* totient
* cototient
* reducedTotient
* mobius
* isSquarefree
* isRefactorableNumber
* isSphenicNumber
* numberOfDivisors
* sumOfDivisors
 Improvements
Optimization of prime factorization algorithm
 v0.55.0 - 2019-11-19New Features
Arbitrary length integers
 Improvementsv0.54.0 - 2019-10-12New Features
Matrix isNilpotent
Matrix isRectangularDiagonal
Matrix mapRows
MathPHP logo
 Improvements
MatrixFactory random matrix custom lower and upper bounds for random number
PSR-12 style compliance
Bugfix: powerIteration random failure - Issue 346
 v0.53.0 - 2019-09-09New Features
Matrix QR decomposition using Householder reflections
Matrix Householder transformation
MatrixFactory random matrix
MatrixFactory givens rotation matrix
Matrix isIdempotent
Matrix Eigenvalue power iteration
Matrix Eigenvalue jacobi method
Arithmetic root (n?? root)
Vector arithmetic multiply and divide
Vector Iterator interface
 Improvements
Internal improvements to Matrix
Matrix decompositions returned as objects
Matrix Cholesky decomposition provides L transpose
 v0.52.0 - 2019-07-11New Features
Grubb's test for statistical outliers
 v0.51.0 - 2019-06-05New Features
Matrix rowSums
Matrix columnSums
Matrix rowMeans
Matrix columnMeans
Matrix isNormal
MatrixFactory diagonal matrix creation method
MatrixFactory vandermonde matrix creation method
 Improvements
Set custom Matrix tolerances
Various internal improvements
 Backwards Incompatible Changes
Remove Matrix sampleMeans (use rowMeans or columnMeans instead)
MatrixFactory create method only works with 2d arrays. 1d arrays no longer work. (use diagonal and vandermonde factory methods instead)
Statistics methods throw exceptions instead of returning null on bad input
Change return type of LagrangePolynomial to Polynomial
 v0.50.0 - 2019-04-22New Features
Matrix isOrthogonal
Matrix isEqual
Harmonic sequence
Hyperharmonic sequence
Map\Single reciprocal
 Improvements
Support methods for almost equal
Matrix getDiagonalElements works for non-square matrices
Use more efficient algorithm in Matrix isSymmetric
Use more efficient algorithm in Matrix isSkewSymmetric
 Backwards Incompatible Changes
Statistics methods throw exceptions instead of returning null on bad input
 v0.49.0 - 2019-02-23New Features
Matrix augmentAbove
Matrix augmentLeft
 Improvements
Object matrix multiplication
 v0.48.0 - 2018-12-15New Features
Matrix submatrix
Mahalanobis distance
Bernoulli distribution mean, median, mode and variance
Binomial distribution mean and variance
Geometric distribution mean, median, mode and variance
Hypergeometric distribution mode and variance
NegativeBinomial (Pascal) distribution CDF, mean, mode and variance
Poisson distribution mean, median, mode and variance
Discrete Uniform distribution variance
 Improvements
Binomial distribution PMF uses more numerically stable multiplication method
Fix potential divide by zero in TheilSen regression
 Backwards Incompatible Changes
Multinomial distribution moved from Discrete to Multivariate namespace
 v0.47.0 - 2018-11-21New Features
Beta distribution median, mode, variance
Cauchy distribution variance
ChiSquared distribution mode, variance
Exponential distribution median, mode, variance
F distribution mode, variance
Gamma distribution median, mode, variance
Laplace distribution mode, variance
Logistic distribution mode, vaiance
LogLogistic distribution median, mode, variance
LogNormal distribution mode, variance
Normal distribution mode, variance
StandardNormal distribution mode, variance
StudentT distribution mode, variance
Uniform distribution median, mode, variance
Weibull distribution median, mode
 Improvements
Normal distribution rand algorithm changed to Box?Muller transform
 v0.46.0 - 2018-10-28New Features
NumberTheory isPerfectNumber
Sequence perfectNumber
 Improvements
Improve README documentation for continuous distributions
Updates to build tools
General improvements
 v0.45.0 - 2018-09-24Improvements
Add Beta distribution inverse quantile function
Improvements to Weibull distribution
Improvements to Cauchy distribution
Improvements to Laplace distribution
Improvements to Logistic distribution
Improvements to LogNormal distribution
Improvements to Normal distribution
Improvements to Pareto distribution
Improvements to Algebra cubic/quartic complex root handling
 v0.44.0 - 2018-08-29Improvements
[[Issue 271]](https://github.com/markrogoyski/math-php/issues/271) Improvements to documentation
[[Issue 269]](https://github.com/markrogoyski/math-php/issues/269) Add closed-form inverse function for Exponential distribution
 v0.43.0 - 2018-05-21New Features
Arithmetic copySign
Matrix negate
Matrix isSkewSymmetric
 v0.42.0 - 2018-05-09New Features
Weighted mean
Weighted sample variance
Weighted covariance
Weighted correlation coefficient
 Improvementsv0.41.0 - 2018-04-23New FeaturesImprovements
Statistics\Average::mode improved to work with non-integer values
Various minor code improvements
 v0.40.0 - 2018-03-22New Features
Simpler interface for Significance ```tTest``` for one and two samples
 Improvements
T test for two samples uses more robust Welch test
Improvements to Normal and Standard Normal continuous distributions
General improvements to continuous distributions
 v0.39.0 - 2018-02-27Improvements
Upgrade unit testing framework to PHPUnit 6
Update unit tests for PHPUnit 6 compatibility
Add PHP 7.2 to continuous integration tests
 v0.38.0 - 2017-12-10Improvements
Percentile reimplemented to use linear interpolation between closest ranks method - Second variant, C = 1
General code improvements
Better error and exception handling
 v0.37.0 - 2017-10-23Improvements
Change probability distributions to be objects instead of static methods
 Backwards Incompatible Changes
Change probability distributions to be objects instead of static methods
 v0.36.0 - 2017-09-26New Features
Rational number
Gamma distribution mean
 Improvementsv0.35.0 - 2017-08-20New Features
Matrix isTridiagonal
Matrix isUpperHessenberg
Matrix isLowerHessenberg
Matrix getSuperdiagonalElements
Matrix getSubdiagonalElements
 Improvementsv0.34.0 - 2017-08-12New Features
Multivariate normal distribution
 v0.33.0 - 2017-08-04New Features
Kernel density estimation
 v0.32.0 - 2017-07-24New Features
Matrix Crout decomposition
Categorical discrete distribution
 v0.31.0 - 2017-07-02New Features
Hypergeometric distribution
Discrete uniform distribution
 v0.30.0 - 2017-06-11New Features
Dirichlet multivariate distribution
Gamma distribution
Initial eigenvalue matrix method
Initial eigenvector matrix method
Confidence ellipse
 Improvements
Internal Bitwise addition
 v0.29.0 - 2017-05-21New Features
Matrix rank
ObjectArithmetic interface
Polynomial implements ObjectArithmetic
ObjectSquareMatrix
Polynomial negate
 Improvements
Refactor Matrix REF algorithm
Refactor Matrix RREF algorithm
Support functions for better handling of infinitesimal floating-point zero-like quantities
Fix bug in Polynomial degree calculation
Refactored Polynomial::add() to be simpler and faster
 v0.28.0 - 2017-05-02New Features
Matrix adjugate
Polynomial subtract
 Improvements
Internal refactoring/improvements
* Tests namespace for unit tests
* Standardize method naming convention
* Update PHPUnit exception assertion
* Replace class strings in tests with class constants
 v0.27.0 - 2017-04-23New Features
Matrix
* Cholesky decomposition
* isRref
* Exchange matrix
* isInvolutory
* isSignature
* Hilbert matrix
* isUpperBidiagonal
* isLowerBidiagonal
* isBidiagonal
Quartic function roots
Trigonometry unit circle
Integer
* isOdd
* isEven
 v0.26.0 - 2017-04-15New Features
Initial Complex number class
Complex number support to quadratic and cubic equations
Initial Eigenvalue strategy class (2x2 and 3x3 matrices using root equations)
Matrix
* isLowerTriangular
* isUpperTriangular
* isTriangular
* isDiagonal
Beta function convenience method
 Improvements
Add BadDataException to LeastSquares regression method trait if degrees of freedom is 0
Complex Root of Quadratic Function
 v0.25.0 - 2017-04-01New Features
Matrix
* isSingular
* isNonsingular
* isInvertible
* leadingPrincipalMinor
* isPositiveDefinite
* isPositiveSemidefinite
* isNegativeDefinite
* isNegativeSemidefinite
Number Theory
* Integer coprime
Arithmetic
* digitSum
* digitalRoot
Basic sequences
* digitSum
* digitalRoot
 v0.24.0 - 2017-03-26New Features
Arithmetic cube root
Algebra cubic equation
Matrix Kronecker sum
Vector Kronecker product
Number theory prime factorization
 Improvements
Improved quadratic equation edge case handling
 v0.23.0 - 2017-03-12New Features
Number Theory - Integers
* Perfect powers
Advanced Sequences
* Perfect powers
* Not perfect powers
* Primes up to n
Algebra
* Quadratic equation
 v0.22.0 - 2017-01-31New Features
Circular statistics (directional statistics)
* Circular mean
* Resultant length
* Mean resultant length
* Circular variance
* Circular standard deviation
* Describe
Finance profitability index
 Improvements
Update Finance payback to be both simple and discounted payback
 v0.21.0 - 2017-01-23New Features
Finance interest payment
Finance principle payment on an annuity
Finance payback
Make files for unit tests, linting, and code coverage
 v0.20.0 - 2017-01-12New Features
Finance net present value
Finance rate function
Finance internal rate of return
Finance modified internal rate of return
Finance payment periods of an annuity
 Improvements
Update Newton's Method to handle non-convergence and infinite slopes.
 v0.19.0 - 2016-12-31New Features
Matrix sample mean
Matrix mean deviation form
Covariance matrix
Matrix representation as array of column vectors
Finance future value
Finance present value
 v0.18.0 - 2016-12-28New Features
Joint entropy
Rényi entropy
Perplexity
Matrix scalar division
Finance: Annual Equivalent Rate (AER)
 Improvements
Fix vector pnorm to take absolute value of each element
 Backwards Incompatible Changes
Refactor distances and divergences from InformationTheory\Entropy to Statistics\Distance
 v0.17.0 - 2016-12-21New Features
Two-sample z significance test
 v.0.16.0 - 2016-12-18New Features
Information Theory
* Shannon entropy (bits, nats, hartleys)
* Cross entropy
* Bhattacharyya distance
* Kullback-Leibler divergence
* Hellinger distance
* Jensen-Shannon divergence
Linear Algebra
* vectorMultiply method on Matrix to return Vector when multiply with a Vector
 v0.15.0 - 2016-11-10New Features
Lazy caterer's sequence
Magic squares sequence
 v0.14.0 - 2016-10-28New Featuresv0.13.0 - 2016-10-17New FeaturesImprovements
Refactor exceptions to use custom exception classes
 v0.12.0 - 2016-10-06New Features
Softmax function
Effect size ?² (Eta-squared)
Effect size ?²p (Partial eta-squared)
Effect size ?² (omega-squared)
Effect size Cohen's ?²
Effect size Cohen's q
Effect size Cohen's d
Effect size Hedges' g
Effect size Glass' ? (glass' delta)
 Improvements
Replace mt_rand with random_int
 v0.11.0 - 2016-10-01Backwards Incompatible Changes
Change root namespace from Math to MathPHP
* (Run composer update to update autoloader)
 v0.10.0 - 2016-09-28New Features
Clamped Cubic Spline Interpolation
Custom variable in Polynomial class
 v0.9.0 - 2016-09-27New Features
Natural cubic spline interpolation
Vector direct product
 v0.8.0 - 2016-09-22New Features
Set Theory
Matrix kronecker product
Matrix augment below
 Backwards Incompatible Changes
Some null return values changed to NAN when computation is invalid
 v0.7.0 - 2016-09-19New Features
Matrix solve linear system of equations
Noncentral T distribution
Piecewise function class
Initial Finance class (pmt function)
Vector scalar multiplication
Vector normalization
Vector scalar division
Vector perpendicular operator
Vector projections
Vector perp and perp dot product
 Improvements
Add getters to Polynomial for degree and coefficients
Improvements to gamma function
 v0.6.1 - 2016-09-11Improvements
Fix matrix determinant calculation
 v0.6.0 - 2016-09-10New Features
Polynomial class
Vector cross product
 v0.5.0 - 2016-09-07New Features
Numerical Differentiation (\Math\NumericalAnalysis\NumericalDifferentiation)
* Three Point Formula (\Math\NumericalAnalysis\NumericalDifferentiation\ThreePointFormula)
* Five Point Formula (\Math\NumericalAnalysis\NumericalDifferentiation\FivePointFormula)
* SecondDerivativeMidpointFormula (\Math\NumericalAnalysis\NumericalDifferentiation\SecondDerivativeMidpointFormula)
Two-way ANOVA (\Math\Statistics\ANOVA)
 v0.4.0 - 2016-09-07New Features
Nevilles Method (\Math\NumericalAnalysis\Interpolation)
Newton Polynomial (\Math\NumericalAnalysis\Interpolation)
 v0.3.0 - 2016-09-06New Features
Lagrange polynomials (\Math\NumericalAnalysis\Interpolation)
Function arithmetic (\Math\Functions\Arithmetic)
 v0.2.0 - 2016-09-05New Features
One-way ANOVA (```Math\Statistics\ANOVA```)
?² Table (```Math\Probability\Distribution\Table```)
Five number summary (```Math\Statistics\Descriptive```)
Simple sum of squares (```Math\Statistics\RandomVariable```)
 Improvements
Refactor probability distribution tables (```Math\Probability\Distribution\Table```)
Minor refactors
 Backwards Incompatible Changes
Move probability distribution tables to new namespace
* From ```Math\Probability``` to ```Math\Probability\Distribution\Table```
 v0.1.0 - 2016-09-02New Features * Algebra
 * Functions
   - Map
   - Special Functions
 * Linear Algebra
   - Matrix
   - Vector
 * Numerical Analysis
   - Numerical Integration
   - Root Finding
 * Probability  - Combinatorics
 - Distributions
     * Continuous
     * Discrete
 - Standard Normal Table (Z Table)
 - t Distribution Table
  * Sequences  - Basic
 - Advanced
  * Statistics  - Averages
 - Correlation
 - Descriptive
 - Distributions
 - Experiments
 - Random Variables
 - Regressions
 - Significance Testing
 |