lapack/testlapack: don't test unsupported matrix sizes in DlantrTest

The documentation for DLANTR in Reference-LAPACK says that the input
matrix should not be tall if upper triangular and not wide if lower
triangular. In most cases providing such "invalid" sizes is harmless and
DLANTR works correctly. However, when computing the inf-norm of lower
triangular matrices it currently causes an out-of-bound write if the
work array is shorter than the number of columns. Even if the reference
fixes this, we cannot assume when or if at all other LAPACK
implementation providers include it (both OpenBLAS and MKL have this
issue, obviously OpenBLAS being much easier to fix). Therefore, the
restriction on matrix sizes will have to stay in the reference
documentation and we should exlude them from our testing.
1 file changed
tree: ee1f6651d0cd9d99356286c1d1986beb035be4cc
  1. .github/
  2. .travis/
  3. blas/
  4. diff/
  5. floats/
  6. fourier/
  7. graph/
  8. integrate/
  9. internal/
  10. lapack/
  11. mat/
  12. mathext/
  13. num/
  14. optimize/
  15. spatial/
  16. stat/
  18. unit/
  19. .travis.yml
  20. appveyor.yml
  25. doc.go
  26. go.mod
  27. go.sum
  28. GOPHER
  29. gopher.png
  32. version.go

Gonum Build Status Build status GoDoc Go Report Card stability-unstable


The core packages of the Gonum suite are written in pure Go with some assembly. Installation is done using go get.

go get -u

Supported Go versions

Gonum supports and tests on the two most recent Go releases on Linux, macOS and Windows.

Release schedule

The Gonum modules are released on a six-month release schedule, aligned with the Go releases. i.e.: when Go-1.x is released, Gonum-v0.n.0 is released around the same time. Six months after, Go-1.x+1 is released, and Gonum-v0.n+1.0 as well.

The release schedule, based on the current Go release schedule is thus:

  • Gonum-v0.n.0: February
  • Gonum-v0.n+1.0: August

Build tags

The Gonum packages use a variety of build tags to set non-standard build conditions. Building Gonum applications will work without knowing how to use these tags, but they can be used during testing and to control the use of assembly and CGO code.

The current list of non-internal tags is as follows:

  • appengine — do not use assembly or unsafe
  • safe — synonym for appengine
  • bounds — use bounds checks even in internal calls
  • cblas — use CGO BLAS implementation in tests (only in mat package)
  • noasm — do not use assembly implementations
  • tomita — use Tomita, Tanaka, Takahashi pivot choice for maximimal clique calculation, otherwise use random pivot (only in topo package)


If you find any bugs, feel free to file an issue on the github issue tracker. Discussions on API changes, added features, code review, or similar requests are preferred on the gonum-dev Google Group.!forum/gonum-dev


Original code is licensed under the Gonum License found in the LICENSE file. Portions of the code are subject to the additional licenses found in THIRD_PARTY_LICENSES. All third party code is licensed either under a BSD or MIT license.

Code in graph/formats/dot is dual licensed Public Domain Dedication and Gonum License, and users are free to choose the license which suits their needs for this code.