Releases: rindow/rindow-matlib
Version 1.1.1
Release Notes: Version 1.1.1
Bugfix
Resolved an issue where the OpenMP library was being linked to the Thread version of the library, causing it to be required at runtime.
In this version, the OpenMP library will no longer be required when using the Thread version.
Version 1.1.0
Release Notes: Version 1.1.0
New Features
- Added a native thread-based parallel processing library. It is recommended to use the thread-based library instead of the OpenMP version from now on. This is due to issues with the Windows OpenMP library causing problems when PHP processes terminate, and for the efficiency of parallel processing algorithms.
New Functions
masking: Masks a numerical array with a boolean array.cumsumb: An extended version of thecumsumfunction.bandpart(integer support): Added integer support to thebandpartfunction.gatherb: An extended version of thegatherfunction.einsum: A general version ofeinsum. It has high flexibility in the formulas it can process but is slow.einsum4p1: A limited version of theeinsumfunction. It can only compute 4+1 dimensional arrays but is fast.
Preview Functions
These may change or be removed in future releases.
topk: Thetop_kfunction.gathernd: Thegatherndfunction.
Backward Compatibility
- Compatible with version 1.0.
Supported Platforms
- Can be built from source in a C++ environment. There are C++ thread versions, OpenMP versions, and single-thread versions for each environment.
Prebuilt Binaries
- Ubuntu 24.04
- Ubuntu 22.04 (also available on Ubuntu 24.04 and Debian 12)
- Windows (usable with Visual Studio runtime libraries on Windows 10/11)
- macOS x86_64 (usable on macOS 13 for Intel Macs)
- macOS Arm64 (usable on macOS 14 for Apple Silicon)
MSVC name-binding for Windows
MSVC name-binding for Windows
Added name binding library and made it default to prevent unexpected behavior if DLL version changes slightly on Windows.
A newly added library resolves an issue when using MSVC's standard import library that modifies the address table and prevents you from calling functions in a DLL.
Arm64 and Intel pre-build binary for MacOS
Pre-built binaries are now automatically published using Github's capabilities.
This allows us to provide both arm64 and x86_64 for MacOS.
The reason why you can't build universal binaries for MacOS is due to the specifications of the hosted runner on Github.
First Release
It can be built on Linux and Windows and MacOS.
The Windows and MacOS version works with OpenMP.
Linux is tested on Ubuntu, and OpenMP and single-threaded versions are built.
Please switch the OpenBLAS from pthead mode to OpenMP .
Or switch the Rindow-matlib from OpenMP mode to Serial mode with update-alternative command.
Known issues:
- On Linux, a segmentation fault occurs when using OpenMP with OpenBLAS-pthead inside PHP. Please use the OpenBLAS OpenMP mode or the Rindow-Matlib-Serial mode version.
MacOS support:
- Prebuild binaries for MacOS are Contributed by @CodeWithKyrian