diff --git a/.travis/check-generate.sh b/.travis/check-generate.sh index 099eefd4..82c62d39 100755 --- a/.travis/check-generate.sh +++ b/.travis/check-generate.sh @@ -3,6 +3,7 @@ set -ex go generate gonum.org/v1/netlib/blas/netlib go generate gonum.org/v1/netlib/lapack/lapacke +go generate gonum.org/v1/netlib/lapack/netlib if [ -n "$(git diff)" ]; then exit 1 fi diff --git a/lapack/netlib/errors.go b/lapack/netlib/errors.go new file mode 100644 index 00000000..e2153f64 --- /dev/null +++ b/lapack/netlib/errors.go @@ -0,0 +1,68 @@ +// Code generated by "go generate gonum.org/v1/netlib/lapack/netlib”; DO NOT EDIT. + +// Copyright ©2018 The Gonum Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package netlib + +// Copied from gonum/lapack/gonum. Keep in sync. +const ( + absIncNotOne = "lapack: increment not one or negative one" + badAlpha = "lapack: bad alpha length" + badApplyOrtho = "lapack: bad ApplyOrtho" + badAuxv = "lapack: auxv has insufficient length" + badBeta = "lapack: bad beta length" + badD = "lapack: d has insufficient length" + badDiag = "lapack: bad diag" + badDims = "lapack: bad input dimensions" + badDirect = "lapack: bad direct" + badE = "lapack: e has insufficient length" + badEVComp = "lapack: bad EVComp" + badEVHowMany = "lapack: bad EVHowMany" + badEVJob = "lapack: bad EVJob" + badEVSide = "lapack: bad EVSide" + badGenOrtho = "lapack: bad GenOrtho" + badGSVDJob = "lapack: bad GSVDJob" + badIlo = "lapack: ilo out of range" + badIhi = "lapack: ihi out of range" + badIpiv = "lapack: bad permutation length" + badBalanceJob = "lapack: bad BalanceJob" + badK1 = "lapack: k1 out of range" + badK2 = "lapack: k2 out of range" + badKperm = "lapack: incorrect permutation length" + badLdA = "lapack: index of a out of range" + badNb = "lapack: nb out of range" + badNorm = "lapack: bad norm" + badPivot = "lapack: bad pivot" + badS = "lapack: s has insufficient length" + badSchurComp = "lapack: bad SchurComp" + badSchurJob = "lapack: bad SchurJob" + badShifts = "lapack: bad shifts" + badSide = "lapack: bad side" + badSlice = "lapack: bad input slice length" + badSort = "lapack: bad Sort" + badStore = "lapack: bad store" + badTau = "lapack: tau has insufficient length" + badTauQ = "lapack: tauQ has insufficient length" + badTauP = "lapack: tauP has insufficient length" + badTrans = "lapack: bad trans" + badVn1 = "lapack: vn1 has insufficient length" + badVn2 = "lapack: vn2 has insufficient length" + badUplo = "lapack: illegal triangle" + badWork = "lapack: insufficient working memory" + badZ = "lapack: insufficient z length" + kGTM = "lapack: k > m" + kGTN = "lapack: k > n" + kLT0 = "lapack: k < 0" + mLT0 = "lapack: m < 0" + mLTN = "lapack: m < n" + nanScale = "lapack: NaN scale factor" + negDimension = "lapack: negative matrix dimension" + negZ = "lapack: negative z value" + nLT0 = "lapack: n < 0" + nLTM = "lapack: n < m" + offsetGTM = "lapack: offset > m" + shortWork = "lapack: working array shorter than declared" + zeroDiv = "lapack: zero divisor" +) diff --git a/lapack/netlib/generate.go b/lapack/netlib/generate.go new file mode 100644 index 00000000..5b891b2b --- /dev/null +++ b/lapack/netlib/generate.go @@ -0,0 +1,7 @@ +// Copyright ©2018 The Gonum Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate go run generate_errors.go + +package netlib diff --git a/lapack/netlib/generate_errors.go b/lapack/netlib/generate_errors.go new file mode 100644 index 00000000..06edcb25 --- /dev/null +++ b/lapack/netlib/generate_errors.go @@ -0,0 +1,57 @@ +// Copyright ©2018 The Gonum Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +import ( + "fmt" + "go/parser" + "go/printer" + "go/token" + "log" + "os" + "path/filepath" +) + +const errorFile = "../../../gonum/lapack/gonum/errors.go" + +func main() { + path, err := filepath.Abs(errorFile) + if err != nil { + log.Fatalf("no absolute path for %q: %v", errorFile, err) + } + + fset := token.NewFileSet() + f, err := parser.ParseFile(fset, path, nil, 0) + if err != nil { + log.Fatalf("failed to parse %q: %v", path, err) + } + + dst := filepath.Base(errorFile) + o, err := os.Create(dst) + if err != nil { + log.Fatalf("failed to create %q: %v", dst, err) + } + defer o.Close() + + fmt.Fprintln(o, header) + p := printer.Config{ + Mode: printer.UseSpaces | printer.TabIndent, + Tabwidth: 8, + } + p.Fprint(o, fset, f.Decls) + fmt.Fprintln(o) +} + +const header = `// Code generated by "go generate gonum.org/v1/netlib/lapack/netlib”; DO NOT EDIT. + +// Copyright ©2018 The Gonum Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package netlib + +// Copied from gonum/lapack/gonum. Keep in sync.` diff --git a/lapack/netlib/lapack.go b/lapack/netlib/lapack.go index b90dfbcc..6a8885ed 100644 --- a/lapack/netlib/lapack.go +++ b/lapack/netlib/lapack.go @@ -13,67 +13,6 @@ import ( "gonum.org/v1/netlib/lapack/lapacke" ) -// Copied from gonum/lapack/gonum. Keep in sync. -const ( - absIncNotOne = "lapack: increment not one or negative one" - badAlpha = "lapack: bad alpha length" - badApplyOrtho = "lapack: bad ApplyOrtho" - badAuxv = "lapack: auxv has insufficient length" - badBeta = "lapack: bad beta length" - badD = "lapack: d has insufficient length" - badDiag = "lapack: bad diag" - badDims = "lapack: bad input dimensions" - badDirect = "lapack: bad direct" - badE = "lapack: e has insufficient length" - badEVComp = "lapack: bad EVComp" - badEVHowMany = "lapack: bad EVHowMany" - badEVJob = "lapack: bad EVJob" - badEVSide = "lapack: bad EVSide" - badGenOrtho = "lapack: bad GenOrtho" - badGSVDJob = "lapack: bad GSVDJob" - badIlo = "lapack: ilo out of range" - badIhi = "lapack: ihi out of range" - badIpiv = "lapack: bad permutation length" - badBalanceJob = "lapack: bad BalanceJob" - badK1 = "lapack: k1 out of range" - badK2 = "lapack: k2 out of range" - badKperm = "lapack: incorrect permutation length" - badLdA = "lapack: index of a out of range" - badNb = "lapack: nb out of range" - badNorm = "lapack: bad norm" - badPivot = "lapack: bad pivot" - badS = "lapack: s has insufficient length" - badSchurComp = "lapack: bad SchurComp" - badSchurJob = "lapack: bad SchurJob" - badShifts = "lapack: bad shifts" - badSide = "lapack: bad side" - badSlice = "lapack: bad input slice length" - badSort = "lapack: bad Sort" - badStore = "lapack: bad store" - badTau = "lapack: tau has insufficient length" - badTauQ = "lapack: tauQ has insufficient length" - badTauP = "lapack: tauP has insufficient length" - badTrans = "lapack: bad trans" - badVn1 = "lapack: vn1 has insufficient length" - badVn2 = "lapack: vn2 has insufficient length" - badUplo = "lapack: illegal triangle" - badWork = "lapack: insufficient working memory" - badZ = "lapack: insufficient z length" - kGTM = "lapack: k > m" - kGTN = "lapack: k > n" - kLT0 = "lapack: k < 0" - mLT0 = "lapack: m < 0" - mLTN = "lapack: m < n" - nanScale = "lapack: NaN scale factor" - negDimension = "lapack: negative matrix dimension" - negZ = "lapack: negative z value" - nLT0 = "lapack: n < 0" - nLTM = "lapack: n < m" - offsetGTM = "lapack: offset > m" - shortWork = "lapack: working array shorter than declared" - zeroDiv = "lapack: zero divisor" -) - func min(m, n int) int { if m < n { return m