lisachenko/native-php-matrix

PHP 扩展,提供具有重载运算符的 Matrix 类

0.2.0 2021-06-26 20:23 UTC

This package is auto-updated.

Last update: 2024-08-27 16:21:07 UTC


README

长期以来,PHP 开发者都梦想能够重载运算符。现在,终于实现了这一目标。多亏了 PHP7.4 和 lisachenko/z-engine 包,我们可以重载比较、加法、乘法、类型转换等运算符!

这是一个首次作为用户级 PHP 扩展实现的,为 Matrix 类提供运算符重载。

GitHub release Minimum PHP Version License GitHub Workflow Status

先决条件和初始化

由于此库依赖于 FFI,它需要 PHP>=7.4 并启用 FFI 扩展。此外,lisachenko/z-engine 的当前限制也适用(x64,NTS)

要安装此库,只需通过 composer 添加即可

composer require lisachenko/native-php-matrix

现在您可以使用以下示例进行测试

<?php
declare(strict_types=1);

use Lisachenko\NativePhpMatrix\Matrix;

$first  = new Matrix([[10, 20, 30]]);
$second = new Matrix([[2, 4, 6]]);
$value  = $first * 2 + $second; // Matrix([[22, 44, 66]])

支持的功能

  • 矩阵加法(《$matrixA + $matrixB》)
  • 矩阵减法(《$matrixA - $matrixB》)
  • 矩阵乘以数字(《$matrixA * 2》)
  • 矩阵乘法(《$matrixA * $matrixB》)
  • 矩阵除以数字(《$matrixA / 2》)
  • 矩阵相等检查(《$matrixA == $matrixB》)

对于未来的版本,我希望实现原生 SSE/AVX 汇编方法以提高计算性能。