src/PHPSci/Kernel/CArray/Wrapper.php
public static function matmul(\CArray $a, \CArray $b): \CArray
    {
        return parent::matmul($a, $b);
    }
public static function matmul(\CArray $a, \CArray $b): \CArray
    {
        return parent::matmul($a, $b);
    }
public static function matmul ( \ CArray $ a , \ CArray $ b ) : \ CArray { return parent :: matmul ( $ a , $ b ) ; }
Matrix product of two CArrays.

- If both arguments are 2-D they are multiplied like conventional matrices.
- If the first argument is 1-D, it is promoted to a matrix by prepending a
1 to its dimensions. After matrix multiplication the prepended 1 is removed.
- If the second argument is 1-D, it is promoted to a matrix by appending a
1 to its dimensions. After matrix multiplication the appended 1 is removed.

Multiplication by a scalar is not allowed.

@param \CArray $a Target $a CArray
@param \CArray $b Target $b CArray

@return \CArray Dot product of $a and $b. If both are 1D, them a 0 dimensional (scalar) CArray will
be returned
Matrix product of two CArrays .