PluginProbe
WCPOS – Point of Sale (POS) plugin for WooCommerce / 1.10.20
WCPOS – Point of Sale (POS) plugin for WooCommerce v1.10.20
1.10.20 1.10.19 1.10.18 1.10.17 1.10.16 1.10.15 1.10.13 1.10.14 1.10.12 1.10.11 1.10.10 1.10.9 1.10.8 untagged-3d9b7ccddc54df87c672 1.10.7 1.10.6 1.10.5 1.10.3 1.10.4 1.10.2 1.10.1 1.10.0 1.9.17 1.9.15 1.9.16 All 164 releases
woocommerce-pos / vendor / brick / math / src / Internal / Calculator / GmpCalculator.php

GmpCalculator.php in WCPOS – Point of Sale (POS) plugin for WooCommerce 1.10.20, at vendor/brick/math/src/Internal/Calculator/GmpCalculator.php

157 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 }
157