PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.2.1
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.2.1
4.0.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 All 149 releases
← All changes | vendor/markbaker/matrix/classes/src/Operators/DirectSum.php +11 -10 3.10.13.2.1 View file →
@@ -10,11 +10,11 @@
10 10 /**
11 11 * Execute the addition
12 12 *
13 13 * @param mixed $value The matrix or numeric value to add to the current base value
14 + * @throws Exception If the provided argument is not appropriate for the operation
14 15 * @return $this The operation object, allowing multiple additions to be chained
15 - * @throws Exception If the provided argument is not appropriate for the operation
16 - */
16 + **/
17 17 public function execute($value)
18 18 {
19 19 if (is_array($value)) {
20 20 $value = new Matrix($value);
@@ -19,9 +19,9 @@
19 19 if (is_array($value)) {
20 20 $value = new Matrix($value);
21 21 }
22 22
23 - if ($value instanceof Matrix) {
23 + if (is_object($value) && ($value instanceof Matrix)) {
24 24 return $this->directSumMatrix($value);
25 25 }
26 26
27 27 throw new Exception('Invalid argument for addition');
@@ -31,31 +31,32 @@
31 31 * Execute the direct sum for a matrix
32 32 *
33 33 * @param Matrix $value The numeric value to concatenate/direct sum with the current base value
34 34 * @return $this The operation object, allowing multiple additions to be chained
35 + * @throws Exception If the provided argument is not appropriate for the operation
35 36 **/
36 - private function directSumMatrix($value)
37 + protected function directSumMatrix(Matrix $value)
37 38 {
38 39 $originalColumnCount = count($this->matrix[0]);
39 40 $originalRowCount = count($this->matrix);
40 - $valColumnCount = $value->columns;
41 - $valRowCount = $value->rows;
41 + $additionalColumnCount = $value->columns;
42 + $additionalRowCount = $value->rows;
42 43 $value = $value->toArray();
43 44
44 45 for ($row = 0; $row < $this->rows; ++$row) {
45 - $this->matrix[$row] = array_merge($this->matrix[$row], array_fill(0, $valColumnCount, 0));
46 + $this->matrix[$row] = array_merge($this->matrix[$row], array_fill(0, $additionalColumnCount, 0));
46 47 }
47 48
48 49 $this->matrix = array_merge(
49 50 $this->matrix,
50 - array_fill(0, $valRowCount, array_fill(0, $originalColumnCount, 0))
51 + array_fill(0, $additionalRowCount, array_fill(0, $originalColumnCount, 0))
51 52 );
52 53
53 - for ($row = $originalRowCount; $row < $originalRowCount + $valRowCount; ++$row) {
54 + for ($row = $originalRowCount; $row < $originalRowCount + $additionalRowCount; ++$row) {
54 55 array_splice(
55 56 $this->matrix[$row],
56 57 $originalColumnCount,
57 - $valColumnCount,
58 + $additionalColumnCount,
58 59 $value[$row - $originalRowCount]
59 60 );
60 61 }
61 62