Skip to content

Commit 68adec0

Browse files
authored
Updated and cleaned up README
Fixes #599 and cleans up the README a bit.
1 parent c495958 commit 68adec0

File tree

1 file changed

+31
-26
lines changed

1 file changed

+31
-26
lines changed

README.rdoc

+31-26
Original file line numberDiff line numberDiff line change
@@ -17,37 +17,29 @@ Fast Numerical Linear Algebra Library for Ruby
1717
== Description
1818

1919
NMatrix is a fast numerical linear algebra library for Ruby, with
20-
dense and sparse matrices, written mostly in C and C++. It is part of
21-
the SciRuby project.
22-
23-
Three gems are provided in this repository. The +nmatrix+ gem provides
24-
all core matrix functionality, and requires minimal external
25-
dependencies, making it easy to install. The +nmatrix-atlas+ and
26-
+nmatrix-lapacke+ gems are optional extensions of the main +nmatrix+
27-
gem that rely on external linear algebra libraries to provide advanced
28-
features for dense matrices (singular value decomposition,
29-
eigenvalue/eigenvector finding, Cholesky factorization), as well as
30-
providing faster implementations of common operations like
31-
multiplication, inverses, and determinants. +nmatrix-atlas+ requires
32-
the {ATLAS library}[http://math-atlas.sourceforge.net/], while
33-
+nmatrix-lapacke+ is designed to work with various LAPACK
34-
implementations (including ATLAS). The +nmatrix-atlas+ and
35-
+nmatrix-lapacke+ gems both provide similar interfaces for using these
36-
advanced features.
20+
dense and sparse matrices, written mostly in C and C++ (and with
21+
experimental JRuby support). It is part of the SciRuby project.
3722

3823
NMatrix was inspired by {NArray}[http://narray.rubyforge.org], by Masahiro Tanaka.
3924

25+
Several gems are provided in this repository:
26+
* +nmatrix+
27+
* +nmatrix-java+
28+
* +nmatrix-atlas+
29+
* +nmatrix-lapacke+
30+
* +nmatrix-fftw+
31+
4032
== Installation
4133

4234
To install the latest stable version:
4335

4436
gem install nmatrix
4537

46-
The requirements for NMatrix are:
47-
* GCC 4.3 or later (clang support is experimental)
48-
* Ruby 1.9.3 or later
38+
NMatrix was originally written in C/C++, but an experimental JRuby version is also included (see instructions below for JRuby). For the MRI (C/C++) version, you need:
39+
* Ruby 2.0 or later
40+
* a compiler supporting C++11 (clang or GCC)
4941

50-
To install +nmatrix-atlas+ or +nmatrix-lapacke+, an additional requirement is a
42+
To install the +nmatrix-atlas+ or +nmatrix-lapacke+ extensions, an additional requirement is a
5143
compatible LAPACK library.
5244
Detailed directions for this step can be found
5345
{here}[https://github.com/SciRuby/nmatrix/wiki/Installation].
@@ -101,7 +93,7 @@ commands apply to the +nmatrix+ gem and any additional plugin gems
10193
specified. For example, <tt>rake spec nmatrix_plugins=atlas</tt> will
10294
test both the core +nmatrix+ gem and the +nmatrix-atlas+ gem.
10395

104-
== Upgrading from NMatrix 0.1.0
96+
=== Upgrading from NMatrix 0.1.0
10597

10698
If your code requires features provided by ATLAS (Cholesky
10799
decomposition, singular value decomposition, eigenvalues/eigenvectors,
@@ -163,7 +155,20 @@ Fast fourier transforms can be conducted with the nmatrix-fftw
163155
extension, which is an interface to the FFTW C library. Use
164156
<tt>require 'nmatrix/fftw'</tt> for using this plugin.
165157

166-
== Plugin Details
158+
== Plugin details
159+
160+
=== ATLAS and LAPACKE
161+
162+
The +nmatrix-atlas+ and +nmatrix-lapacke+ gems are optional extensions
163+
of the main +nmatrix+ gem that rely on external linear algebra libraries
164+
to provide advanced features for dense matrices (singular value
165+
decomposition, eigenvalue/eigenvector finding, Cholesky factorization),
166+
as well as providing faster implementations of common operations like
167+
multiplication, inverses, and determinants. +nmatrix-atlas+ requires the
168+
{ATLAS library}[http://math-atlas.sourceforge.net/], while +nmatrix-lapacke+
169+
is designed to work with various LAPACK implementations (including ATLAS).
170+
The +nmatrix-atlas+ and +nmatrix-lapacke+ gems both provide similar
171+
interfaces for using these advanced features.
167172

168173
=== *FFTW*
169174

@@ -173,7 +178,7 @@ It has been tested with FFTW 3.3.4.
173178
It works reliably only with 64 bit numbers (or the NMatrix `:float64`
174179
or `:complex128` data type). See the docs for more details.
175180

176-
== NArray Compatibility
181+
== NArray compatibility
177182

178183
When NArray[http://masa16.github.io/narray/] is installed alongside
179184
NMatrix, <tt>require 'nmatrix'</tt> will inadvertently load NArray's
@@ -230,14 +235,14 @@ The following features exist in the current version of NMatrix (0.1.0.rc1):
230235
* slice assignments, e.g.,
231236
x[1..3,0..4] = some_other_matrix
232237

233-
=== Planned Features (Short-to-Medium Term)
238+
=== Planned features (Short-to-Medium Term)
234239

235240
See the issues tracker for a list of planned features or to request
236241
new ones.
237242

238243
== License
239244

240-
Copyright (c) 2012--16, John Woods and the Ruby Science Foundation.
245+
Copyright (c) 2012--17, John Woods and the Ruby Science Foundation.
241246

242247
All rights reserved.
243248

0 commit comments

Comments
 (0)