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.