* Added version.h providing mlx::core::version() returning std::string(MLX_VERSION)
Also, added MLX_VERSION_MAJOR, MLX_VERSION_MINOR, MLX_VERSION_PATCH, MLX_VERSION_NUMERIC, and accompanying functions.
* Added version.h to mlx.h
* Changed version int functions to be constexpr
* Formatting
* Added handling of MLX_VERSION where only the prefix has major.minor.patch format
* Changed version function to be constexpr
* start to cleanup/unify accelerate and common back-ends
* more progress
* simplify
* add half type and allow infs in simd exp
* unify softmax + quantized, more dispatches to simd quantized mm
* add sin/cos, use simd in vector-scalar ops
* faster CPU vectorize quant
* faster erf/erfinv
* export and import functions
* refactor + works for few primitives
* nit
* allow primitives with state
* nit
* nit
* simplify serialize / deserialize
* fix for constants
* python bindings
* maybe fix serialize failure case
* add example
* more primitives, training kind of works
* same result for python and c++
* some fixes
* fix export
* template it up
* some simplificatoin
* rebase
* allow kwargs and multiple functions
* exporter
* more primitives for exporting
* deal with endianness
* handle invalid stream
* add docstring
* Install mlx.dll into the same dir with python bindings on Windows
* Set BUILD_SHARED_LIBS for dlfcn-win32
* Update cmake requirements to 3.25
* Fix cmake style
* Download OpenBLAS binaries when building with MSVC
* Download dlfcn-win32
* Link with dlfcn-win32 correctly
* Build OpenBLAS from source code
* Link with openblas statically
* Link with BLAS privately
* Metal-cpp version bump
Apple has released the stable version of Metal-cpp for macOS 15 and iOS 18. CMakeLists.txt is updated to build with it instead of the beta one.
* Fix style with cmake-format