lisachenko / native-php-matrix
PHP 扩展,提供具有重载运算符的 Matrix 类
0.2.0
2021-06-26 20:23 UTC
Requires
- php: ^7.4|^8.0
- lisachenko/z-engine: ^0.8.1 || ^0.9.1
Requires (Dev)
- phpunit/phpunit: ^9.5.5
This package is auto-updated.
Last update: 2024-08-27 16:21:07 UTC
README
长期以来,PHP 开发者都梦想能够重载运算符。现在,终于实现了这一目标。多亏了 PHP7.4 和 lisachenko/z-engine 包,我们可以重载比较、加法、乘法、类型转换等运算符!
这是一个首次作为用户级 PHP 扩展实现的,为 Matrix
类提供运算符重载。
先决条件和初始化
由于此库依赖于 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 汇编方法以提高计算性能。