Skip to content

rodriados/mathr

Repository files navigation

Mathr

license MIT version 3.0 Build Status Coverage Status

Mathr is a fast mathematical expression parser, evaluator and calculator with some added juice.

Usage

The simplest usage possible for Mathr is by simply sending in a math expression.

<?php
$mathr = new Mathr;
$result = $mathr->evaluate("3 + 4 * 5");
echo $result; // 23

You also can create your own variables and functions!

<?php
$mathr->evaluate("v = 10");
$mathr->evaluate("fibonacci(0) = 0");
$mathr->evaluate("fibonacci(1) = 1");
$mathr->evaluate("fibonacci(x) = fibonacci(x - 1) + fibonacci(x - 2)");
$result = $mathr->evaluate("fibonacci(v)");
echo $result; // 55

If you want to, it's possible to bind functions to native PHP closures!

<?php
$mathr->set('triangle(b, h)', fn ($b, $h) => ($b * $h) / 2);
$result = $mathr->evaluate('triangle(5, 8)');
echo $result; // 20

There are a plenty of native functions and variables which you can use at will.

<?php
$mathr->evaluate("fibonacci(x) = ceil((φ ^ x - (1 - φ) ^ x) / sqrt(5))");
$result = $mathr->evaluate("fibonacci(10)");
echo $result; // 55

You can easily export and import your functions and variables.

<?php
$exported = $mathr->export(); // Exports all bound functions and variables.
$mathr->import($exported); // Imports functions and variables.

Install

The recommended way to install Mathr is via Composer.

{
    "require": {
        "rodriados/mathr": "v3.0"
    }
}