rindow / rindow-math-matrix
The fundamental package for scientific matrix operation
Installs: 26 562
Dependents: 6
Suggesters: 0
Security: 0
Stars: 11
Watchers: 4
Forks: 3
Open Issues: 3
Requires
- php: ^8.1
- interop-phpobjects/polite-math: ~1.0.7
Suggests
- rindow/math-plot: for OpenCL tunning
- rindow/rindow-math-matrix-matlibffi: ~1.0.0
README
Rindow Math Matrix is the fundamental package for scientific matrix operation
- A powerful N-dimensional array object
- Sophisticated (broadcasting) functions
- BLAS functions
- Functions useful for machine learning
- Tools for integrating C/C++ through the FFI (OpenBLAS,Rindow-Matlib,CLBlast etc.)
- GPU support on your laptop without n-vidia (OpenCL with Intel,AMD etc.)
- Useful linear algebra and random number capabilities
Please see the documents on Rindow mathematics project web pages.
Requirements
- PHP 8.1 or PHP8.2 or PHP8.3
- PHP7.2, PHP7.3, PHP7.4 and PHP 8.0 are not supported in this release. Please use Release 1.1, which supports them.
Strong recommend
You can perform very fast N-dimensional array operations in conjunction
- rindow-math-matrix-matlibffi: plug-in drivers for OpenBLAS,Rindow-Matlib,OpenCL,CLBlast for FFI
- Pre-build binaries
Please see the rindow-math-matrix-matlibffi to setup plug-in and pre-build binaries.
How to Setup
Set it up using composer.
$ composer require rindow/rindow-math-matrix
You can use it as is, but you will need to speed it up to process at a practical speed.
And then, Set up pre-build binaries for the required high-speed calculation libraries. Click here for details.
$ composer require rindow/rindow-math-matrix-matlibffi
Sample programs
<?php // sample.php include __DIR__.'/vendor/autoload.php'; use Rindow\Math\Matrix\MatrixOperator; $mo = new MatrixOperator(); $a = $mo->array([[1,2],[3,4]]); $b = $mo->array([[2,3],[4,5]]); $c = $mo->cross($a,$b); echo $mo->toString($c,indent:true)."\n";
$ php sample.php [ [10,13], [22,29] ]