Overview

Namespaces

  • BN
    • Collections
    • Compiler
      • Grammar
      • Parser
        • Operator
        • Token
      • Postfix
        • Operands
        • Operator
        • Token
      • Scanner
        • Converter
      • Token
  • Demo
  • None

Classes

  • Benchmark
  • Controller
  • GrammarDecorator
  • Model
  • NativeEval
  • Presenter

Functions

  • examples
  • expressionsToLines
  • grammar
  • transformVars
  • Overview
  • Namespace
  • Function
  • Tree
 1: <?php
 2: 
 3: namespace Demo;
 4: 
 5: function examples()
 6: {
 7:     return array(
 8:         'Basic' => array(
 9:             'Adddition' => '1+2+3',
10:             'Power' => '2^3',
11:             'Brackets' => '(1+2)*3',
12:             'Aggregate' => 'sum(1,2,3,2, 1) + 2*3',
13:             'Aggregate & precedence' => 'sum(1 + 2 3 + 2 1 * 1) + 2*3',
14:         ),
15:         'BN examples' => array(
16:             'Floating point precision' => 'floor((0.1+0.7)*10)',
17:             'Modulo' => expressionsToLines(
18:                 '$a = 10 % 2.1',
19:                 '$b = 10 % -2.1',
20:                 '$c = -10 % 2.1',
21:                 '$d = -10 % -2.1'
22:             ),
23:             'Precedence' => '-2+5)^(5+5)*5+2-2+-2)',
24:             'Power' => '256 ^ (1 / 8)',
25:             'Negate & quotient' => 'neg (5 \ 2)',
26:             'Round' => expressionsToLines(
27:                 '$number = 123456789.987654321',
28:                 '$a = round($number, 5)',
29:                 '$b = round($number, 2)',
30:                 '$c = round($number, 0)',
31:                 '$d = round($number, -2)',
32:                 '$e = round($number, -5)'
33:             ),
34:             'Round 0.000055 to number' => expressionsToLines(
35:                 '$number = 0.000055',
36:                 '$a = $number round 3',
37:                 '$b = $number round 4',
38:                 '$c = $number round 5',
39:                 '$d = $number roundTo 10',
40:                 '$e = $number roundTo 40',
41:                 '$f = $number roundTo 100'
42:             ),
43:             'Round 124 to number' => expressionsToLines(
44:                 '$number = 124',
45:                 '$a = $number roundTo -10',
46:                 '$b = $number roundTo -50',
47:                 '$c = $number roundTo -150',
48:                 '$d = $number roundTo -500'
49:             ),
50:             'Round & round to number' => expressionsToLines(
51:                 '$number = 0-12499',
52:                 '$a = $number round -2',
53:                 '$b = $number roundTo -100'
54:             ),
55:             'Integration test' => '(-2+5)^(5+5)*5+2-2+-2'
56:         ),
57:         'Variables, Constants' => array(
58:             'Undefined variable' => '$var + 5',
59:             'Assign variable' => '$a = 5 * 2',
60:             'Constant PI' => 'PI',
61:             'Constant e' => 'e',
62:             'Sum available constants' => 'sum(PI,π,e)',
63:             'Circumference - variable & constant' => '$r=1;' . "\n" . '$circumference = 2*π*$r;',
64:         ),
65:         'Errors' => array(
66:             'Parser errors' => expressionsToLines('1 & 2', '(', ')'),
67:             'Postfix errors' => expressionsToLines('1 +', '1 2', 'sum')
68:         )
69:     );
70: }
71: 
72: function expressionsToLines()
73: {
74:     return implode(";\n", func_get_args()) . ';';
75: }
76: 
BN-PHP - Big Number data type for PHP API documentation generated by ApiGen 2.8.0