Scientific Computing for the PHP language.
Install the Tensor extension via PIE:
$ pie install rubix/tensor_ext- PHP 8.1 or above
- A C compiler such as GCC, Clang, or Visual C++
- A Fortran compiler such as GFortran
- The PHP development package (source code and tooling)
- OpenBLAS development package
- LAPACKE C interface to LAPACK
- re2c 0.13.6 or later
- GNU make 3.81 or later
- autoconf 2.31 or later
- automake 1.14 or later
- Ubuntu build-essentials
API documentation can be found in the docs folder in the project root.
Clone the repository locally using Git:
$ git clone https://github.com/RubixML/Tensor-ExtMake sure you have all the necessary build tools installed such as a C compiler and make tools. For example, on an Ubuntu linux system you can enter the following on the command line to install the necessary dependencies.
$ sudo apt-get install make gcc gfortran php-dev libopenblas-dev liblapacke-dev re2c build-essentialThen, change into the ext directory from the project root and run the following commands from the terminal. See this guide for more information on compiling PHP extensions with PHPize.
$ cd ./ext
$ phpize
$ ./configure
$ make
$ sudo make installFinally, add the following line to your php.ini configuration to install the extension.
extension=tensor_ext.so
To confirm that the extension is loaded in PHP, you can run the following command.
php -m | grep tensor_extTo avoid some errors on Mac devices using homebrew, don't forget to add the following environment variables.
export LDFLAGS="-L$(brew --prefix openblas)/lib -L$(brew --prefix pcre2)/lib -L$(brew --prefix gcc)/lib/gcc/current"
export CPPFLAGS="-I$(brew --prefix openblas)/include -I$(brew --prefix pcre2)/include -I$(brew --prefix gcc)/include"
export PKG_CONFIG_PATH="$(brew --prefix openblas)/lib/pkgconfig:$(brew --prefix pcre2)/lib/pkgconfig:$(brew --prefix gcc)/lib/pkgconfig"
export PATH="$(brew --prefix gcc)/bin:$PATH"
export FC=$(brew --prefix gcc)/bin/gfortranSee CONTRIBUTING.md for guidelines.
The code is licensed MIT and the documentation is licensed CC BY-NC 4.0.