PHP Classes

File: src/eMacros/Package/MathPackage.php

Recommend this page to a friend!
  Classes of Emmanuel Antico   eMacros   src/eMacros/Package/MathPackage.php   Download  
File: src/eMacros/Package/MathPackage.php
Role: Class source
Content type: text/plain
Description: Class source
Class: eMacros
PHP LISP language interpreter
Author: By
Last change:
Date: 10 years ago
Size: 2,106 bytes
 

Contents

Class file image Download
<?php
namespace eMacros\Package;

use
eMacros\Runtime\PHPFunction;
use
eMacros\Runtime\Type\IsType;

class
MathPackage extends Package {
    public function
__construct() {
       
parent::__construct('Math');
       
       
//general functions
       
$this['abs'] = new PHPFunction('abs');
       
$this['pow'] = new PHPFunction('pow');
       
$this['sqrt'] = new PHPFunction('sqrt');
       
$this['exp'] = new PHPFunction('exp');
       
$this['log'] = new PHPFunction('log');
       
$this['log10'] = new PHPFunction('log10');
       
$this['round'] = new PHPFunction('round');
       
$this['floor'] = new PHPFunction('floor');
       
$this['ceil'] = new PHPFunction('ceil');
       
$this['min'] = new PHPFunction('min');
       
$this['max'] = new PHPFunction('max');
       
$this['rand'] = new PHPFunction('rand');
       
$this['srand'] = new PHPFunction('srand');
       
$this['mt-rand'] = new PHPFunction('mt_rand');
       
$this['mt-srand'] = new PHPFunction('mt_srand');
       
$this['pi'] = new PHPFunction('pi');
       
$this['fmod'] = new PHPFunction('fmod');
       
       
//representation functions
       
$this['decbin'] = new PHPFunction('decbin');
       
$this['bindec'] = new PHPFunction('bindec');
       
$this['decoct'] = new PHPFunction('decoct');
       
$this['octdec'] = new PHPFunction('octdec');
       
$this['dechex'] = new PHPFunction('dechex');
       
$this['hexdec'] = new PHPFunction('hexdec');
       
       
//trigonometric functions
       
$this['sin'] = new PHPFunction('sin');
       
$this['cos'] = new PHPFunction('cos');
       
$this['tan'] = new PHPFunction('tan');
       
$this['asin'] = new PHPFunction('asin');
       
$this['acos'] = new PHPFunction('acos');
       
$this['atan'] = new PHPFunction('atan');
       
       
//constants
       
$this['PI'] = M_PI;
       
$this['PI_2'] = M_PI_2;
       
$this['PI_4'] = M_PI_4;
       
$this['E'] = M_E;
       
$this['EULER'] = M_EULER;
       
$this['ROUND_HALF_UP'] = PHP_ROUND_HALF_UP;
       
$this['ROUND_HALF_DOWN'] = PHP_ROUND_HALF_DOWN;
       
$this['ROUND_HALF_EVEN'] = PHP_ROUND_HALF_EVEN;
       
$this['ROUND_HALF_ODD'] = PHP_ROUND_HALF_ODD;
       
       
/**
         * MACROS
         */
       
$this->macro('/^(finite|infinite|nan)\?$/', function ($matches) {
            return new
IsType('is_' . $matches[1]);
        });
    }
}
?>