- Revise automatic installation test via GitHub Action
- Revise dockerfiles; add docker automatic build and deployment
- Fix compatibility on MacOS and Arm64 architecture
- Update compilation to OCaml 5.2.0
- Revise examples and tests
- Update inline document and tutorials
- FFT module revamp (@gabyfle)
- Changed def of ssqr_diff' to not modify inputs (@patrick-nicodemus)
- Avoid calling log(0) when generating gaussian random variables (@edwintorok)
- remove several components in owl:
aeos
,plplot
,zoo
- remove the Sparse module in Ndarray and thus Owl's reliance on
eigen
- Change input/output_val to ocaml_input/output_val
- Adapt Zoo to the changes in ocaml-compiler-libs
- Fix a bug about unpack_arr in nested forward/reverse mode (#619)
- Add NeNormal initializer (#624)
- Update API document
- Update several mli files
- Fix typos
- Update Hamming, Hann, Blackman, Freqz functions in
Signal
module - Fix a bug in sparse matrix transpose; the dimensions are now swapped properly
- Fix a bug in the split function in ndarray module
- Fix a bug in combination calculation
- Fix some compilation warnings on Windows, using Mingw toolchain
- Document updates for PLplot and Windows
- Add eighth-order finite difference approximation
- Fix bug in Jacobian with different input/output dimensions (#557)
- Fix bug in nested grads (#558)
- Update to ocamlformat.0.16.0 (thanks @gpetiot #556)
- Add get_fancy to AD
- Check input and output type of
diff
operation - Fix bug in
build_info
of aiso pattern in AD - Implement split forward mode and check max tag of
build_info
- Add initial implementation of fft2 and ifft2
- Add nonsymmetric qs suppport for continuous and discrete time lyapunov gradients
- Improve
care
anddare
operations in AD - Improve forward mode efficiency for sylv, clyap and dlyap operations in AD
- Update project governance
- Fix bug in convolution operation
- Fix bug in AEOS module
- Enable differentiation through the Jacobian in Algodiff
- Fix windows compatibility issue (@kkirstein #549)
- Fix bitwidth issue in mingw by replacing long type with int64_t (thanks @kkirstein)
- Fix Dockerfile for master branch
- various documentation improvements (thanks @pveber, @UnixJunkie, @Fourchaux)
- Fix use of access operators (#543)
- Upgrade to ocamlformat 0.15.0 (thanks @gpetiot #535)
- keep_dims option (#531)
- stats: fix infinite loop in ecdf
- Use Fun.protect to ensure all file descriptors are being closed
- owl_ndarray_maths: improve user experience in case of errors
- owl_io: close file descriptors also in case of errors
- owl_dense_ndarray_generic: fix error on printing 0-ary arrays
- fixed bug in sub forward mode (#533)
- Add stack to Algodiff (#528)
- added log_sum_exp to Ndarray and Algodiff (#527)
- added single-precision and double-precision Bessel functions to Ndarray (#526)
- Fixes #518 by introducing another
/
to resolve data directory (@jotterbach #519) - Graph Slice node (resolves #483) (@mreppen #517)
- Graph subnetwork: Multiple outputs (@mreppen #515)
- Added kron and swap to Algodiff operations (#512)
- various other small fixes
- owl: sync opam files versioning
- added stack function (#506)
- Owl now compatible with latest version of Ctypes (#508)
- Fix bug in _squeeze_broadcast (#503)
- using extended indexing operator since ocaml 4.10.0
- [breaking] Drop support for ocaml < 4.10.0
- Fix bug in _squeeze_broadcast (#503)
- Added the Dawson function (Ndarray + Matrix + Algodiff op) (#502)
- Fix bug in reverse mode gradients of aiso operations and pow (#501)
- Added poisson_rvs to Owl_distribution (#499)
- Draw poisson RVs in Ndarray and Mat modules (#498)
- Broadcast bug for higher order derivatives (#495)
- add sem to dense ndarray and matrix (#497)
- Avoid input duplication with Graph.model and multi-input nn (#494)
- Added Graph.get_subnetwork for constructing subnetworks (#491)
- Make Graph.inputs give unique names to inputs (#493)
- modify nlp interfaces
- Re-add removed DiffSharp acknowledgment (#486)
- add pretty printer for hypothesis type
- update lambda neuron (#485)
- fix example due to #476
- Extend base linalg functions to complex numbers (#479)
- [breaking] use a separate module for algodiff instead of ndarray directly (#476)
- temp workaround and unittest (#478)
- [breaking] Interface files for base/dense and base/linalg (#472)
- Port code to dune2 (#474)
- [breaking] interface files to simplify .mli files in owl/dense (#471)
- Save and load Npy files (#470)
- Owl: relax bounds on base and stdio (#469)
- Merged tests for different AD operations into one big test + autoformat tests with ocamlformat (#468)
- fourth order finite diff approx to grad
- changes to improve stability of sylv/discrete_lyap
- fix bug in concatenate function
- add mli for owl_base_linalg_generic
- Owl-base linalg routines: LU decomposition (#465)
- bug fixes
- Update owl.opam
- Add unit basis
- Fix issue #337 and #457 (#458)
- owl-base: drop seemingly unnecessary dependency on integers (#456)
- Add unsafe network save (#429)
- Sketch Count-Min and Heavy-Hitters
- Various bugfixes
- Owl_io.marshal_to_file: use to_channel
- Do not create .owl folder when loading owl library
- Re-design of exceptions and replace asserts with verify
- Add OWL_DISABLE_LAPACKE_LINKING_FLAG
- Reorganise Algodiff module
- Add parameter support to Zoo
- Two new features in algodiff: eye and linsolve (triangular option) + improved stability of qr and chol
- Implemented solve triangular
- Added linsolve and lq reverse-mode differentiation
- Fix build on archlinux (pkg-config cblas)
- Add median and sort along in ndarray
- Improve stability of lyapunov gradient tests
- Add unsafe network save (#429)
- Sketch Count-Min and Heavy-Hitters
- Various ugfixes
- Owl_io.marshal_to_file: use to_channel
- Do not create .owl folder when loading owl library
- Re-design of exceptions and replace asserts with verify
- Add OWL_DISABLE_LAPACKE_LINKING_FLAG
- Reorganise Algodiff module
- Add parameter support to Zoo
- Two new features in algodiff: eye and linsolve (triangular option) + improved stability of qr and chol
- Implemented solve triangular
- Added linsolve and lq reverse-mode differentiation
- Fix build on archlinux (pkg-config cblas)
- Add median and sort along in ndarray
- Improve stability of lyapunov gradient tests
- Improve building and installation.
- Fix bugs and improve performance.
- Add more functions to Algodiff.
- Split plot module out as sub library.
- Split Tfgraph module out as sub library.
- Optimise computation graph module.
- Add some core math functions.
- Fix bugs and improve performance.
- Improve the APIs of Dataframe module.
- Add more functions in Utils module.
- Fix some bugs and improve performance.
- Introduce computation graph into the functor stack.
- Optimise repeat and tile function in the core.
- Adjust the OpenCL library according to computation graph.
- Improve the API of Dataframe module.
- Add more implementation of convolution operations.
- Add dilated convolution functions.
- Add transposed convolution functions.
- Add more neurons into the Neural module.
- Add more unit tests for core functions.
- Move from
jbuilder
todune
- Assuage many warnings
- Add initial support for dataframe functionality.
- Add IO module for Owl's specific file operations.
- Add more helper functions in Array module in Base.
- Add core functions such as one_hot, slide, and etc.
- Fix normalisation neuron in neural network module.
- Fix building, installation, and publishing on OPAM.
- Fix broadcasting issue in Algodiff module.
- Support negative axises in some ndarray functions.
- Add more statistical distribution functions.
- Add another higher level wrapper for CBLAS module.
- Fix some bugs and improve performance.
- Fix some docker files for automatic image building.
- Move more pure OCaml implementation to base library.
- Add a new math module to support complex numbers.
- Improve the configuration and building system.
- Improve the automatic documentation building system.
- Change template code into C header files.
- Add initial support for OpenMP with evaluation.
- Tidy up packaging using TOPKG.
- Fix some bugs and improve performance.
- Add more unit tests for Ndarray module.
- Add version control in Zoo gist system.
- Add tensor contract operations in Ndarray.
- Add more documentation of various functions.
- Add support of complex numbers of convolution and pooling functions.
- Enhance Owl's own Array submodule in Utils module.
- Fix pretty printer for rank 0 ndarrays.
- Add functions to iterate slices in an ndarray.
- Adjust the structure of OpenCL module.
- Add functions for numerical integration.
- Add functions for interoperation.
- Add several root-finding algorithms.
- Introduce Owl's exception module.
- Add more functions in Linalg module.
- Add native convolution function in core.
- Remove Eigen dependency of dense data structure.
- Fix some bugs and improve performance.
- Update README, ACKNOWLEDGEMENT, and etc.
- Initial implementation of OpenCL Context module.
- Fix some bugs and improve the performance.
- Add Adam learning rate algorithm in Optimise module.
- Add a number of statistical functions into Stats.
- Enhance View functor and add more functions.
- Include and documentation of NLP modules.
- Add dockerfile for various linux distributions.
- Fix some bugs and improve the performance.
- Integrate with Owl's documentation system.
- Add native C implementation of pooling operations.
- Add more operators in Operator module.
- Add more functions in Linalg module.
- Optimise the Base library.
- Add more unit tests.
- Fix some bugs and improve the performance.
- Functorise many unit tests and add more tests.
- Rewrite the documentation migrate to Sphinx system.
- Migrate many pure OCaml code into Base library.
- Implement the initial version of Base library.
- Design View module as an experimental module for Ndarray.
- Include Mersenne Twister (SFMT) to generate random numbers.
- Implement random number generator of various distributions.
- Implement native functions for maths and stats module.
- Include FFTPACK to provide native support for FFT functions.
- Minimise dependency, remove dependencies on Gsl and etc.
- Implement slicing and indexing as native C functions.
- Use new extended indexing operators for slicing functions.
- Refine ndarray fold function and introduce scan function.
- Reorganise the module structure in the source tree.
- Fix some bugs and enhance the performance of core functions.
- Add another 200+ unit tests.
- Migrate to jbuilder building system.
- Unify Dense Ndarray and Matrix types.
- Split Toplevel out as a separate library.
- Redesign Zoo system for recursive importing.
- Simplify the module signature for Ndarray.
- Introduce functions in Ndarray module to support in-place modification.
- Introduce reduction functions to reduce an ndarray to a scalar value.
- Add Lazy functor to support lazy evaluation, dataflow, and incremental computing.
- Implement a new and more powerful pretty printer to support both ndarray and matrix.
- Fix bugs in the core module, improve the performance.
- New Linalg module is implemented.
- New neural network module supports both single and double precision.
- New Optimise and Regression module is built atop of Algodiff.
- Experimental Zoo system is introduced as a separate library.
- Enhance core functions and fix some bugs.
- Enhance basic math operations for complex numbers.
- Redesign Plot module and add more plotting functions.
- Add more hypothesis test functions in Owl.Stats module.
- Support both numerical and algorithmic differentiation in Algodiff.
- Support both matrices and n-dimensional arrays in Algodiff module.
- Support interoperation of different number types in Ext and new operators.
- Support more flexible slicing, tile, repeat, and concatenate functions.
- Support n-dimensional array of any types in Dense.Ndarray.Any module.
- Support simple feedforward and convolutional neural networks.
- Support experimental distributed and parallel computing.
- Support both dense and sparse matrices.
- Support both dense and sparse n-dimensional arrays.
- Support both real and complex numbers.
- Support both single and double precisions.
- Add more vectorised operation: sin, cos, ceil, and etc.
- Add basic unit test framework for Owl.
- Add a couple of Topic modelling algorithms.
- Initial architecture of Owl library.
- Basic support for double precision real dense matrices.
- Basic linear functions for dense matrices.
- Basic support for plotting functions.
- SI, MKS, CGS, and CGSM metric system.