<?php /** * Copyright (c) Ivan Akimov. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. * * @see https://github.com/vinkla/hashids */ namespace app\utils\Hashids\Math; class Bc implements MathInterface { /** * Add two arbitrary-length integers. * * @param string $a * @param string $b * * @return string */ public function add($a, $b) { return \bcadd($a, $b, 0); } /** * Multiply two arbitrary-length integers. * * @param string $a * @param string $b * * @return string */ public function multiply($a, $b) { return \bcmul($a, $b, 0); } /** * Divide two arbitrary-length integers. * * @param string $a * @param string $b * * @return string */ public function divide($a, $b) { return \bcdiv($a, $b, 0); } /** * Compute arbitrary-length integer modulo. * * @param string $n * @param string $d * * @return string */ public function mod($n, $d) { return \bcmod($n, $d); } /** * Compares two arbitrary-length integers. * * @param string $a * @param string $b * * @return bool */ public function greaterThan($a, $b) { return \bccomp($a, $b, 0) > 0; } /** * Converts arbitrary-length integer to PHP integer. * * @param string $a * * @return int */ public function intval($a) { return \intval($a); } /** * Converts arbitrary-length integer to PHP string. * * @param string $a * * @return string */ public function strval($a) { return $a; } /** * Converts PHP integer to arbitrary-length integer. * * @param int $a * * @return string */ public function get($a) { return $a; } }