Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.

Differences Between: [Versions 310 and 311] [Versions 39 and 311]

   1  <?php
   2  
   3  /**
   4   *
   5   * Function code for the matrix multiplication operation
   6   *
   7   * @copyright  Copyright (c) 2018 Mark Baker (https://github.com/MarkBaker/PHPMatrix)
   8   * @license    https://opensource.org/licenses/MIT    MIT
   9   */
  10  
  11  namespace Matrix;
  12  
  13  use Matrix\Operators\Multiplication;
  14  
  15  /**
  16   * Multiplies two or more matrices
  17   *
  18   * @param array<int, mixed> $matrixValues The matrices to multiply
  19   * @return Matrix
  20   * @throws Exception
  21   */
  22  function multiply(...$matrixValues): Matrix
  23  {
  24      if (count($matrixValues) < 2) {
  25          throw new Exception('Multiplication operation requires at least 2 arguments');
  26      }
  27  
  28      $matrix = array_shift($matrixValues);
  29  
  30      if (is_array($matrix)) {
  31          $matrix = new Matrix($matrix);
  32      }
  33      if (!$matrix instanceof Matrix) {
  34          throw new Exception('Multiplication arguments must be Matrix or array');
  35      }
  36  
  37      $result = new Multiplication($matrix);
  38  
  39      foreach ($matrixValues as $matrix) {
  40          $result->execute($matrix);
  41      }
  42  
  43      return $result->result();
  44  }