diff --git a/CHANGES.md b/CHANGES.md index 1e7f4e1..b1eadb0 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,7 @@ +## 11.1.1 (2024-12-07) + +- Removed obsolete `base-bytes` and `base-bigarray` dependencies + ## 11.1.0 (2024-11-28) - Bug fix: moved incorrect `Bool_val` out of blocking section. @@ -162,3 +166,948 @@ WARNING: - Improved documentation - Improved configuration and build process + +## Changes Before Version 10.0.0 + +```text +2017-06-28: Release version 10.0.0: + + Dropped label used by `trmm` and `trsm` for API consistency. + +2017-05-23: Release version 9.3.2: + + Fixed the API of ger and syr. These functions now don't return + the modified matrix anymore. This makes more sense, because + addition to the updated matrix is an intrinsic part of these + operations. You cannot use them to initialize a freshly allocated + matrix. This change can break some code (rare), but is trivial + to fix. + +2017-05-03: Internalized some modules to improve type error messages in user + code. + + Thanks to Christophe Troestler + for the improvements. + +2017-03-09: Fixed bug in Vec.acos (affects bytecode applications). + +2017-01-18: Minor release version 9.2.1: + + Added more functions: + + * Vec.has_zero_dim + * Mat.has_zero_dim + + Added missing checks for empty vectors and matrices to prevent + BLAS functions from exiting the program. + +2016-07-12: Minor release version 9.1.1: + + Fixed FreeBSD linking problem. + + Thanks to Mykola Stryebkov for the patch. + +2016-07-06: Minor release version 9.1.0: + + More functions from the C standard library (math.h): + + * Vec/Mat.cbrt + * Vec/Mat.log2 + * Vec/Mat.round + * Vec/Mat.trunc + + Improved some operations that can exploit fused multiply add (FMA). + +2016-04-01: Major release version 9.0.0: + + Added portable vector and matrix functions from the C standard + library (math.h): + + * Vec/Mat.exp2 + * Vec/Mat.log10 + * Vec/Mat.asin + * Vec/Mat.acos + * Vec/Mat.atan + * Vec/Mat.sinh + * Vec/Mat.cosh + * Vec/Mat.tanh + * Vec/Mat.asinh + * Vec/Mat.acosh + * Vec/Mat.atanh + * Vec/Mat.floor + * Vec/Mat.ceil + * Vec/Mat.erf + * Vec/Mat.erfc + * Vec/Mat.pow + * Vec/Mat.atan2 + * Vec/Mat.hypot + + Added missing vector and matrix functionality: + + * Vec/Mat.signum + * Vec/Mat.min2 + * Vec/Mat.max2 + * Vec/Mat.logistic + * Vec/Mat.relu + * Vec/Mat.softplus + * Vec/Mat.softsign + * Vec/Mat.log_sum_exp + +2016-04-01: Minor release version 8.1.0: + + * Added Vec.abs and Mat.abs (for real numbers for now) + +2016-03-03: Minor release version 8.0.7: + + * Fixed offset checking bugs + +2016-02-24: Minor release version 8.0.6: + + * Fixed Mat.of_diag matrix initialization bug + + Thanks to Leonid Rozenberg for the patch. + +2016-02-18: Minor release version 8.0.5: + + * Fixed incorrect comments that made ocamldoc fail, thus + preventing the generation of API documentation + +2016-02-14: Minor release version 8.0.4: + + * Fixed a matrix bounds checking bug + + * Fixed build issues for backward compatibility with + OCaml versions < 4.1 + +2016-02-12: Major release version 8.0.0: + + * Added types Vec.t and Mat.t + + * Changes to vector and matrix parameter checking + code, which should fix some corner case bugs and make the + checks more reusable. + + * Added new vector functions + + * sqr, sqrt, exp, log, sin, cos, tan, tanh + * zpxy, zmxy + * swap + * tan, tanh + * expm1, log1p + + * Added new matrix functions + + * of_list, to_list + * of_col_vecs_list, to_col_vecs_list + * laswp and lapmt + * neg, reci, sqr, sqrt, exp, log, sin, cos, tan, tanh + * cpab, cmab + * swap + * add, sub, mul, div + * ssqr_diff + + * Replaced Mat.transpose with Mat.transpose_copy and changed + documented behavior + + * Improved API of Mat.of_diag and Mat.copy_diag + + * Miscellaneous bug fixes and improvements + +2015-07-01: Fixed a bug in the complex version of Vec.ssqr_diff. + + Thanks to Akinori Abe for the patch. + +2015-06-30: Fixed Oasis-related linking problem (again). + + Annoying, but Oasis still generates code that prevents proper + linking. + +2015-06-29: Improved portability to some Linux-platforms. + + Thanks to Akinori Abe for the patch. + +2015-06-03: Fixed Oasis-related linking problem (again). + +2015-05-31: Fixed offset calculation bugs for certain default argument + combinations. + + Thanks to Chris Hardin for the first + patch. + +2015-03-16: Added support for the general Schur factorization for both real + and complex numbers: + + * gees + + Thanks to Florent Hoareau for this + contribution. + +2014-10-22: Fixed string handling for new OCaml version 4.02 (String/Bytes + modules). Requires new findlib version (>= 1.5). + +2014-10-02: Improved separate compilation and executable sizes when compiling + with OCaml 4.02. Added some support for continuous integration + with Travis. + + Thanks to Christophe Troestler + for the improvements. + +2014-07-01: Switched version control repository to GitHub. + +2014-05-23: Improved library packing, renamed internal modules, and removed + superfluous Real/Complex IO-modules. + + Thanks to Christophe Troestler + for the improvements. + +2014-05-11: Fixed linking on Mac OS X Mavericks using the Accelerate framework. + +2013-12-12: Added new functions: + + * Vec.add_const + * Mat.add_const + +2013-10-08: Added new functions: + + * Mat.sum + * Mat.fill (more flexible than the Bigarray fill-function) + +2013-10-02: Added new function: + + * Vec.fill (more flexible than the Bigarray fill-function) + +2013-09-15: Added new functions: + + * Vec.zpxy (useful for convolutions) + * Vec.zmxy (useful for convolutions) + + Made Vec.reci work with complex numbers. + +2012-01-17: Improved build file generation to avoid regenerating + build files during the development process, which would clobber + the VCS changelog. The build files will now be rebuilt manually + before a release. + + Added more examples from NAG (Numerical Algorithm Group): + + http://www.nag.com/lapack-ex/node3.html + + Thanks to Christophe Troestler + for the examples and improvements. + +2012-12-20: Fixed a bug in vector functions in the handling of offsets and + increments. Minor fixes and cleanups. Documentation improvements. + +2012-11-09: Added new functions: + + * Vec.{reci,exp,log,sin,cos} (for real numbers) + +2012-07-20: Downgraded findlib version constraint to support the Debian + testing branch. + +2012-07-15: Minor release version 7.0.2: + + * Rewrote README in Markdown + * Added stricter compilation flags + * Fixed minor bugs discovered due to improved warnings + +2012-06-11: Fixes for the upcoming OCaml 4.00 release. + +2012-04-30: New major release version 7.0.0. + + 1) Changed "*int_vec" to "*int32_vec" in module Common. + 2) Added Vec.sort. + 3) Documentation improvements. + + Thanks to Christophe Troestler + for most changes. + +2012-02-28: Previous configuration bug fix did not work, but should now + +2012-02-24: Fixed a configuration bug on non-Linux Unix-platforms that + prevented corrected linking. + +2012-02-01: New major release version 6.0.0. + + 1) Switched build process to Oasis + 2) Removed module Impl in favor of a flat module hierarchy + + As a consequence of 2) instead of the following: + + open Lacaml.Impl.D + + The new way of opening double-precision functions is: + + open Lacaml.D + +2011-08-09: Fixed a bug in the work space calculation of sbev. + + Thanks to Yichen Xie for contributing + this function. + +2011-06-25: Added new function: + + * sbev + + Thanks to Christophe Troestler + for contributing this function. + +2011-03-23: Greatly improved API documentation. + + Thanks to Christophe Troestler + for contributing this large patch. + + Renamed a function for consistency. This breaks + backward-compatibility, but is unlikely to affect anybody so no + major release: + + * Common.mat_of_vec -> Common.mat_from_vec + +2010-11-21: Added new function: + + * sbgv + + Thanks to Christophe Troestler + for contributing this function. + +2009-10-03: Minor API change. + + trmm and trsm now have a similar API wrt. variable labeling. + +2009-09-21: Added new functions: + + * ormqr + * trsm + * Mat.scal_rows + +2009-09-16: Added new functions: + + * sygv + + Thanks to Christophe Troestler + for contributing sygv. + + * orgqr + * lauum + + Added example for QR-factorization. + +2009-09-09: Fixed performance bugs. + + Some matrix and vector types were polymorphic, thus + leading to much worse element access speed. + + Improved compiler selection in Makefile. + + Improved some matrix operations. + + Added new function: + + * Mat.transpose_copy + +2009-06-13: Added new function: + + * Mat.as_vec + +2009-06-12: Added new function: + + * tbtrs (all numbers) + + Thanks to Sam Ehrlichman + for contributing the patch. + +2009-06-07: Added workaround for OCaml performance bug wrt. bigarray + access. This should make OCaml code perform much faster when + accessing or modifying bigarrays directly. + + Changed API for Mat.scal_cols by swapping matrix and vector + argument. + +2009-06-01: New vector functions: + + * Vec.sqrt (compute square roots of a vector) + * Vec.sqr (compute squares of a vector) + +2009-05-30: Major overhaul: + + Fixed too liberal transpose parameters in some functions. + The conjugate transpose was not available in some. + + Make convenience definitions for pp_num, pp_vec, pp_mat + available on opening Lacaml.Impl.{S,D,C,Z} to be able + to print more generically. + + Added new functions: + + * dotu (for complex numbers) + * dotc (for complex numbers) + * ger (all numbers) + * lassq + * Mat.syrk_trace + * Mat.symm2_trace + + Fixed some functions to allow for complex multipliers: + gemv, gbmv, symv, gemm, symm, trmm, syrk, syr2k. + + Added new "stable" flag to Vec.sqr_nrm2 for over/underflow + protection. + + Some internal improvements to make adding functionality + even easier and to improve performance and numeric + stability. + +2009-05-16: Added new function: + + * Mat.syrk_diag + + Renamed functions and changed API: + + * Mat.prod_diag -> Mat.gemm_diag + * Mat.prod_trace -> Mat.gemm_trace + +2009-05-03: Added new functions: + + * Vec.neg + + Thanks to Christophe Troestler + for contributing the patch. + +2009-04-28: Added new functions: + + * Mat.prod_diag + * Mat.prod_trace + +2009-04-25: Major API changes: + + Removed function: + + * Mat.copy (use lacpy instead) + + Modified function: + + * geev (differently named arguments) + + Added functions: + + * lacpy (also copies triangular matrices) + * larnv (random number generation) + + Fixed Mac OS X build problems. + + Lots of internal cleanups. + +2009-04-23: Improved numerical stability of Vec.ssqr for real numbers + and zero mean. + +2009-04-22: Added new matrix function: + + * scal_cols + +2009-01-21: Added `Vec.sqr_nrm2`, which is numerically more stable than + Vec.ssqr. Added nrm2 for complex numbers (BLAS-1 function). + +2009-01-14: Greatly improved defaults for printing in toplevels. + +2009-01-13: Added context printing options to matrices. This feature + allows human-readable printing of matrices by emitting specified + horizontal and vertical contexts. + +2008-11-12: Improved Windows portability. + +2008-11-10: Fixed dynamic linking problem on Mac OS X. + +2008-11-02: Added new BLAS functions: + + * tpmv + * tpsv + +2008-11-01: Added new BLAS function: + + * syr2k + +2008-10-30: Added new BLAS function: + + * trsv + +2008-10-26: Added two new matrix functions: + + * packed + * unpacked + +2008-10-15: Added new LAPACK function: + + * geqrf + +2008-09-21: Added new BLAS and LAPACK functions: + + * trmm + * trtrs + * trtri + + Some minor API cleanups and internal improvements. + +2008-09-17: Added optional jitter argument to potrf, potrs, and potri. + +2008-09-08: *** WARNING *** + + potri and potrs now implicitly call potrf by default. This + will break previous code depending on these functions, but + should be trivial to fix. This change was necessary, because + otherwise switching between sytri/potri and sytrs/potrs would + cause surprises: the purely symmetric functions do already + implicitly call the factorization unless a default parameter + (ipiv) is overridden. + + Sorry for the inconvenience. + +2008-07-21: Generalized Mat.transpose to support specifying sub-matrices. + +2008-04-23: Fixed a parameter checking bug for syevr-related functions. + +2008-04-11: Added new BLAS function: + + * trmv + + Thanks to Martin Willensdorfer for the patch. + +2008-02-13: Fixed a bug when implicitly allocating result matrices + with user-specified offsets. It may cause segfaults and + affects a lot of functions (though infrequently so). + + Thanks to Shun Sakuraba for + contributing this patch. + +2008-01-11: Fixed installation of new release. Added new function: + + * Mat.detri + +2008-01-02: New major release due to restructuring. The library is now + packed into a separate namespace (Lacaml), and the previous + Lacaml-module is now called "Impl". + +2007-12-27: Added new BLAS function: + + * symv + +2007-11-22: Added Mat.scal and Mat.axpy. + +2007-11-21: Fixed a bug in vector iteration functions related to + negative index increments. Thanks to Fabrice Pardo + for reporting. + + Greatly improved performance of matrix copying. Cleaned up + some code. Removed dependency on F2C library (gfortran + linked implicitly). + +2007-03-30: Added `lacaml_utils` to installed interfaces. + +2007-03-28: Fixed potential GC-bugs. Updated OCamlMakefile. + +2006-11-22: Updated OCamlMakefile. + +2006-09-15: Fixed bug on 64bit architectures: Fortran integers are + 32bit, Lacaml did not account for that. + +2006-07-24: Tightened parameter checks on functions that accept square + matrices to prevent LAPACK from complaining (i.e. raise + OCaml exceptions instead). + +2006-07-06: Added Vec.concat. + +2006-06-08: Fixed some GC-bugs. Cleaned up C-code. + +2006-01-21: Updated copy of f2c.h to fix size-related bugs on AMD64. + Fixed some warnings introduced by OCaml-3.09. + +2006-01-18: Fixed a bug in pbsv and sbmv. + + Thanks to Christophe Troestler + for contributing the patch. + +2006-01-16: Updated OCamlMakefile. + +2005-12-09: Fixed an installation problem on Darwin. + +2005-10-06: Fixed META-file for better integration with the + OCaml-toplevel. + + Added new function: + + * Mat.copy_row + +2005-09-22: Added new function: + + * Mat.to_col_vecs + +2005-09-21: Added new function: + + * Vec.random (for both real and complex numbers) + +2005-08-24: Added a new function: + + * Vec.append + +2005-07-15: Fixed two documentation generation bugs. + +2005-07-14: Major release (version 3). + + Normalized, simplified, and documented API. + + ATTENTION: THE ORDER OF VECTOR ARGUMENTS TO FUNCTION AXPY + HAS CHANGED, AND PARAMETER X HAS A LABEL. IF YOUR COMPILER + DOES NOT COMPLAIN ABOUT MISSING LABELS, YOUR PROGRAM WILL + COMPILE BUT PRODUCE WRONG RESULTS. ALWAYS LABEL PARAMETER + X FOR AXPY, WHICH IS ALSO MUCH MORE READABLE. + + New LAPACK-function: + + * gesvd for complex numbers + + Thanks to Egbert Ammicht for + this contribution. + + Added specific build rules for MacOS X. Thanks to Patrick + Cousot for this contribution. + +2005-06-20: Relaxed a runtime check in gemm to let the user specify + his own "k"-value. + +2005-06-17: New LAPACK-functions: + + * syevr + * lamch + + New functions in Mat-module: + + * random + + Added pretty-printer for integer vectors to printers + installed in the toplevel. + +2005-06-15: Fixed a supposedly rare bug in gesvd and gesdd. + + Changed interface of all gels?_min_lwork functions for more + understandable, safer usage. + +2005-06-14: New LAPACK-function: + + * gesdd + +2005-06-08: New LAPACK-function: + + * syevd + +2005-06-06: Tightened parameter checks for printing matrices and vectors. + +2005-06-03: Fixed a bug in `mvec_of_array` (degenerate case when array + has zero length). + +2005-05-31: Fixed a couple of GC-related bugs pointed out by Saffire (an + FFI-type checker). + +2005-05-27: New function in Mat-module: + + * mvec_to_array + +2005-05-17: Changed interface of swap-function to avoid parameter confusions. + +2005-05-13: Added pretty-printing for int-bigarrays. + +2005-05-12: Further regularisation of pretty-printing module. + +2005-05-11: Greatly regularized pretty-printing module. + +2005-04-05: Improved pretty-printing functions to allow for printing + labels. + +2005-03-28: Fixed a bug in `Mat.of_col_vecs`. + +2005-03-28: New functions in Mat-module: + + * of_col_vecs + +2005-03-23: Added a toplevel-specific module for installing + pretty-printers, which is automatically loaded when requiring + the library in the toplevel. + +2005-03-22: Added a new constant parameter to function `Vec.ssqr_diff`. + +2005-03-10: New functions in Mat-module: + + * mvec_of_array + * from_col_vec + * from_row_vec + + Slightly improved some examples. + +2005-03-03: Improved pretty-printing functions. + + Changed examples to make use of new pretty-printing + functions. + + Fixed severe bugs (uninitialized data) in some functions. + +2005-03-02: Updated contact + copyright information. + + Updated OCamlMakefile. + + Fixed a bug in the gelsX-functions. + + Added module Lacaml_io for printing matrices and vectors + in convenient ways. + + New functions in Mat-module: + + * copy + * of_diag + * col + * transpose + * fold_cols + + New functions in Vec-module: + + * to_array + * of_list + * to_list + * rev + +2004-11-13: Added new LAPACK-function for singular value decomposition + (SVD): + + * gesvd + + Thanks to Liam Stewart for this + contribution. + +2004-08-05: Renamed a constant to prevent potential name clashes on + Mac OS X. + +2004-08-02: Fixed a severe thread-related bug. The attribute "noalloc" + is incompatible with external functions that make use of + `caml_enter_blocking_section`. + +2004-08-01: New matrix function: + + * map + + Thanks to Liam Stewart again for + his help. + +2004-07-23: Major feature additions. + + New LAPACK- and BLAS-functions (computational routines): + + * syr, syrk + * lansy + * sytrf, sytrs, sytri, sycon + * getrs + * potrs + + Thanks to Liam Stewart again for this + major contribution. + +2004-07-15: Major feature additions. + + New LAPACK- and BLAS-functions (computational routines): + + * gecon + * pocon + * gemm + * symm + * lange + * getrf + * getri + * potrf + * potri + + Thanks to Liam Stewart for this + major contribution. + +2004-07-15: Upgraded some internal functions as suggested by OCaml-3.08. + + Minor improvements to examples. + + New matrix function: + + * Mat.of_array + + Updated OCamlMakefile. + +2004-07-04: Moved gelss-function from SDCZ to SD-code. + Interfaces to complex code (CZ) are not compatible. + + Thanks to Liam Stewart for pointing + this out. + + Updated OCamlMakefile. + +2004-04-27: Updated OCamlMakefile. + +2004-03-16: Fixed a small compilation problem. + + Updated OCamlMakefile. + +2004-02-27: Fixed a minor problem with external functions returning + type unit. Added "CAMLprim" to all C-stubs. + + Fixed too tight type restrictions of axpy. + + Corrected error locations. + + Tightened some parameter checks, and made them more modular. + + Changed function interfaces (not backward compatible): + + * Mat.init_row + * Mat.init_col + + Changed the "trans"-parameter in some functions from + a boolean to type "trans2" or "trans3", which consist of + constructors "`N", "`T", "`C" depending on them making + sense in this context. + + New matrix functions: + + * Mat.dim1 + * Mat.dim2 + + New vector functions: + + * Vec.dim + * Vec.init + * Vec.of_array + * Vec.logspace + + New LAPACK function: + + * geev (General algorithm for solving eigenproblems) + This function was initially contributed by Oleg Trott + . + + Removed obsolete file myXerbla.c. + + Cleaned up examples. + + Improved documentation a bit. + +2004-02-21: Added CAMLprim in the C-interface where appropriate. + +2004-01-31: Added Makefile.conf again for more understandable installation. + + Added new functions for matrix creation: + + * diag + * hankel + * pascal + * rosser + * toeplitz + * vandermonde + * wilkinson + + Made Vec.min and Vec.max use the 2-norm for comparison. + Removed a superfluous debug statement. + Updated OCamlMakefile. + +2003-12-19: Fixed a severe bug in Vec.fold. + + Improved element-wise vector division (prevent overflow). + + Added two functions for generating matrices: + + * init_rows + * init_cols + + Improved functionality of Vec.iter and Vec.iteri. + +2003-12-18: Update to allow shared libraries. + +2003-12-16: Changed Fortran error handling to catch invalid arguments + that OCaml did not detect. + +2003-12-15: Fixed a bug in the examples (`lin_eq`). + +2003-12-14: Changed the signature of a couple of functions: non-optional + arguments that are overwritten and represent the result of + the function not returned anymore (unit-functions). + + Relaxed the conditions of the license to allow static + linking. + +2003-12-12: Released new major version. Please note new module names. + + Added support for complex transforms. + Allow accessing submatrices using labels. + + Updated OCamlMakefile. + Changed stub names (invisible to user). + +2003-01-07: Updated OCamlMakefile to make use of "findlib". + +2002-09-12: Updated OCamlMakefile and license. + + Documented all modules for use with ocamldoc. + +2002-07-24: Incorporated further extensions by Christophe Troestler. + + Fixed a couple of C-compiler warnings (pedantic mode). + +2002-07-16: Fixed potential problem with threads and GC. + +2002-07-12: Added loads of new LAPACK- and BLAS-functions. + + Thanks to Christophe Troestler + for this major contribution. + +2002-07-03: Small fix in wrong type declaration in C-code (has no effect + at runtime). + +2002-05-05: Updated OCamlMakefile. + +2002-05-04: Revised the whole installation procedure. See INSTALL for + details. + +2002-04-30: Updated OcamlMakefile: it does not ask for confirmation + during installation anymore. + +2002-04-23: Added the file "f2c.h" to the distribution so that people + don't have to install it. + +2002-02-10: Removed project from Sourceforge for simpler maintainance. + +2002-01-04: Changed the example a little bit to show users functionality + from module `Vec_D` (i.e. basic vector operations). + +2002-01-02: Removed two more unneeded object files from the f2c-library. + (Thanks to John Malecki for the hint!). + +2001-09-06: Removed labels referring to standard library modules from the + implementation: deprecated in the next OCaml-release. + +2001-06-30: Removed "Printexc.catch" from `lin_reg`-example: is going to be + deprecated in upcoming OCaml-release. + + Bumped major version number: the existing functionality of + the library seems stable enough. + +2001-04-03: Minor change to make the code compile in label mode. + +2001-03-30: Added annotation "noalloc" to some functions. + This lets OCaml slightly improve efficiency of function calls. + +2001-02-21: Updated README. + +2001-02-20: Added checks for increment-parameters: this prevents segfaults if + the user passes invalid arguments. + + Added new module "vec_SD.ml" and supplementary C-files for + (non-BLAS) vector operations. It implements "ssqr", "add", "sub", + "mul", "div" and "ssqr_diff" (see module interface for + documentation). + +2001-02-09: Added "asum"-function from BLAS. + +2001-02-08: Added "copy"- and "dot"-functions from BLAS and restructered + the code a bit to make it more extendable. + +2001-01-24: First release. +``` diff --git a/pre-v10.0.0-CHANGES.txt b/pre-v10.0.0-CHANGES.txt deleted file mode 100644 index c87dd7f..0000000 --- a/pre-v10.0.0-CHANGES.txt +++ /dev/null @@ -1,949 +0,0 @@ -2017-06-28: Release version 10.0.0: - - Dropped label used by trmm and trsm for overall API consistency. - -2017-05-23: Release version 9.3.2: - - Fixed the API of ger and syr. These functions now don't - return the modified matrix anymore. This makes more sense, - because addition to the updated matrix is an intrinsic part of - these operations. You cannot use them to initialize a freshly - allocated matrix. This change can break some code (presumably - rare), but is trivial to fix. - -2017-05-03: Internalized some modules to improve type error messages in user - code. - - Thanks to Christophe Troestler - for the improvements! - -2017-03-09: Fixed bug in Vec.acos (affects bytecode applications only). - -2017-01-18: Minor release version 9.2.1: - - Added more functions: - - * Vec.has_zero_dim - * Mat.has_zero_dim - - Added missing checks for empty vectors and matrices to prevent - BLAS functions from exiting the program. - -2016-07-12: Minor release version 9.1.1: - - Fixed FreeBSD linking problem. - - Thanks to Mykola Stryebkov for the patch! - -2016-07-06: Minor release version 9.1.0: - - More functions from the C standard library (math.h): - - * Vec/Mat.cbrt - * Vec/Mat.log2 - * Vec/Mat.round - * Vec/Mat.trunc - - Improved some operations that can exploit fused multiply-add (FMA). - -2016-04-01: Major release version 9.0.0: - - Added numerous portable vector and matrix functions from the - C standard library (math.h): - - * Vec/Mat.exp2 - * Vec/Mat.log10 - * Vec/Mat.asin - * Vec/Mat.acos - * Vec/Mat.atan - * Vec/Mat.sinh - * Vec/Mat.cosh - * Vec/Mat.tanh - * Vec/Mat.asinh - * Vec/Mat.acosh - * Vec/Mat.atanh - * Vec/Mat.floor - * Vec/Mat.ceil - * Vec/Mat.erf - * Vec/Mat.erfc - * Vec/Mat.pow - * Vec/Mat.atan2 - * Vec/Mat.hypot - - Added some additional missing vector and matrix functionality: - - * Vec/Mat.signum - * Vec/Mat.min2 - * Vec/Mat.max2 - * Vec/Mat.logistic - * Vec/Mat.relu - * Vec/Mat.softplus - * Vec/Mat.softsign - * Vec/Mat.log_sum_exp - -2016-04-01: Minor release version 8.1.0: - - * Added Vec.abs and Mat.abs (for real numbers only for now) - -2016-03-03: Minor release version 8.0.7: - - * Fixed offset checking bugs - -2016-02-24: Minor release version 8.0.6: - - * Fixed Mat.of_diag matrix initialization bug - - Thanks to Leonid Rozenberg for the patch! - -2016-02-18: Minor release version 8.0.5: - - * Fixed incorrect comments that made ocamldoc fail, thus - preventing the generation of API documentation - -2016-02-14: Minor release version 8.0.4: - - * Fixed a matrix bounds checking bug - - * Fixed several build issues for backward compatibility with - OCaml versions < 4.1 - -2016-02-12: Major release version 8.0.0: - - * Added types Vec.t and Mat.t - - * Substantial changes to vector and matrix parameter checking - code, which should fix some corner case bugs and make the - checks more reusable outside of Lacaml - - * Added new vector functions - - * sqr, sqrt, exp, log, sin, cos, tan, tanh - * zpxy, zmxy - * swap - * tan, tanh - * expm1, log1p - - * Added new matrix functions - - * of_list, to_list - * of_col_vecs_list, to_col_vecs_list - * laswp and lapmt - * neg, reci, sqr, sqrt, exp, log, sin, cos, tan, tanh - * cpab, cmab - * swap - * add, sub, mul, div - * ssqr_diff - - * Replaced Mat.transpose with Mat.transpose_copy and changed - documented behavior - - * Improved API of Mat.of_diag and Mat.copy_diag - - * Miscellaneous bug fixes and improvements - -2015-07-01: Fixed a bug in the complex version of Vec.ssqr_diff. - - Thanks to Akinori Abe for the patch! - -2015-06-30: Fixed Oasis-related linking problem (again). - - Really annoying, but Oasis still generates code that prevents - proper linking. - -2015-06-29: Improved portability to some Linux-platforms. - - Thanks to Akinori Abe for the patch! - -2015-06-03: Fixed Oasis-related linking problem (again). - -2015-05-31: Fixed several offset calculation bugs for certain default - argument combinations. - - Thanks to Chris Hardin for the first - patch! - -2015-03-16: Added support for the general Schur factorization for both real - and complex numbers: - - * gees - - Thanks to Florent Hoareau for this - contribution! - -2014-10-22: Fixed string handling for new OCaml version 4.02 (String/Bytes - modules). Requires new findlib version (>= 1.5). - -2014-10-02: Improved separate compilation and executable sizes when compiling - with OCaml 4.02. Added some support for continuous integration - with Travis. - - Thanks to Christophe Troestler - for the improvements! - -2014-07-01: Switched version control repository to GitHub. - -2014-05-23: Improved library packing, renamed internal modules, and removed - superfluous Real/Complex IO-modules. - - Thanks to Christophe Troestler - for the improvements! - -2014-05-11: Fixed linking on Mac OS X Mavericks using the Accelerate framework. - -2013-12-12: Added new functions: - - * Vec.add_const - * Mat.add_const - -2013-10-08: Added new functions: - - * Mat.sum - * Mat.fill (more flexible than the Bigarray fill-function) - -2013-10-02: Added new function: - - * Vec.fill (more flexible than the Bigarray fill-function) - -2013-09-15: Added new functions: - - * Vec.zpxy (useful for convolutions) - * Vec.zmxy (useful for convolutions) - - Made Vec.reci work with complex numbers. - -2012-01-17: Improved build file generation to avoid regenerating - build files during the development process, which would clobber - the VCS changelog. The build files will now only be rebuilt - manually shortly before a release. - - Added numerous examples from NAG (Numerical Algorithm Group): - - http://www.nag.com/lapack-ex/node3.html - - Thanks to Christophe Troestler - for the examples and improvements! - -2012-12-20: Fixed a bug in vector functions concerning the handling of - offsets and increments. Minor fixes and cleanups. Documentation - improvements. - -2012-11-09: Added new functions: - - * Vec.{reci,exp,log,sin,cos} (currently for real numbers only) - -2012-07-20: Downgraded findlib version requirement to support the Debian - testing branch. - -2012-07-15: Minor release version 7.0.2: - - * Rewrote README in Markdown - * Added stricter compilation flags - * Fixed a few minor bugs discovered due to improved warnings - -2012-06-11: Several fixes for the upcoming OCaml 4.00 release. - -2012-04-30: New major release version 7.0.0! - - 1) Changed "*int_vec" to "*int32_vec" in module Common. - 2) Added Vec.sort. - 3) Documentation improvements. - - Thanks to Christophe Troestler - for most changes! - -2012-02-28: Previous configuration bug fix did not work correctly, should - be solved now. - -2012-02-24: Fixed a configuration bug on non-Linux Unix-platforms that - prevented corrected linking. - -2012-02-01: New major release version 6.0.0! - - 1) Switched build process to Oasis - 2) Removed module Impl in favor of a flat module hierarchy - - As a consequence of 2) instead of the following: - - open Lacaml.Impl.D - - The new way of opening double-precision functions is: - - open Lacaml.D - -2011-08-09: Fixed a bug in the work space calculation of sbev. - - Thanks to Yichen Xie for contributing - this function! - -2011-06-25: Added new function: - - * sbev - - Thanks to Christophe Troestler - for contributing this function! - -2011-03-23: Greatly improved API documentation. - - Thanks to Christophe Troestler - for contributing this large patch! - - Renamed a function for consistency. This breaks - backward-compatibility, but is extremely unlikely to affect - anybody so no major release: - - * Common.mat_of_vec -> Common.mat_from_vec - -2010-11-21: Added new function: - - * sbgv - - Thanks to Christophe Troestler - for contributing this function! - -2009-10-03: Minor API change. - - trmm and trsm now have a similar API wrt. variable labeling. - -2009-09-21: Added new functions: - - * ormqr - * trsm - * Mat.scal_rows - -2009-09-16: Added new functions: - - * sygv - - Thanks to Christophe Troestler - for contributing sygv! - - * orgqr - * lauum - - Added example for QR-factorization. - -2009-09-09: Fixed a few performance bugs. - - Some matrix and vector types were polymorphic, thus - leading to much worse element access speed. - - Improved compiler selection in Makefile. - - Improved some matrix operations. - - Added new function: - - * Mat.transpose_copy - -2009-06-13: Added new function: - - * Mat.as_vec - -2009-06-12: Added new function: - - * tbtrs (all numbers) - - Thanks to Sam Ehrlichman - for contributing the patch! - -2009-06-07: Added workaround for OCaml performance bug wrt. bigarray - access. This should make OCaml code perform much faster when - accessing or modifying bigarrays directly. - - Changed API for Mat.scal_cols by swapping matrix and vector - argument. - -2009-06-01: New vector functions: - - * Vec.sqrt (compute square roots of a vector) - * Vec.sqr (compute squares of a vector) - -2009-05-30: Major overhaul: - - Fixed too liberal transpose parameters in several - functions. The conjugate transpose was not available - in some. - - Make convenience definitions for pp_num, pp_vec, pp_mat - available on opening Lacaml.Impl.{S,D,C,Z} to be able - to print more generically. - - Added new functions: - - * dotu (only for complex numbers) - * dotc (only for complex numbers) - * ger (all numbers) - * lassq - * Mat.syrk_trace - * Mat.symm2_trace - - Fixed several functions to allow for complex multipliers: - gemv, gbmv, symv, gemm, symm, trmm, syrk, syr2k. - - Added new "stable" flag to Vec.sqr_nrm2 if over/underflow - protection is required. - - Numerous internal improvements to make adding functionality - even easier and to improve performance and numeric - stability. - -2009-05-16: Added new function: - - * Mat.syrk_diag - - Renamed functions and changed API: - - * Mat.prod_diag -> Mat.gemm_diag - * Mat.prod_trace -> Mat.gemm_trace - -2009-05-03: Added new functions: - - * Vec.neg - - Thanks to Christophe Troestler - for contributing the patch! - -2009-04-28: Added new functions: - - * Mat.prod_diag - * Mat.prod_trace - -2009-04-25: Major API changes: - - Removed function: - - * Mat.copy (use lacpy instead) - - Modified function: - - * geev (differently named arguments) - - Added functions: - - * lacpy (also copies triangular matrices) - * larnv (random number generation) - - Fixed Mac OS X build problems. - - Lots of internal cleanups. - -2009-04-23: Improved numerical stability of Vec.ssqr for real numbers - and zero mean. - -2009-04-22: Added new matrix function: - - * scal_cols - -2009-01-21: Added Vec.sqr_nrm2, which is numerically more stable than - Vec.ssqr. Added nrm2 for complex numbers (BLAS-1 function). - -2009-01-14: Greatly improved defaults for printing in toplevels. - -2009-01-13: Added context printing options to matrices. This feature - allows human-readable printing of huge matrices by only - emitting specified horizontal and vertical contexts. - -2008-11-12: Improved Windows portability. - -2008-11-10: Fixed dynamic linking problem on Mac OS X. - -2008-11-02: Added new BLAS functions: - - * tpmv - * tpsv - -2008-11-01: Added new BLAS function: - - * syr2k - -2008-10-30: Added new BLAS function: - - * trsv - -2008-10-26: Added two new matrix functions: - - * packed - * unpacked - -2008-10-15: Added new LAPACK function: - - * geqrf - -2008-09-21: Added new BLAS and LAPACK functions: - - * trmm - * trtrs - * trtri - - Some minor API cleanups and internal improvements. - -2008-09-17: Added optional jitter argument to potrf, potrs, and potri. - -2008-09-08: !!! WARNING WARNING WARNING WARNING WARNING WARNING WARNING !!! - - potri and potrs now implicitly call potrf by default! - This will break previous code depending on these functions, - but should be trivial to fix. This change was deemed - necessary, because otherwise switching between sytri/potri - and sytrs/potrs would cause surprises: the purely symmetric - functions do already implicitly call the factorization - unless a default parameter (ipiv) is overridden. - - Sorry for the inconvenience. - -2008-07-21: Generalized Mat.transpose to support specifying sub-matrices. - -2008-04-23: Fixed a parameter checking bug for syevr-related functions. - -2008-04-11: Added new BLAS function: - - * trmv - - Thanks to Martin Willensdorfer for the patch! - -2008-02-13: Fixed a bug when implicitly allocating result matrices - with user-specified offsets. It may cause segfaults and - affects many functions (though it is presumably very rarely - triggered). - - Thanks to Shun Sakuraba for - contributing this patch! - -2008-01-11: Fixed installation of new release. Added new function: - - * Mat.detri - -2008-01-02: New major release due to restructuring. The library is now - packed into a separate namespace (Lacaml), and the previously - visible Lacaml-module is now called "Impl". - -2007-12-27: Added new BLAS function: - - * symv - -2007-11-22: Added Mat.scal and Mat.axpy. - -2007-11-21: Fixed a bug in vector iteration functions related to - negative index increments. Thanks to Fabrice Pardo - for reporting! - - Greatly improved performance of matrix copying. Cleaned up - some code. Removed dependency on F2C library (gfortran - should nowadays be linked implicitly). - -2007-03-30: Added lacaml_utils to installed interfaces. - -2007-03-28: Fixed potential GC-bugs. Updated OCamlMakefile. - -2006-11-22: Updated OCamlMakefile. - -2006-09-15: Fixed bug on 64bit architectures: Fortran integers are - 32bit only, Lacaml did not account for that. - -2006-07-24: Tightened parameter checks on functions that accept square - matrices only to prevent LAPACK from complaining (i.e. raise - OCaml exceptions instead). - -2006-07-06: Added Vec.concat. - -2006-06-08: Fixed some GC-bugs. Cleaned up C-code. - -2006-01-21: Updated copy of f2c.h to fix size-related bugs on AMD64. - Fixed some warnings introduced by OCaml-3.09. - -2006-01-18: Fixed a bug in pbsv and sbmv. - - Thanks to Christophe Troestler - for contributing the patch! - -2006-01-16: Updated OCamlMakefile. - -2005-12-09: Fixed an installation problem on Darwin. - -2005-10-06: Fixed META-file for better integration with the - OCaml-toplevel. - - Added new function: - - * Mat.copy_row - -2005-09-22: Added new function: - - * Mat.to_col_vecs - -2005-09-21: Added new function: - - * Vec.random (for both real and complex numbers) - -2005-08-24: Added a new function: - - * Vec.append - -2005-07-15: Fixed two documentation generation bugs. - -2005-07-14: Major release (version 3)! - - The API has been significantly normalized, simplified and - documented to make its use more convenient. - - ATTENTION: THE ORDER OF VECTOR ARGUMENTS TO FUNCTION AXPY - HAS CHANGED, AND PARAMETER X IS LABELED. IF YOUR COMPILER - DOES NOT COMPLAIN ABOUT MISSING LABELS, YOUR PROGRAM WILL - COMPILE BUT PRODUCE WRONG RESULTS. ALWAYS LABEL PARAMETER - X FOR AXPY, WHICH IS ALSO MUCH MORE READABLE. - - New LAPACK-function: - - * gesvd for complex numbers - - Thanks to Egbert Ammicht for - this contribution! - - Added specific build rules for MacOS X. Thanks to Patrick - Cousot for this contribution! - -2005-06-20: Relaxed a runtime check in gemm to let the user specify - his own "k"-value. - -2005-06-17: New LAPACK-functions: - - * syevr - * lamch - - New functions in Mat-module: - - * random - - Added pretty-printer for integer vectors to printers - installed in the toplevel. - -2005-06-15: Fixed a supposedly very rare bug in gesvd and gesdd. - - Changed interface of all gels?_min_lwork functions for more - understandable, safer usage. - -2005-06-14: New LAPACK-function: - - * gesdd - -2005-06-08: New LAPACK-function: - - * syevd - -2005-06-06: Tightened parameter checks for printing matrices and vectors. - -2005-06-03: Fixed a bug in mvec_of_array (degenerate case when array - has zero length). - -2005-05-31: Fixed a couple of GC-related bugs pointed out by Saffire (an - FFI-type checker). - -2005-05-27: New function in Mat-module: - - * mvec_to_array - -2005-05-17: Changed interface of swap-function to avoid parameter confusions. - -2005-05-13: Added pretty-printing for int-bigarrays. - -2005-05-12: Further regularisation of pretty-printing module. - -2005-05-11: Greatly regularized pretty-printing module. - -2005-04-05: Improved pretty-printing functions to allow for printing - labels. - -2005-03-28: Fixed a bug in Mat.of_col_vecs. - -2005-03-28: New functions in Mat-module: - - * of_col_vecs - -2005-03-23: Added a toplevel-specific module for installing - pretty-printers, which is automatically loaded when requiring - the library in the toplevel. - -2005-03-22: Added a new constant parameter to function Vec.ssqr_diff. - -2005-03-10: New functions in Mat-module: - - * mvec_of_array - * from_col_vec - * from_row_vec - - Slightly improved some examples. - -2005-03-03: Improved pretty-printing functions. - - Changed examples to make use of new pretty-printing - functions. - - Fixed some severe bugs (uninitialized data!) in several - functions. - -2005-03-02: Updated contact + copyright information. - - Updated OCamlMakefile. - - Fixed a bug in the gelsX-functions. - - Added module Lacaml_io for printing matrices and vectors - in convenient ways. - - New functions in Mat-module: - - * copy - * of_diag - * col - * transpose - * fold_cols - - New functions in Vec-module: - - * to_array - * of_list - * to_list - * rev - -2004-11-13: Added new LAPACK-function for singular value decomposition - (SVD): - - * gesvd - - Thanks to Liam Stewart for this - contribution! - -2004-08-05: Renamed a constant to prevent potential name clashes on - Mac OS X. - -2004-08-02: Fixed a severe thread-related bug. The attribute "noalloc" - cannot be used with external functions that make use of - "caml_enter_blocking_section". - -2004-08-01: New matrix function: - - * map - - Thanks to Liam Stewart again for - his help! - -2004-07-23: Major feature additions. - - New LAPACK- and BLAS-functions (mostly computational routines): - - * syr, syrk - * lansy - * sytrf, sytrs, sytri, sycon - * getrs - * potrs - - Thanks to Liam Stewart again for this - huge contribution! - -2004-07-15: Major feature additions. - - New LAPACK- and BLAS-functions (mostly computational routines): - - * gecon - * pocon - * gemm - * symm - * lange - * getrf - * getri - * potrf - * potri - - Thanks to Liam Stewart for this - huge contribution! - -2004-07-15: Upgraded some internal functions as suggested by OCaml-3.08. - - Minor improvements to examples. - - New matrix function: - - * Mat.of_array - - Updated OCamlMakefile. - -2004-07-04: Moved gelss-function from SDCZ to SD-code only. - Interfaces to complex code (CZ) are not compatible. - - Thanks to Liam Stewart for pointing - this out! - - Updated OCamlMakefile. - -2004-04-27: Updated OCamlMakefile. - -2004-03-16: Fixed a small compilation problem. - - Updated OCamlMakefile. - -2004-02-27: Fixed a minor problem with external functions returning - type unit. Added "CAMLprim" to all C-stubs. - - Fixed too tight type restrictions of axpy. - - Corrected error locations. - - Tightened some parameter checks, and made them more modular. - - Changed function interfaces (not backward compatible): - - * Mat.init_row - * Mat.init_col - - Changed the "trans"-parameter in various functions from - a boolean to type "trans2" or "trans3", which consist of - constructors "`N", "`T", "`C" depending on them making - sense in this context. - - New matrix functions: - - * Mat.dim1 - * Mat.dim2 - - New vector functions: - - * Vec.dim - * Vec.init - * Vec.of_array - * Vec.logspace - - New LAPACK function: - - * geev (General algorithm for solving eigenproblems) - This function was initially contributed by Oleg Trott - . - - Removed obsolete file myXerbla.c. - - Cleaned up examples. - - Improved documentation a bit. - -2004-02-21: Added CAMLprim in the C-interface where appropriate. - -2004-01-31: Added Makefile.conf again for more understandable installation. - - Added new functions for matrix creation: - - * diag - * hankel - * pascal - * rosser - * toeplitz - * vandermonde - * wilkinson - - Made Vec.min and Vec.max use the 2-norm for comparison. - Removed a superfluous debug statement. - Updated OCamlMakefile. - -2003-12-19: Fixed a severe bug in Vec.fold. - - Improved element-wise vector division (prevent overflow). - - Added two functions for generating matrices: - - * init_rows - * init_cols - - Improved functionality of Vec.iter and Vec.iteri. - -2003-12-18: Update to allow shared libraries. - -2003-12-16: Changed Fortran error handling to catch invalid arguments - that OCaml did not detect. - -2003-12-15: Fixed a bug in the examples (lin_eq). - -2003-12-14: Changed the signature of a couple of functions: non-optional - arguments that are overwritten and represent the result of - the function will not be returned anymore (unit-functions). - - Relaxed the conditions of the license to allow static - linking. - -2003-12-12: Released new major version. Please note new module names! - - Added support for complex transforms. - Allow accessing submatrices using labels. - - Updated OCamlMakefile. - Changed stub names (invisible to user). - -2003-01-07: Updated OCamlMakefile to make use of "findlib". - -2002-09-12: Updated OCamlMakefile and license. - - Documented all modules for use with ocamldoc. - -2002-07-24: Incorporated further extensions by Christophe Troestler. - - Fixed a couple of C-compiler warnings (pedantic mode). - -2002-07-16: Fixed potential problem with threads and GC. - -2002-07-12: Added loads of new LAPACK- and BLAS-functions! - - Many thanks to - - Christophe Troestler - - for this major contribution! - -2002-07-03: Small fix in wrong type declaration in C-code (has no effect - at runtime). - -2002-05-05: Updated OCamlMakefile. - -2002-05-04: Revised the whole installation procedure. See INSTALL for - details. - -2002-04-30: Updated OcamlMakefile: it does not ask for confirmation - during installation anymore! - -2002-04-23: Added the file "f2c.h" to the distribution so that people - don't have to install it. - -2002-02-10: Removed project from Sourceforge for simpler maintainance. - -2002-01-04: Changed the example a little bit to show users functionality - from module "Vec_D" (i.e. basic vector operations). - -2002-01-02: Removed two more unneeded object files from the f2c-library. - (Thanks to John Malecki for the hint!). - -2001-09-06: Removed labels referring to standard library modules from the - implementation: will be deprecated in the next OCaml-release. - -2001-06-30: Removed "Printexc.catch" from lin_reg-example: is going to be - deprecated in upcoming OCaml-release. - - Bumped major version number: the existing functionality of - the library seems stable enough. - -2001-04-03: Minor change to make things compile in label mode. - -2001-03-30: Added annotation "noalloc" to functions that benefit from it. - This lets OCaml slightly improve efficiency of function calls. - -2001-02-21: Updated README. - -2001-02-20: Added additional checks for increment-parameters: this - prevents segfaults if the user passes invalid arguments. - - Added new module "vec_SD.ml" and supplementary C-files - for additional (non-BLAS) vector operations. It currently - implements "ssqr", "add", "sub", "mul", "div" and "ssqr_diff" - (see module interface for documentation). - -2001-02-09: Added "asum"-function from BLAS. - -2001-02-08: Added "copy"- and "dot"-functions from BLAS and restructered - the code a bit to make it more extensible. - -2001-01-24: First release.