PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.4.8
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.4.8
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 3.10.4 All 148 releases
visualizer / vendor / markbaker / matrix / classes / src / Operators / Subtraction.php

Subtraction.php in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.4.8, at vendor/markbaker/matrix/classes/src/Operators/Subtraction.php

69 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Matrix\Operators;
4
5 use Matrix\Matrix;
6 use Matrix\Exception;
7
8 class Subtraction extends Operator
9 {
10 /**
11 * Execute the subtraction
12 *
13 * @param mixed $value The matrix or numeric value to subtract from the current base value
14 * @throws Exception If the provided argument is not appropriate for the operation
15 * @return $this The operation object, allowing multiple subtractions to be chained
16 **/
17 public function execute($value)
18 {
19 if (is_array($value)) {
20 $value = new Matrix($value);
21 }
22
23 if (is_object($value) && ($value instanceof Matrix)) {
24 return $this->subtractMatrix($value);
25 } elseif (is_numeric($value)) {
26 return $this->subtractScalar($value);
27 }
28
29 throw new Exception('Invalid argument for subtraction');
30 }
31
32 /**
33 * Execute the subtraction for a scalar
34 *
35 * @param mixed $value The numeric value to subtracted from the current base value
36 * @return $this The operation object, allowing multiple additions to be chained
37 **/
38 protected function subtractScalar($value)
39 {
40 for ($row = 0; $row < $this->rows; ++$row) {
41 for ($column = 0; $column < $this->columns; ++$column) {
42 $this->matrix[$row][$column] -= $value;
43 }
44 }
45
46 return $this;
47 }
48
49 /**
50 * Execute the subtraction for a matrix
51 *
52 * @param Matrix $value The numeric value to subtract from the current base value
53 * @return $this The operation object, allowing multiple subtractions to be chained
54 * @throws Exception If the provided argument is not appropriate for the operation
55 **/
56 protected function subtractMatrix(Matrix $value)
57 {
58 $this->validateMatchingDimensions($value);
59
60 for ($row = 0; $row < $this->rows; ++$row) {
61 for ($column = 0; $column < $this->columns; ++$column) {
62 $this->matrix[$row][$column] -= $value->getValue($row + 1, $column + 1);
63 }
64 }
65
66 return $this;
67 }
68 }
69