@@ -101,39 +101,47 @@ How to use with cargo
101101How to enable blas integration
102102-----------------------------
103103
104- Blas integration is an optional add-on.
104+ Blas integration is an optional add-on. Without BLAS, ndarray uses the
105+ ``matrixmultiply `` crate for matrix multiplication for ``f64 `` and ``f32 ``
106+ arrays (and it's always enabled as a fallback since it supports matrices of
107+ arbitrary strides in both dimensions).
105108
106109Depend and link to ``blas-src `` directly to pick a blas provider. Ndarray
107110presently requires a blas provider that provides the ``cblas-sys `` interface. If
108- further feature selection is needed then you might need to depend directly on
109- the backend crate's source too (for example ``openblas-src ``, to select
110- ``cblas ``). The backend version **must ** be the one that ``blas-src `` also
111- depends on.
111+ further feature selection is wanted or needed then you might need to depend directly on
112+ the backend crate's source too. The backend version **must ** be the one that
113+ ``blas-src `` also depends on.
112114
113115An example configuration using system openblas is shown below. Note that only
114116end-user projects (not libraries) should select provider::
115117
116118 [dependencies]
117119 ndarray = { version = "0.15.0", features = ["blas"] }
118- blas-src = { version = "0.7.0", default-features = false, features = ["openblas"] }
119- openblas-src = { version = "0.9", default-features = false, features = ["cblas", "system"] }
120+ blas-src = { version = "0.7.0", features = ["openblas"] }
121+ openblas-src = { version = "0.9", features = ["cblas", "system"] }
122+
123+ Using system-installed dependencies can save a long time building dependencies.
124+ An example configuration using (compiled) netlib is shown below anyway::
125+
126+ [dependencies]
127+ ndarray = { version = "0.15.0", features = ["blas"] }
128+ blas-src = { version = "0.7.0", default-features = false, features = ["netlib"] }
120129
121130When this is done, your program must also link to ``blas_src `` by using it or
122131explicitly including it in your code::
123132
124133 extern crate blas_src;
125134
126- For official releases of ``ndarray ``, versions that have been verified to work are:
135+ The following versions have been verified to work together. For ndarray 0.15 or later,
136+ there is no tight coupling to the ``blas-src `` version, so any version should in theory work.
127137
128- =========== ============ ================
129- ``ndarray `` ``blas-src `` ``openblas-src ``
130- =========== ============ ================
131- 0.15 0.7.0 0.9.0
138+ =========== ============ ================ ==============
139+ ``ndarray `` ``blas-src `` ``openblas-src `` `` netlib-src ``
140+ =========== ============ ================ ==============
141+ 0.15 0.7.0 0.9.0 0.8.0
1321420.14 0.6.1 0.9.0
1331430.13 0.2.0 0.6.0
134- 0.12 0.2.0 0.6.0
135- 0.11 0.1.2 0.5.0
136- =========== ============ ================
144+ =========== ============ ================ ==============
137145
138146Recent Changes
139147--------------
0 commit comments