Release v0.3 - September 17, 2009

Release v0.3 adds some features, in particular LU and Cholesky decomposition,
matrix exponentials, and random permutations. 

Still no Mac OS X support, though :(


Changes from version v0.2:

- jar file can now contain dynamic as well as static files

- added LAPACK functions [sdcz]geev, [sd]getrf, [sd]potrf

- Added interfaces ConvertsToDoubleMatrix and ConverstToFloatMatrix

- Added class Decompose which provides LUDecomposition (based on getrf),
  and Cholesky decomposition (based on potrf)

- Matrix classes: 
  - Added read-only AbstractList views for elements, rows, and 
    columns for better interfacing with Java's collection API. 
  - Added matrix exponentials based on Pade approximation provided 
    by Jan Saptra Müller. These should be pretty fast!
  - Added prod() which returns the product of all elements.
  - Added project() which projects one vector on another.
  - Added diviRowVector().
  - Added loadCSVFile().

- Added MatrixFunctions.min() and .max() for integers.

- Added Permutations class for generating random permutations and
  subsets based on the algorithms from Knuth's "The Art of Computer
  Programming", Vol. 2.


----------------------------------------------------------------------

Release v0.2 - May 8, 2009

Release v0.2 mostly adds features to the build process and renames some
packages and classes to make the structure simpler. No new significant
functionality has been added.

Changes from version v0.1:

- fixed a bug in DoubleMatrix.copy()
- Renamed packages to make structure simpler

  org.jblas.la -> org.jblas
  org.jblas.la.exceptions -> org.jblas.exceptions
  org.jblas.la.ranges -> org.jblas.ranges
  org.jblas.core -> moved content to org.jblas and org.jblas.util

- Renamed classes

  Blas -> NativeBlas

- Build process can now generate different kinds of jar files, and also
  generate shared libraries which are statically linked against BLAS,
  LAPACK or ATLAS. You can also generate a multiplatform jar file which
  contains shared libraries for different platforms.

- Generated wrapper code has been optimized a bit:

  - in the lapack wrapper with automatic workspace allocation, only
    small dummy arrays are passed in the workspace query, meaning that
    the real arrays are only passed once, not twice.

  - The wrapper now also parses information whether output variables
    are input or output and releases the arrays with JNI_ABORT in case
    they are not output variables. This should also reduce the amount
    of copying.
