[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 <?php 2 3 declare(strict_types=1); 4 5 namespace Brick\Math\Internal\Calculator; 6 7 use Brick\Math\Internal\Calculator; 8 9 /** 10 * Calculator implementation built around the GMP library. 11 * 12 * @internal 13 * 14 * @psalm-immutable 15 */ 16 class GmpCalculator extends Calculator 17 { 18 /** 19 * {@inheritdoc} 20 */ 21 public function add(string $a, string $b) : string 22 { 23 return \gmp_strval(\gmp_add($a, $b)); 24 } 25 26 /** 27 * {@inheritdoc} 28 */ 29 public function sub(string $a, string $b) : string 30 { 31 return \gmp_strval(\gmp_sub($a, $b)); 32 } 33 34 /** 35 * {@inheritdoc} 36 */ 37 public function mul(string $a, string $b) : string 38 { 39 return \gmp_strval(\gmp_mul($a, $b)); 40 } 41 42 /** 43 * {@inheritdoc} 44 */ 45 public function divQ(string $a, string $b) : string 46 { 47 return \gmp_strval(\gmp_div_q($a, $b)); 48 } 49 50 /** 51 * {@inheritdoc} 52 */ 53 public function divR(string $a, string $b) : string 54 { 55 return \gmp_strval(\gmp_div_r($a, $b)); 56 } 57 58 /** 59 * {@inheritdoc} 60 */ 61 public function divQR(string $a, string $b) : array 62 { 63 [$q, $r] = \gmp_div_qr($a, $b); 64 65 return [ 66 \gmp_strval($q), 67 \gmp_strval($r) 68 ]; 69 } 70 71 /** 72 * {@inheritdoc} 73 */ 74 public function pow(string $a, int $e) : string 75 { 76 return \gmp_strval(\gmp_pow($a, $e)); 77 } 78 79 /** 80 * {@inheritdoc} 81 */ 82 public function modInverse(string $x, string $m) : ?string 83 { 84 $result = \gmp_invert($x, $m); 85 86 if ($result === false) { 87 return null; 88 } 89 90 return \gmp_strval($result); 91 } 92 93 /** 94 * {@inheritdoc} 95 */ 96 public function modPow(string $base, string $exp, string $mod) : string 97 { 98 return \gmp_strval(\gmp_powm($base, $exp, $mod)); 99 } 100 101 /** 102 * {@inheritdoc} 103 */ 104 public function gcd(string $a, string $b) : string 105 { 106 return \gmp_strval(\gmp_gcd($a, $b)); 107 } 108 109 /** 110 * {@inheritdoc} 111 */ 112 public function fromBase(string $number, int $base) : string 113 { 114 return \gmp_strval(\gmp_init($number, $base)); 115 } 116 117 /** 118 * {@inheritdoc} 119 */ 120 public function toBase(string $number, int $base) : string 121 { 122 return \gmp_strval($number, $base); 123 } 124 125 /** 126 * {@inheritdoc} 127 */ 128 public function and(string $a, string $b) : string 129 { 130 return \gmp_strval(\gmp_and($a, $b)); 131 } 132 133 /** 134 * {@inheritdoc} 135 */ 136 public function or(string $a, string $b) : string 137 { 138 return \gmp_strval(\gmp_or($a, $b)); 139 } 140 141 /** 142 * {@inheritdoc} 143 */ 144 public function xor(string $a, string $b) : string 145 { 146 return \gmp_strval(\gmp_xor($a, $b)); 147 } 148 149 /** 150 * {@inheritDoc} 151 */ 152 public function sqrt(string $n) : string 153 { 154 return \gmp_strval(\gmp_sqrt($n)); 155 } 156 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |