Skip to content

Latest commit

 

History

History
1109 lines (676 loc) · 30.7 KB

CHANGELOG.md

File metadata and controls

1109 lines (676 loc) · 30.7 KB

Changelog

[Unreleased]

Fixed

  • Switched from C99 to C11 to avoid compilation warnings about atomics.

[11.1.1] - 2024-12-07

Removed

  • Obsolete base-bytes and base-bigarray dependencies.

[11.1.0] - 2024-11-28

Fixed

  • Moved incorrect Bool_val out of blocking section.

Removed

  • -O3, -ffast-math, and -march=native flags due to risk as defaults.

Changed

  • Rewrote README and improved changelog.
  • Reformatted all C-code using clang-format and OCaml code using ocamlformat.

Added

  • GitHub workflow.

[11.0.10] - 2023-05-16

Fixed

  • Platform configuration bug.

[11.0.9] - 2023-05-05

Fixed

  • Bug in bytecode bindings for lamch, affecting syevr.

    Thanks to Philippe Veber [email protected] for the bug report.

Added

  • Support for Apple Silicon.

    Thanks to Marcello Seri [email protected] for this contribution.

Improved

  • Dune build rules.

[11.0.8] - 2020-08-15

Improved

  • Detection of (complex) dotu and dotc calling conventions.

[11.0.7] - 2020-07-30

Removed

  • Package dependencies on stdio and base for OCaml multicore testing.

    Thanks to Anthony Scemama for this contribution.

Added

  • Support for const char strings in stubs due to stricter OCaml runtimes.

[11.0.6] - 2020-01-23

Changed

  • Switched to OPAM file generation via dune-project.

Added

  • Missing autogenerated dependencies to dune file to avoid race conditions.

[11.0.5] - 2019-10-11

Fixed

  • Warnings in C-stubs.

[11.0.4] - 2019-05-21

Fixed

  • API misspecification in ptsv, leading to incorrect results.

    Thanks to Nicolas Ratier [email protected] for the bug report.

[11.0.3] - 2018-12-31

Fixed

  • Portability bug in (complex) dotu and dotc due to BLAS API differences.

[11.0.2] - 2018-10-24

Changed

  • Switched to dune, dune-release, and OPAM 2.0.

[11.0.1] - 2018-05-23

Fixed

  • Warnings and errors in configuration code due to upstream changes.
  • Bug in Vec.ssqr.

[11.0.0] - 2018-02-28

Warning

  • User code changes required for functions potrf, potri, and potrs.

Added

  • Mat.add_const_diag for adding a constant to the diagonal of a matrix.

Changed

  • orgqr now raises an exception if m < n.
  • Improved documentation.
  • Eigenvalue offsets should work now.

[10.0.2] - 2017-11-08

Fixed

  • Bugs accessing lower pentagonal matrix patterns.
  • Library override issue on Mac OS X.

[10.0.1] - 2017-10-21

Fixed

  • Wrongly capitalized build targets missed due to Mac OS X file system case insensitivity.

[10.0.0] - 2017-10-20

Changed

  • Switched to jbuilder and topkg.

Added

  • New functions: Mat.sum_prod.

Improved

  • C-code for better SIMD compiler optimizations.
  • Documentation.
  • Configuration and build process.

Changes Before Version 10.0.0

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 <[email protected]>
             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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]>
             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 <[email protected]>
             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 <[email protected]>
             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 <[email protected]>
             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 <[email protected]> for contributing
             this function.

2011-06-25:  Added new function:

               * sbev

             Thanks to Christophe Troestler <[email protected]>
             for contributing this function.

2011-03-23:  Greatly improved API documentation.

             Thanks to Christophe Troestler <[email protected]>
             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 <[email protected]>
             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 <[email protected]>
             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 <[email protected]>
             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 <[email protected]>
             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 <[email protected]> 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 <[email protected]> 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
             <[email protected]> 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 <[email protected]>
             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 <[email protected]> for
                 this contribution.

             Added specific build rules for MacOS X. Thanks to Patrick
             Cousot <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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
                 <[email protected]>.

             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 <[email protected]>
             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.