From 434c403e6be3c28d215098acd62561cab90731e0 Mon Sep 17 00:00:00 2001 From: kortschak Date: Wed, 15 Jul 2015 11:50:10 +0930 Subject: [PATCH] cgo: move bindings to new package This is a clean up of the code generation (reducing the line count sigificantly and making failure much noisier prior to the CGO call - though will only catch the most egregious errors). The approach I've taken here differs significantly from that in blas/cgo where all the checks are done in the generated binding code. Here there is too much complexity, so we do the checks in the Implementation method and then call the clapack function. Also use CGO_LDFLAGS env var; this is how we do things in blas and it allows us to have code that will work with go get when the environment is correctly set up - without requiring go generate or perl use by the client. --- .travis.yml | 3 +- .travis/linux/ATLAS/install.sh | 6 +- .travis/linux/OpenBLAS/install.sh | 6 +- README.md | 20 +- cgo/clapack/clapack.go | 10211 +++++++++++++++++++++++++ cgo/{ => clapack}/genLapack.pl | 109 +- cgo/{ => clapack}/lapacke.h | 0 cgo/{ => clapack}/lapacke_config.h | 0 cgo/{ => clapack}/lapacke_mangling.h | 0 cgo/{ => clapack}/lapacke_utils.h | 0 cgo/lapack.go | 52 + cgo/lapack_test.go | 17 + 12 files changed, 10352 insertions(+), 72 deletions(-) create mode 100644 cgo/clapack/clapack.go rename cgo/{ => clapack}/genLapack.pl (80%) rename cgo/{ => clapack}/lapacke.h (100%) rename cgo/{ => clapack}/lapacke_config.h (100%) rename cgo/{ => clapack}/lapacke_mangling.h (100%) rename cgo/{ => clapack}/lapacke_utils.h (100%) create mode 100644 cgo/lapack.go create mode 100644 cgo/lapack_test.go diff --git a/.travis.yml b/.travis.yml index a30219f..5435817 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,8 +30,9 @@ install: # Get deps, build, test, and ensure the code is gofmt'ed. # If we are building as gonum, then we have access to the coveralls api key, so we can run coverage as well. script: + - if [[ "$BLAS_LIB" == "gonum" ]]; then pushd native; fi - go get -d -t -v ./... - go build -v ./... - go test -v ./... - diff <(gofmt -d *.go) <("") - - if [[ $TRAVIS_SECURE_ENV_VARS = "true" ]]; then bash .travis/test-coverage.sh; fi + - if [[ $TRAVIS_SECURE_ENV_VARS = "true" ]]; then bash -c "${TRAVIS_BUILD_DIR}/.travis/test-coverage.sh"; fi diff --git a/.travis/linux/ATLAS/install.sh b/.travis/linux/ATLAS/install.sh index 0097377..33bda4c 100644 --- a/.travis/linux/ATLAS/install.sh +++ b/.travis/linux/ATLAS/install.sh @@ -6,6 +6,6 @@ export CGO_LDFLAGS="-L/usr/lib -latlas -llapack_atlas" go get github.com/gonum/blas go get github.com/gonum/matrix/mat64 -pushd cgo -sudo perl genLapack.pl -L/usr/lib -latlas -llapack_atlas -popd \ No newline at end of file +pushd cgo/clapack +go install -v -x +popd diff --git a/.travis/linux/OpenBLAS/install.sh b/.travis/linux/OpenBLAS/install.sh index 969d362..38a61a4 100644 --- a/.travis/linux/OpenBLAS/install.sh +++ b/.travis/linux/OpenBLAS/install.sh @@ -18,6 +18,6 @@ export CGO_LDFLAGS="-L/usr/lib -lopenblas" go get github.com/gonum/blas go get github.com/gonum/matrix/mat64 -pushd cgo -sudo perl genLapack.pl -L/usr/lib -lopenblas -popd \ No newline at end of file +pushd cgo/clapack +go install -v -x +popd diff --git a/README.md b/README.md index 5d79445..b2fc7b2 100644 --- a/README.md +++ b/README.md @@ -19,21 +19,19 @@ Install OpenBLAS: make ``` +Then install the lapack/cgo package: +```sh + CGO_LDFLAGS="-L/path/to/OpenBLAS -lopenblas" go install github.com/gonum/lapack/cgo +``` + For Windows you can download binary packages for OpenBLAS at http://sourceforge.net/projects/openblas/files/ -generate lapack bindings -``` - cd $GOPATH/src/github.com/gonum/lapack/clapack - ./genLapack.pl -L/path/to/OpenBLAS -lopenblas -``` - -If you want to use the Intel MKL and all of your paths are properly set -``` - cd $GOPATH/src/github.com/gonum/lapack/clapack - ./genLapack.pl -lmkl_rt +If you want to use a different BLAS package such as the Intel MKL you can +adjust the `CGO_LDFLAGS` variable: +```sh + CGO_LDFLAGS="-lmkl_rt" go install github.com/gonum/lapack/cgo ``` -should work. ## Packages diff --git a/cgo/clapack/clapack.go b/cgo/clapack/clapack.go new file mode 100644 index 0000000..5ccad56 --- /dev/null +++ b/cgo/clapack/clapack.go @@ -0,0 +1,10211 @@ +// Do not manually edit this file. It was created by the genLapack.pl script from lapacke.h. + +// Copyright ©2014 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 clapack provides bindings to a C LAPACK library. +package clapack + +/* +#cgo CFLAGS: -g -O2 +#include "lapacke.h" +*/ +import "C" + +import ( + "github.com/gonum/blas" + "github.com/gonum/lapack" + "unsafe" +) + +// Type order is used to specify the matrix storage format. We still interact with +// an API that allows client calls to specify order, so this is here to document that fact. +type order int + +const ( + rowMajor order = 101 + iota + colMajor +) + +func isZero(ret C.int) bool { return ret == 0 } + +func Sbdsdc(ul blas.Uplo, compq lapack.CompSV, n int, d []float32, e []float32, u []float32, ldu int, vt []float32, ldvt int, q []float32, iq []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sbdsdc((C.int)(rowMajor), (C.char)(ul), (C.char)(compq), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&u[0]), (C.lapack_int)(ldu), (*C.float)(&vt[0]), (C.lapack_int)(ldvt), (*C.float)(&q[0]), (*C.lapack_int)(&iq[0]))) +} + +func Dbdsdc(ul blas.Uplo, compq lapack.CompSV, n int, d []float64, e []float64, u []float64, ldu int, vt []float64, ldvt int, q []float64, iq []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dbdsdc((C.int)(rowMajor), (C.char)(ul), (C.char)(compq), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&u[0]), (C.lapack_int)(ldu), (*C.double)(&vt[0]), (C.lapack_int)(ldvt), (*C.double)(&q[0]), (*C.lapack_int)(&iq[0]))) +} + +func Sbdsqr(ul blas.Uplo, n int, ncvt int, nru int, ncc int, d []float32, e []float32, vt []float32, ldvt int, u []float32, ldu int, c []float32, ldc int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sbdsqr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ncvt), (C.lapack_int)(nru), (C.lapack_int)(ncc), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&vt[0]), (C.lapack_int)(ldvt), (*C.float)(&u[0]), (C.lapack_int)(ldu), (*C.float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Dbdsqr(ul blas.Uplo, n int, ncvt int, nru int, ncc int, d []float64, e []float64, vt []float64, ldvt int, u []float64, ldu int, c []float64, ldc int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dbdsqr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ncvt), (C.lapack_int)(nru), (C.lapack_int)(ncc), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&vt[0]), (C.lapack_int)(ldvt), (*C.double)(&u[0]), (C.lapack_int)(ldu), (*C.double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Cbdsqr(ul blas.Uplo, n int, ncvt int, nru int, ncc int, d []float32, e []float32, vt []complex64, ldvt int, u []complex64, ldu int, c []complex64, ldc int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cbdsqr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ncvt), (C.lapack_int)(nru), (C.lapack_int)(ncc), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.lapack_complex_float)(&vt[0]), (C.lapack_int)(ldvt), (*C.lapack_complex_float)(&u[0]), (C.lapack_int)(ldu), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Zbdsqr(ul blas.Uplo, n int, ncvt int, nru int, ncc int, d []float64, e []float64, vt []complex128, ldvt int, u []complex128, ldu int, c []complex128, ldc int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zbdsqr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ncvt), (C.lapack_int)(nru), (C.lapack_int)(ncc), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.lapack_complex_double)(&vt[0]), (C.lapack_int)(ldvt), (*C.lapack_complex_double)(&u[0]), (C.lapack_int)(ldu), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Sdisna(job lapack.Job, m int, n int, d []float32, sep []float32) bool { + return isZero(C.LAPACKE_sdisna((C.char)(job), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&sep[0]))) +} + +func Ddisna(job lapack.Job, m int, n int, d []float64, sep []float64) bool { + return isZero(C.LAPACKE_ddisna((C.char)(job), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&sep[0]))) +} + +func Sgbbrd(vect byte, m int, n int, ncc int, kl int, ku int, ab []float32, ldab int, d []float32, e []float32, q []float32, ldq int, pt []float32, ldpt int, c []float32, ldc int) bool { + return isZero(C.LAPACKE_sgbbrd((C.int)(rowMajor), (C.char)(vect), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(ncc), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&q[0]), (C.lapack_int)(ldq), (*C.float)(&pt[0]), (C.lapack_int)(ldpt), (*C.float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Dgbbrd(vect byte, m int, n int, ncc int, kl int, ku int, ab []float64, ldab int, d []float64, e []float64, q []float64, ldq int, pt []float64, ldpt int, c []float64, ldc int) bool { + return isZero(C.LAPACKE_dgbbrd((C.int)(rowMajor), (C.char)(vect), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(ncc), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&q[0]), (C.lapack_int)(ldq), (*C.double)(&pt[0]), (C.lapack_int)(ldpt), (*C.double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Cgbbrd(vect byte, m int, n int, ncc int, kl int, ku int, ab []complex64, ldab int, d []float32, e []float32, q []complex64, ldq int, pt []complex64, ldpt int, c []complex64, ldc int) bool { + return isZero(C.LAPACKE_cgbbrd((C.int)(rowMajor), (C.char)(vect), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(ncc), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.lapack_complex_float)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_complex_float)(&pt[0]), (C.lapack_int)(ldpt), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Zgbbrd(vect byte, m int, n int, ncc int, kl int, ku int, ab []complex128, ldab int, d []float64, e []float64, q []complex128, ldq int, pt []complex128, ldpt int, c []complex128, ldc int) bool { + return isZero(C.LAPACKE_zgbbrd((C.int)(rowMajor), (C.char)(vect), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(ncc), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.lapack_complex_double)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_complex_double)(&pt[0]), (C.lapack_int)(ldpt), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Sgbcon(norm byte, n int, kl int, ku int, ab []float32, ldab int, ipiv []int32, anorm float32, rcond []float32) bool { + return isZero(C.LAPACKE_sgbcon((C.int)(rowMajor), (C.char)(norm), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Dgbcon(norm byte, n int, kl int, ku int, ab []float64, ldab int, ipiv []int32, anorm float64, rcond []float64) bool { + return isZero(C.LAPACKE_dgbcon((C.int)(rowMajor), (C.char)(norm), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Cgbcon(norm byte, n int, kl int, ku int, ab []complex64, ldab int, ipiv []int32, anorm float32, rcond []float32) bool { + return isZero(C.LAPACKE_cgbcon((C.int)(rowMajor), (C.char)(norm), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Zgbcon(norm byte, n int, kl int, ku int, ab []complex128, ldab int, ipiv []int32, anorm float64, rcond []float64) bool { + return isZero(C.LAPACKE_zgbcon((C.int)(rowMajor), (C.char)(norm), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Sgbequ(m int, n int, kl int, ku int, ab []float32, ldab int, r []float32, c []float32, rowcnd []float32, colcnd []float32, amax []float32) bool { + return isZero(C.LAPACKE_sgbequ((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&r[0]), (*C.float)(&c[0]), (*C.float)(&rowcnd[0]), (*C.float)(&colcnd[0]), (*C.float)(&amax[0]))) +} + +func Dgbequ(m int, n int, kl int, ku int, ab []float64, ldab int, r []float64, c []float64, rowcnd []float64, colcnd []float64, amax []float64) bool { + return isZero(C.LAPACKE_dgbequ((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&r[0]), (*C.double)(&c[0]), (*C.double)(&rowcnd[0]), (*C.double)(&colcnd[0]), (*C.double)(&amax[0]))) +} + +func Cgbequ(m int, n int, kl int, ku int, ab []complex64, ldab int, r []float32, c []float32, rowcnd []float32, colcnd []float32, amax []float32) bool { + return isZero(C.LAPACKE_cgbequ((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&r[0]), (*C.float)(&c[0]), (*C.float)(&rowcnd[0]), (*C.float)(&colcnd[0]), (*C.float)(&amax[0]))) +} + +func Zgbequ(m int, n int, kl int, ku int, ab []complex128, ldab int, r []float64, c []float64, rowcnd []float64, colcnd []float64, amax []float64) bool { + return isZero(C.LAPACKE_zgbequ((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&r[0]), (*C.double)(&c[0]), (*C.double)(&rowcnd[0]), (*C.double)(&colcnd[0]), (*C.double)(&amax[0]))) +} + +func Sgbequb(m int, n int, kl int, ku int, ab []float32, ldab int, r []float32, c []float32, rowcnd []float32, colcnd []float32, amax []float32) bool { + return isZero(C.LAPACKE_sgbequb((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&r[0]), (*C.float)(&c[0]), (*C.float)(&rowcnd[0]), (*C.float)(&colcnd[0]), (*C.float)(&amax[0]))) +} + +func Dgbequb(m int, n int, kl int, ku int, ab []float64, ldab int, r []float64, c []float64, rowcnd []float64, colcnd []float64, amax []float64) bool { + return isZero(C.LAPACKE_dgbequb((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&r[0]), (*C.double)(&c[0]), (*C.double)(&rowcnd[0]), (*C.double)(&colcnd[0]), (*C.double)(&amax[0]))) +} + +func Cgbequb(m int, n int, kl int, ku int, ab []complex64, ldab int, r []float32, c []float32, rowcnd []float32, colcnd []float32, amax []float32) bool { + return isZero(C.LAPACKE_cgbequb((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&r[0]), (*C.float)(&c[0]), (*C.float)(&rowcnd[0]), (*C.float)(&colcnd[0]), (*C.float)(&amax[0]))) +} + +func Zgbequb(m int, n int, kl int, ku int, ab []complex128, ldab int, r []float64, c []float64, rowcnd []float64, colcnd []float64, amax []float64) bool { + return isZero(C.LAPACKE_zgbequb((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&r[0]), (*C.double)(&c[0]), (*C.double)(&rowcnd[0]), (*C.double)(&colcnd[0]), (*C.double)(&amax[0]))) +} + +func Sgbrfs(trans blas.Transpose, n int, kl int, ku int, nrhs int, ab []float32, ldab int, afb []float32, ldafb int, ipiv []int32, b []float32, ldb int, x []float32, ldx int, ferr []float32, berr []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sgbrfs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&afb[0]), (C.lapack_int)(ldafb), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dgbrfs(trans blas.Transpose, n int, kl int, ku int, nrhs int, ab []float64, ldab int, afb []float64, ldafb int, ipiv []int32, b []float64, ldb int, x []float64, ldx int, ferr []float64, berr []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dgbrfs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&afb[0]), (C.lapack_int)(ldafb), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Cgbrfs(trans blas.Transpose, n int, kl int, ku int, nrhs int, ab []complex64, ldab int, afb []complex64, ldafb int, ipiv []int32, b []complex64, ldb int, x []complex64, ldx int, ferr []float32, berr []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cgbrfs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_float)(&afb[0]), (C.lapack_int)(ldafb), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zgbrfs(trans blas.Transpose, n int, kl int, ku int, nrhs int, ab []complex128, ldab int, afb []complex128, ldafb int, ipiv []int32, b []complex128, ldb int, x []complex128, ldx int, ferr []float64, berr []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zgbrfs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_double)(&afb[0]), (C.lapack_int)(ldafb), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Sgbsv(n int, kl int, ku int, nrhs int, ab []float32, ldab int, ipiv []int32, b []float32, ldb int) bool { + return isZero(C.LAPACKE_sgbsv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dgbsv(n int, kl int, ku int, nrhs int, ab []float64, ldab int, ipiv []int32, b []float64, ldb int) bool { + return isZero(C.LAPACKE_dgbsv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cgbsv(n int, kl int, ku int, nrhs int, ab []complex64, ldab int, ipiv []int32, b []complex64, ldb int) bool { + return isZero(C.LAPACKE_cgbsv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zgbsv(n int, kl int, ku int, nrhs int, ab []complex128, ldab int, ipiv []int32, b []complex128, ldb int) bool { + return isZero(C.LAPACKE_zgbsv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Sgbsvx(fact byte, trans blas.Transpose, n int, kl int, ku int, nrhs int, ab []float32, ldab int, afb []float32, ldafb int, ipiv []int32, equed []byte, r []float32, c []float32, b []float32, ldb int, x []float32, ldx int, rcond []float32, ferr []float32, berr []float32, rpivot []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sgbsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&afb[0]), (C.lapack_int)(ldafb), (*C.lapack_int)(&ipiv[0]), (*C.char)(unsafe.Pointer(&equed[0])), (*C.float)(&r[0]), (*C.float)(&c[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]), (*C.float)(&rpivot[0]))) +} + +func Dgbsvx(fact byte, trans blas.Transpose, n int, kl int, ku int, nrhs int, ab []float64, ldab int, afb []float64, ldafb int, ipiv []int32, equed []byte, r []float64, c []float64, b []float64, ldb int, x []float64, ldx int, rcond []float64, ferr []float64, berr []float64, rpivot []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dgbsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&afb[0]), (C.lapack_int)(ldafb), (*C.lapack_int)(&ipiv[0]), (*C.char)(unsafe.Pointer(&equed[0])), (*C.double)(&r[0]), (*C.double)(&c[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]), (*C.double)(&rpivot[0]))) +} + +func Cgbsvx(fact byte, trans blas.Transpose, n int, kl int, ku int, nrhs int, ab []complex64, ldab int, afb []complex64, ldafb int, ipiv []int32, equed []byte, r []float32, c []float32, b []complex64, ldb int, x []complex64, ldx int, rcond []float32, ferr []float32, berr []float32, rpivot []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cgbsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_float)(&afb[0]), (C.lapack_int)(ldafb), (*C.lapack_int)(&ipiv[0]), (*C.char)(unsafe.Pointer(&equed[0])), (*C.float)(&r[0]), (*C.float)(&c[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]), (*C.float)(&rpivot[0]))) +} + +func Zgbsvx(fact byte, trans blas.Transpose, n int, kl int, ku int, nrhs int, ab []complex128, ldab int, afb []complex128, ldafb int, ipiv []int32, equed []byte, r []float64, c []float64, b []complex128, ldb int, x []complex128, ldx int, rcond []float64, ferr []float64, berr []float64, rpivot []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zgbsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_double)(&afb[0]), (C.lapack_int)(ldafb), (*C.lapack_int)(&ipiv[0]), (*C.char)(unsafe.Pointer(&equed[0])), (*C.double)(&r[0]), (*C.double)(&c[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]), (*C.double)(&rpivot[0]))) +} + +func Sgbtrf(m int, n int, kl int, ku int, ab []float32, ldab int, ipiv []int32) bool { + return isZero(C.LAPACKE_sgbtrf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]))) +} + +func Dgbtrf(m int, n int, kl int, ku int, ab []float64, ldab int, ipiv []int32) bool { + return isZero(C.LAPACKE_dgbtrf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]))) +} + +func Cgbtrf(m int, n int, kl int, ku int, ab []complex64, ldab int, ipiv []int32) bool { + return isZero(C.LAPACKE_cgbtrf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]))) +} + +func Zgbtrf(m int, n int, kl int, ku int, ab []complex128, ldab int, ipiv []int32) bool { + return isZero(C.LAPACKE_zgbtrf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]))) +} + +func Sgbtrs(trans blas.Transpose, n int, kl int, ku int, nrhs int, ab []float32, ldab int, ipiv []int32, b []float32, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sgbtrs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dgbtrs(trans blas.Transpose, n int, kl int, ku int, nrhs int, ab []float64, ldab int, ipiv []int32, b []float64, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dgbtrs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cgbtrs(trans blas.Transpose, n int, kl int, ku int, nrhs int, ab []complex64, ldab int, ipiv []int32, b []complex64, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cgbtrs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zgbtrs(trans blas.Transpose, n int, kl int, ku int, nrhs int, ab []complex128, ldab int, ipiv []int32, b []complex128, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zgbtrs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(kl), (C.lapack_int)(ku), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Sgebak(job lapack.Job, s blas.Side, n int, ilo int, ihi int, scale []float32, m int, v []float32, ldv int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + return isZero(C.LAPACKE_sgebak((C.int)(rowMajor), (C.char)(job), (C.char)(s), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.float)(&scale[0]), (C.lapack_int)(m), (*C.float)(&v[0]), (C.lapack_int)(ldv))) +} + +func Dgebak(job lapack.Job, s blas.Side, n int, ilo int, ihi int, scale []float64, m int, v []float64, ldv int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + return isZero(C.LAPACKE_dgebak((C.int)(rowMajor), (C.char)(job), (C.char)(s), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.double)(&scale[0]), (C.lapack_int)(m), (*C.double)(&v[0]), (C.lapack_int)(ldv))) +} + +func Cgebak(job lapack.Job, s blas.Side, n int, ilo int, ihi int, scale []float32, m int, v []complex64, ldv int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + return isZero(C.LAPACKE_cgebak((C.int)(rowMajor), (C.char)(job), (C.char)(s), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.float)(&scale[0]), (C.lapack_int)(m), (*C.lapack_complex_float)(&v[0]), (C.lapack_int)(ldv))) +} + +func Zgebak(job lapack.Job, s blas.Side, n int, ilo int, ihi int, scale []float64, m int, v []complex128, ldv int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + return isZero(C.LAPACKE_zgebak((C.int)(rowMajor), (C.char)(job), (C.char)(s), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.double)(&scale[0]), (C.lapack_int)(m), (*C.lapack_complex_double)(&v[0]), (C.lapack_int)(ldv))) +} + +func Sgebal(job lapack.Job, n int, a []float32, lda int, ilo []int32, ihi []int32, scale []float32) bool { + return isZero(C.LAPACKE_sgebal((C.int)(rowMajor), (C.char)(job), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.float)(&scale[0]))) +} + +func Dgebal(job lapack.Job, n int, a []float64, lda int, ilo []int32, ihi []int32, scale []float64) bool { + return isZero(C.LAPACKE_dgebal((C.int)(rowMajor), (C.char)(job), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.double)(&scale[0]))) +} + +func Cgebal(job lapack.Job, n int, a []complex64, lda int, ilo []int32, ihi []int32, scale []float32) bool { + return isZero(C.LAPACKE_cgebal((C.int)(rowMajor), (C.char)(job), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.float)(&scale[0]))) +} + +func Zgebal(job lapack.Job, n int, a []complex128, lda int, ilo []int32, ihi []int32, scale []float64) bool { + return isZero(C.LAPACKE_zgebal((C.int)(rowMajor), (C.char)(job), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.double)(&scale[0]))) +} + +func Sgebrd(m int, n int, a []float32, lda int, d []float32, e []float32, tauq []float32, taup []float32) bool { + return isZero(C.LAPACKE_sgebrd((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&tauq[0]), (*C.float)(&taup[0]))) +} + +func Dgebrd(m int, n int, a []float64, lda int, d []float64, e []float64, tauq []float64, taup []float64) bool { + return isZero(C.LAPACKE_dgebrd((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&tauq[0]), (*C.double)(&taup[0]))) +} + +func Cgebrd(m int, n int, a []complex64, lda int, d []float32, e []float32, tauq []complex64, taup []complex64) bool { + return isZero(C.LAPACKE_cgebrd((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.lapack_complex_float)(&tauq[0]), (*C.lapack_complex_float)(&taup[0]))) +} + +func Zgebrd(m int, n int, a []complex128, lda int, d []float64, e []float64, tauq []complex128, taup []complex128) bool { + return isZero(C.LAPACKE_zgebrd((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.lapack_complex_double)(&tauq[0]), (*C.lapack_complex_double)(&taup[0]))) +} + +func Sgecon(norm byte, n int, a []float32, lda int, anorm float32, rcond []float32) bool { + return isZero(C.LAPACKE_sgecon((C.int)(rowMajor), (C.char)(norm), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Dgecon(norm byte, n int, a []float64, lda int, anorm float64, rcond []float64) bool { + return isZero(C.LAPACKE_dgecon((C.int)(rowMajor), (C.char)(norm), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Cgecon(norm byte, n int, a []complex64, lda int, anorm float32, rcond []float32) bool { + return isZero(C.LAPACKE_cgecon((C.int)(rowMajor), (C.char)(norm), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Zgecon(norm byte, n int, a []complex128, lda int, anorm float64, rcond []float64) bool { + return isZero(C.LAPACKE_zgecon((C.int)(rowMajor), (C.char)(norm), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Sgeequ(m int, n int, a []float32, lda int, r []float32, c []float32, rowcnd []float32, colcnd []float32, amax []float32) bool { + return isZero(C.LAPACKE_sgeequ((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&r[0]), (*C.float)(&c[0]), (*C.float)(&rowcnd[0]), (*C.float)(&colcnd[0]), (*C.float)(&amax[0]))) +} + +func Dgeequ(m int, n int, a []float64, lda int, r []float64, c []float64, rowcnd []float64, colcnd []float64, amax []float64) bool { + return isZero(C.LAPACKE_dgeequ((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&r[0]), (*C.double)(&c[0]), (*C.double)(&rowcnd[0]), (*C.double)(&colcnd[0]), (*C.double)(&amax[0]))) +} + +func Cgeequ(m int, n int, a []complex64, lda int, r []float32, c []float32, rowcnd []float32, colcnd []float32, amax []float32) bool { + return isZero(C.LAPACKE_cgeequ((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&r[0]), (*C.float)(&c[0]), (*C.float)(&rowcnd[0]), (*C.float)(&colcnd[0]), (*C.float)(&amax[0]))) +} + +func Zgeequ(m int, n int, a []complex128, lda int, r []float64, c []float64, rowcnd []float64, colcnd []float64, amax []float64) bool { + return isZero(C.LAPACKE_zgeequ((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&r[0]), (*C.double)(&c[0]), (*C.double)(&rowcnd[0]), (*C.double)(&colcnd[0]), (*C.double)(&amax[0]))) +} + +func Sgeequb(m int, n int, a []float32, lda int, r []float32, c []float32, rowcnd []float32, colcnd []float32, amax []float32) bool { + return isZero(C.LAPACKE_sgeequb((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&r[0]), (*C.float)(&c[0]), (*C.float)(&rowcnd[0]), (*C.float)(&colcnd[0]), (*C.float)(&amax[0]))) +} + +func Dgeequb(m int, n int, a []float64, lda int, r []float64, c []float64, rowcnd []float64, colcnd []float64, amax []float64) bool { + return isZero(C.LAPACKE_dgeequb((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&r[0]), (*C.double)(&c[0]), (*C.double)(&rowcnd[0]), (*C.double)(&colcnd[0]), (*C.double)(&amax[0]))) +} + +func Cgeequb(m int, n int, a []complex64, lda int, r []float32, c []float32, rowcnd []float32, colcnd []float32, amax []float32) bool { + return isZero(C.LAPACKE_cgeequb((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&r[0]), (*C.float)(&c[0]), (*C.float)(&rowcnd[0]), (*C.float)(&colcnd[0]), (*C.float)(&amax[0]))) +} + +func Zgeequb(m int, n int, a []complex128, lda int, r []float64, c []float64, rowcnd []float64, colcnd []float64, amax []float64) bool { + return isZero(C.LAPACKE_zgeequb((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&r[0]), (*C.double)(&c[0]), (*C.double)(&rowcnd[0]), (*C.double)(&colcnd[0]), (*C.double)(&amax[0]))) +} + +func Sgeev(jobvl lapack.Job, jobvr lapack.Job, n int, a []float32, lda int, wr []float32, wi []float32, vl []float32, ldvl int, vr []float32, ldvr int) bool { + return isZero(C.LAPACKE_sgeev((C.int)(rowMajor), (C.char)(jobvl), (C.char)(jobvr), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&wr[0]), (*C.float)(&wi[0]), (*C.float)(&vl[0]), (C.lapack_int)(ldvl), (*C.float)(&vr[0]), (C.lapack_int)(ldvr))) +} + +func Dgeev(jobvl lapack.Job, jobvr lapack.Job, n int, a []float64, lda int, wr []float64, wi []float64, vl []float64, ldvl int, vr []float64, ldvr int) bool { + return isZero(C.LAPACKE_dgeev((C.int)(rowMajor), (C.char)(jobvl), (C.char)(jobvr), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&wr[0]), (*C.double)(&wi[0]), (*C.double)(&vl[0]), (C.lapack_int)(ldvl), (*C.double)(&vr[0]), (C.lapack_int)(ldvr))) +} + +func Cgeev(jobvl lapack.Job, jobvr lapack.Job, n int, a []complex64, lda int, w []complex64, vl []complex64, ldvl int, vr []complex64, ldvr int) bool { + return isZero(C.LAPACKE_cgeev((C.int)(rowMajor), (C.char)(jobvl), (C.char)(jobvr), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&w[0]), (*C.lapack_complex_float)(&vl[0]), (C.lapack_int)(ldvl), (*C.lapack_complex_float)(&vr[0]), (C.lapack_int)(ldvr))) +} + +func Zgeev(jobvl lapack.Job, jobvr lapack.Job, n int, a []complex128, lda int, w []complex128, vl []complex128, ldvl int, vr []complex128, ldvr int) bool { + return isZero(C.LAPACKE_zgeev((C.int)(rowMajor), (C.char)(jobvl), (C.char)(jobvr), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&w[0]), (*C.lapack_complex_double)(&vl[0]), (C.lapack_int)(ldvl), (*C.lapack_complex_double)(&vr[0]), (C.lapack_int)(ldvr))) +} + +func Sgeevx(balanc byte, jobvl lapack.Job, jobvr lapack.Job, sense byte, n int, a []float32, lda int, wr []float32, wi []float32, vl []float32, ldvl int, vr []float32, ldvr int, ilo []int32, ihi []int32, scale []float32, abnrm []float32, rconde []float32, rcondv []float32) bool { + return isZero(C.LAPACKE_sgeevx((C.int)(rowMajor), (C.char)(balanc), (C.char)(jobvl), (C.char)(jobvr), (C.char)(sense), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&wr[0]), (*C.float)(&wi[0]), (*C.float)(&vl[0]), (C.lapack_int)(ldvl), (*C.float)(&vr[0]), (C.lapack_int)(ldvr), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.float)(&scale[0]), (*C.float)(&abnrm[0]), (*C.float)(&rconde[0]), (*C.float)(&rcondv[0]))) +} + +func Dgeevx(balanc byte, jobvl lapack.Job, jobvr lapack.Job, sense byte, n int, a []float64, lda int, wr []float64, wi []float64, vl []float64, ldvl int, vr []float64, ldvr int, ilo []int32, ihi []int32, scale []float64, abnrm []float64, rconde []float64, rcondv []float64) bool { + return isZero(C.LAPACKE_dgeevx((C.int)(rowMajor), (C.char)(balanc), (C.char)(jobvl), (C.char)(jobvr), (C.char)(sense), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&wr[0]), (*C.double)(&wi[0]), (*C.double)(&vl[0]), (C.lapack_int)(ldvl), (*C.double)(&vr[0]), (C.lapack_int)(ldvr), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.double)(&scale[0]), (*C.double)(&abnrm[0]), (*C.double)(&rconde[0]), (*C.double)(&rcondv[0]))) +} + +func Cgeevx(balanc byte, jobvl lapack.Job, jobvr lapack.Job, sense byte, n int, a []complex64, lda int, w []complex64, vl []complex64, ldvl int, vr []complex64, ldvr int, ilo []int32, ihi []int32, scale []float32, abnrm []float32, rconde []float32, rcondv []float32) bool { + return isZero(C.LAPACKE_cgeevx((C.int)(rowMajor), (C.char)(balanc), (C.char)(jobvl), (C.char)(jobvr), (C.char)(sense), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&w[0]), (*C.lapack_complex_float)(&vl[0]), (C.lapack_int)(ldvl), (*C.lapack_complex_float)(&vr[0]), (C.lapack_int)(ldvr), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.float)(&scale[0]), (*C.float)(&abnrm[0]), (*C.float)(&rconde[0]), (*C.float)(&rcondv[0]))) +} + +func Zgeevx(balanc byte, jobvl lapack.Job, jobvr lapack.Job, sense byte, n int, a []complex128, lda int, w []complex128, vl []complex128, ldvl int, vr []complex128, ldvr int, ilo []int32, ihi []int32, scale []float64, abnrm []float64, rconde []float64, rcondv []float64) bool { + return isZero(C.LAPACKE_zgeevx((C.int)(rowMajor), (C.char)(balanc), (C.char)(jobvl), (C.char)(jobvr), (C.char)(sense), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&w[0]), (*C.lapack_complex_double)(&vl[0]), (C.lapack_int)(ldvl), (*C.lapack_complex_double)(&vr[0]), (C.lapack_int)(ldvr), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.double)(&scale[0]), (*C.double)(&abnrm[0]), (*C.double)(&rconde[0]), (*C.double)(&rcondv[0]))) +} + +func Sgehrd(n int, ilo int, ihi int, a []float32, lda int, tau []float32) bool { + return isZero(C.LAPACKE_sgehrd((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dgehrd(n int, ilo int, ihi int, a []float64, lda int, tau []float64) bool { + return isZero(C.LAPACKE_dgehrd((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Cgehrd(n int, ilo int, ihi int, a []complex64, lda int, tau []complex64) bool { + return isZero(C.LAPACKE_cgehrd((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zgehrd(n int, ilo int, ihi int, a []complex128, lda int, tau []complex128) bool { + return isZero(C.LAPACKE_zgehrd((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Sgejsv(joba lapack.Job, jobu lapack.Job, jobv lapack.Job, jobr lapack.Job, jobt lapack.Job, jobp lapack.Job, m int, n int, a []float32, lda int, sva []float32, u []float32, ldu int, v []float32, ldv int, stat []float32, istat []int32) bool { + return isZero(C.LAPACKE_sgejsv((C.int)(rowMajor), (C.char)(joba), (C.char)(jobu), (C.char)(jobv), (C.char)(jobr), (C.char)(jobt), (C.char)(jobp), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&sva[0]), (*C.float)(&u[0]), (C.lapack_int)(ldu), (*C.float)(&v[0]), (C.lapack_int)(ldv), (*C.float)(&stat[0]), (*C.lapack_int)(&istat[0]))) +} + +func Dgejsv(joba lapack.Job, jobu lapack.Job, jobv lapack.Job, jobr lapack.Job, jobt lapack.Job, jobp lapack.Job, m int, n int, a []float64, lda int, sva []float64, u []float64, ldu int, v []float64, ldv int, stat []float64, istat []int32) bool { + return isZero(C.LAPACKE_dgejsv((C.int)(rowMajor), (C.char)(joba), (C.char)(jobu), (C.char)(jobv), (C.char)(jobr), (C.char)(jobt), (C.char)(jobp), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&sva[0]), (*C.double)(&u[0]), (C.lapack_int)(ldu), (*C.double)(&v[0]), (C.lapack_int)(ldv), (*C.double)(&stat[0]), (*C.lapack_int)(&istat[0]))) +} + +func Sgelq2(m int, n int, a []float32, lda int, tau []float32) bool { + return isZero(C.LAPACKE_sgelq2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dgelq2(m int, n int, a []float64, lda int, tau []float64) bool { + return isZero(C.LAPACKE_dgelq2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Cgelq2(m int, n int, a []complex64, lda int, tau []complex64) bool { + return isZero(C.LAPACKE_cgelq2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zgelq2(m int, n int, a []complex128, lda int, tau []complex128) bool { + return isZero(C.LAPACKE_zgelq2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Sgelqf(m int, n int, a []float32, lda int, tau []float32) bool { + return isZero(C.LAPACKE_sgelqf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dgelqf(m int, n int, a []float64, lda int, tau []float64) bool { + return isZero(C.LAPACKE_dgelqf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Cgelqf(m int, n int, a []complex64, lda int, tau []complex64) bool { + return isZero(C.LAPACKE_cgelqf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zgelqf(m int, n int, a []complex128, lda int, tau []complex128) bool { + return isZero(C.LAPACKE_zgelqf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Sgels(trans blas.Transpose, m int, n int, nrhs int, a []float32, lda int, b []float32, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sgels((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dgels(trans blas.Transpose, m int, n int, nrhs int, a []float64, lda int, b []float64, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dgels((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cgels(trans blas.Transpose, m int, n int, nrhs int, a []complex64, lda int, b []complex64, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cgels((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zgels(trans blas.Transpose, m int, n int, nrhs int, a []complex128, lda int, b []complex128, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zgels((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Sgelsd(m int, n int, nrhs int, a []float32, lda int, b []float32, ldb int, s []float32, rcond float32, rank []int32) bool { + return isZero(C.LAPACKE_sgelsd((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&s[0]), (C.float)(rcond), (*C.lapack_int)(&rank[0]))) +} + +func Dgelsd(m int, n int, nrhs int, a []float64, lda int, b []float64, ldb int, s []float64, rcond float64, rank []int32) bool { + return isZero(C.LAPACKE_dgelsd((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&s[0]), (C.double)(rcond), (*C.lapack_int)(&rank[0]))) +} + +func Cgelsd(m int, n int, nrhs int, a []complex64, lda int, b []complex64, ldb int, s []float32, rcond float32, rank []int32) bool { + return isZero(C.LAPACKE_cgelsd((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&s[0]), (C.float)(rcond), (*C.lapack_int)(&rank[0]))) +} + +func Zgelsd(m int, n int, nrhs int, a []complex128, lda int, b []complex128, ldb int, s []float64, rcond float64, rank []int32) bool { + return isZero(C.LAPACKE_zgelsd((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&s[0]), (C.double)(rcond), (*C.lapack_int)(&rank[0]))) +} + +func Sgelss(m int, n int, nrhs int, a []float32, lda int, b []float32, ldb int, s []float32, rcond float32, rank []int32) bool { + return isZero(C.LAPACKE_sgelss((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&s[0]), (C.float)(rcond), (*C.lapack_int)(&rank[0]))) +} + +func Dgelss(m int, n int, nrhs int, a []float64, lda int, b []float64, ldb int, s []float64, rcond float64, rank []int32) bool { + return isZero(C.LAPACKE_dgelss((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&s[0]), (C.double)(rcond), (*C.lapack_int)(&rank[0]))) +} + +func Cgelss(m int, n int, nrhs int, a []complex64, lda int, b []complex64, ldb int, s []float32, rcond float32, rank []int32) bool { + return isZero(C.LAPACKE_cgelss((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&s[0]), (C.float)(rcond), (*C.lapack_int)(&rank[0]))) +} + +func Zgelss(m int, n int, nrhs int, a []complex128, lda int, b []complex128, ldb int, s []float64, rcond float64, rank []int32) bool { + return isZero(C.LAPACKE_zgelss((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&s[0]), (C.double)(rcond), (*C.lapack_int)(&rank[0]))) +} + +func Sgelsy(m int, n int, nrhs int, a []float32, lda int, b []float32, ldb int, jpvt []int32, rcond float32, rank []int32) bool { + return isZero(C.LAPACKE_sgelsy((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_int)(&jpvt[0]), (C.float)(rcond), (*C.lapack_int)(&rank[0]))) +} + +func Dgelsy(m int, n int, nrhs int, a []float64, lda int, b []float64, ldb int, jpvt []int32, rcond float64, rank []int32) bool { + return isZero(C.LAPACKE_dgelsy((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_int)(&jpvt[0]), (C.double)(rcond), (*C.lapack_int)(&rank[0]))) +} + +func Cgelsy(m int, n int, nrhs int, a []complex64, lda int, b []complex64, ldb int, jpvt []int32, rcond float32, rank []int32) bool { + return isZero(C.LAPACKE_cgelsy((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_int)(&jpvt[0]), (C.float)(rcond), (*C.lapack_int)(&rank[0]))) +} + +func Zgelsy(m int, n int, nrhs int, a []complex128, lda int, b []complex128, ldb int, jpvt []int32, rcond float64, rank []int32) bool { + return isZero(C.LAPACKE_zgelsy((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_int)(&jpvt[0]), (C.double)(rcond), (*C.lapack_int)(&rank[0]))) +} + +func Sgeqlf(m int, n int, a []float32, lda int, tau []float32) bool { + return isZero(C.LAPACKE_sgeqlf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dgeqlf(m int, n int, a []float64, lda int, tau []float64) bool { + return isZero(C.LAPACKE_dgeqlf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Cgeqlf(m int, n int, a []complex64, lda int, tau []complex64) bool { + return isZero(C.LAPACKE_cgeqlf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zgeqlf(m int, n int, a []complex128, lda int, tau []complex128) bool { + return isZero(C.LAPACKE_zgeqlf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Sgeqp3(m int, n int, a []float32, lda int, jpvt []int32, tau []float32) bool { + return isZero(C.LAPACKE_sgeqp3((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&jpvt[0]), (*C.float)(&tau[0]))) +} + +func Dgeqp3(m int, n int, a []float64, lda int, jpvt []int32, tau []float64) bool { + return isZero(C.LAPACKE_dgeqp3((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&jpvt[0]), (*C.double)(&tau[0]))) +} + +func Cgeqp3(m int, n int, a []complex64, lda int, jpvt []int32, tau []complex64) bool { + return isZero(C.LAPACKE_cgeqp3((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&jpvt[0]), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zgeqp3(m int, n int, a []complex128, lda int, jpvt []int32, tau []complex128) bool { + return isZero(C.LAPACKE_zgeqp3((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&jpvt[0]), (*C.lapack_complex_double)(&tau[0]))) +} + +func Sgeqpf(m int, n int, a []float32, lda int, jpvt []int32, tau []float32) bool { + return isZero(C.LAPACKE_sgeqpf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&jpvt[0]), (*C.float)(&tau[0]))) +} + +func Dgeqpf(m int, n int, a []float64, lda int, jpvt []int32, tau []float64) bool { + return isZero(C.LAPACKE_dgeqpf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&jpvt[0]), (*C.double)(&tau[0]))) +} + +func Cgeqpf(m int, n int, a []complex64, lda int, jpvt []int32, tau []complex64) bool { + return isZero(C.LAPACKE_cgeqpf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&jpvt[0]), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zgeqpf(m int, n int, a []complex128, lda int, jpvt []int32, tau []complex128) bool { + return isZero(C.LAPACKE_zgeqpf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&jpvt[0]), (*C.lapack_complex_double)(&tau[0]))) +} + +func Sgeqr2(m int, n int, a []float32, lda int, tau []float32) bool { + return isZero(C.LAPACKE_sgeqr2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dgeqr2(m int, n int, a []float64, lda int, tau []float64) bool { + return isZero(C.LAPACKE_dgeqr2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Cgeqr2(m int, n int, a []complex64, lda int, tau []complex64) bool { + return isZero(C.LAPACKE_cgeqr2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zgeqr2(m int, n int, a []complex128, lda int, tau []complex128) bool { + return isZero(C.LAPACKE_zgeqr2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Sgeqrf(m int, n int, a []float32, lda int, tau []float32) bool { + return isZero(C.LAPACKE_sgeqrf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dgeqrf(m int, n int, a []float64, lda int, tau []float64) bool { + return isZero(C.LAPACKE_dgeqrf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Cgeqrf(m int, n int, a []complex64, lda int, tau []complex64) bool { + return isZero(C.LAPACKE_cgeqrf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zgeqrf(m int, n int, a []complex128, lda int, tau []complex128) bool { + return isZero(C.LAPACKE_zgeqrf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Sgeqrfp(m int, n int, a []float32, lda int, tau []float32) bool { + return isZero(C.LAPACKE_sgeqrfp((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dgeqrfp(m int, n int, a []float64, lda int, tau []float64) bool { + return isZero(C.LAPACKE_dgeqrfp((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Cgeqrfp(m int, n int, a []complex64, lda int, tau []complex64) bool { + return isZero(C.LAPACKE_cgeqrfp((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zgeqrfp(m int, n int, a []complex128, lda int, tau []complex128) bool { + return isZero(C.LAPACKE_zgeqrfp((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Sgerfs(trans blas.Transpose, n int, nrhs int, a []float32, lda int, af []float32, ldaf int, ipiv []int32, b []float32, ldb int, x []float32, ldx int, ferr []float32, berr []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sgerfs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dgerfs(trans blas.Transpose, n int, nrhs int, a []float64, lda int, af []float64, ldaf int, ipiv []int32, b []float64, ldb int, x []float64, ldx int, ferr []float64, berr []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dgerfs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Cgerfs(trans blas.Transpose, n int, nrhs int, a []complex64, lda int, af []complex64, ldaf int, ipiv []int32, b []complex64, ldb int, x []complex64, ldx int, ferr []float32, berr []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cgerfs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zgerfs(trans blas.Transpose, n int, nrhs int, a []complex128, lda int, af []complex128, ldaf int, ipiv []int32, b []complex128, ldb int, x []complex128, ldx int, ferr []float64, berr []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zgerfs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Sgerqf(m int, n int, a []float32, lda int, tau []float32) bool { + return isZero(C.LAPACKE_sgerqf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dgerqf(m int, n int, a []float64, lda int, tau []float64) bool { + return isZero(C.LAPACKE_dgerqf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Cgerqf(m int, n int, a []complex64, lda int, tau []complex64) bool { + return isZero(C.LAPACKE_cgerqf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zgerqf(m int, n int, a []complex128, lda int, tau []complex128) bool { + return isZero(C.LAPACKE_zgerqf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Sgesdd(jobz lapack.Job, m int, n int, a []float32, lda int, s []float32, u []float32, ldu int, vt []float32, ldvt int) bool { + return isZero(C.LAPACKE_sgesdd((C.int)(rowMajor), (C.char)(jobz), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&s[0]), (*C.float)(&u[0]), (C.lapack_int)(ldu), (*C.float)(&vt[0]), (C.lapack_int)(ldvt))) +} + +func Dgesdd(jobz lapack.Job, m int, n int, a []float64, lda int, s []float64, u []float64, ldu int, vt []float64, ldvt int) bool { + return isZero(C.LAPACKE_dgesdd((C.int)(rowMajor), (C.char)(jobz), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&s[0]), (*C.double)(&u[0]), (C.lapack_int)(ldu), (*C.double)(&vt[0]), (C.lapack_int)(ldvt))) +} + +func Cgesdd(jobz lapack.Job, m int, n int, a []complex64, lda int, s []float32, u []complex64, ldu int, vt []complex64, ldvt int) bool { + return isZero(C.LAPACKE_cgesdd((C.int)(rowMajor), (C.char)(jobz), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&s[0]), (*C.lapack_complex_float)(&u[0]), (C.lapack_int)(ldu), (*C.lapack_complex_float)(&vt[0]), (C.lapack_int)(ldvt))) +} + +func Zgesdd(jobz lapack.Job, m int, n int, a []complex128, lda int, s []float64, u []complex128, ldu int, vt []complex128, ldvt int) bool { + return isZero(C.LAPACKE_zgesdd((C.int)(rowMajor), (C.char)(jobz), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&s[0]), (*C.lapack_complex_double)(&u[0]), (C.lapack_int)(ldu), (*C.lapack_complex_double)(&vt[0]), (C.lapack_int)(ldvt))) +} + +func Sgesv(n int, nrhs int, a []float32, lda int, ipiv []int32, b []float32, ldb int) bool { + return isZero(C.LAPACKE_sgesv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dgesv(n int, nrhs int, a []float64, lda int, ipiv []int32, b []float64, ldb int) bool { + return isZero(C.LAPACKE_dgesv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cgesv(n int, nrhs int, a []complex64, lda int, ipiv []int32, b []complex64, ldb int) bool { + return isZero(C.LAPACKE_cgesv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zgesv(n int, nrhs int, a []complex128, lda int, ipiv []int32, b []complex128, ldb int) bool { + return isZero(C.LAPACKE_zgesv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dsgesv(n int, nrhs int, a []float64, lda int, ipiv []int32, b []float64, ldb int, x []float64, ldx int, iter []int32) bool { + return isZero(C.LAPACKE_dsgesv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.lapack_int)(&iter[0]))) +} + +func Zcgesv(n int, nrhs int, a []complex128, lda int, ipiv []int32, b []complex128, ldb int, x []complex128, ldx int, iter []int32) bool { + return isZero(C.LAPACKE_zcgesv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.lapack_int)(&iter[0]))) +} + +func Sgesvd(jobu lapack.Job, jobvt lapack.Job, m int, n int, a []float32, lda int, s []float32, u []float32, ldu int, vt []float32, ldvt int, superb []float32) bool { + return isZero(C.LAPACKE_sgesvd((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobvt), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&s[0]), (*C.float)(&u[0]), (C.lapack_int)(ldu), (*C.float)(&vt[0]), (C.lapack_int)(ldvt), (*C.float)(&superb[0]))) +} + +func Dgesvd(jobu lapack.Job, jobvt lapack.Job, m int, n int, a []float64, lda int, s []float64, u []float64, ldu int, vt []float64, ldvt int, superb []float64) bool { + return isZero(C.LAPACKE_dgesvd((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobvt), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&s[0]), (*C.double)(&u[0]), (C.lapack_int)(ldu), (*C.double)(&vt[0]), (C.lapack_int)(ldvt), (*C.double)(&superb[0]))) +} + +func Cgesvd(jobu lapack.Job, jobvt lapack.Job, m int, n int, a []complex64, lda int, s []float32, u []complex64, ldu int, vt []complex64, ldvt int, superb []float32) bool { + return isZero(C.LAPACKE_cgesvd((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobvt), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&s[0]), (*C.lapack_complex_float)(&u[0]), (C.lapack_int)(ldu), (*C.lapack_complex_float)(&vt[0]), (C.lapack_int)(ldvt), (*C.float)(&superb[0]))) +} + +func Zgesvd(jobu lapack.Job, jobvt lapack.Job, m int, n int, a []complex128, lda int, s []float64, u []complex128, ldu int, vt []complex128, ldvt int, superb []float64) bool { + return isZero(C.LAPACKE_zgesvd((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobvt), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&s[0]), (*C.lapack_complex_double)(&u[0]), (C.lapack_int)(ldu), (*C.lapack_complex_double)(&vt[0]), (C.lapack_int)(ldvt), (*C.double)(&superb[0]))) +} + +func Sgesvj(joba lapack.Job, jobu lapack.Job, jobv lapack.Job, m int, n int, a []float32, lda int, sva []float32, mv int, v []float32, ldv int, stat []float32) bool { + return isZero(C.LAPACKE_sgesvj((C.int)(rowMajor), (C.char)(joba), (C.char)(jobu), (C.char)(jobv), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&sva[0]), (C.lapack_int)(mv), (*C.float)(&v[0]), (C.lapack_int)(ldv), (*C.float)(&stat[0]))) +} + +func Dgesvj(joba lapack.Job, jobu lapack.Job, jobv lapack.Job, m int, n int, a []float64, lda int, sva []float64, mv int, v []float64, ldv int, stat []float64) bool { + return isZero(C.LAPACKE_dgesvj((C.int)(rowMajor), (C.char)(joba), (C.char)(jobu), (C.char)(jobv), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&sva[0]), (C.lapack_int)(mv), (*C.double)(&v[0]), (C.lapack_int)(ldv), (*C.double)(&stat[0]))) +} + +func Sgesvx(fact byte, trans blas.Transpose, n int, nrhs int, a []float32, lda int, af []float32, ldaf int, ipiv []int32, equed []byte, r []float32, c []float32, b []float32, ldb int, x []float32, ldx int, rcond []float32, ferr []float32, berr []float32, rpivot []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sgesvx((C.int)(rowMajor), (C.char)(fact), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.char)(unsafe.Pointer(&equed[0])), (*C.float)(&r[0]), (*C.float)(&c[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]), (*C.float)(&rpivot[0]))) +} + +func Dgesvx(fact byte, trans blas.Transpose, n int, nrhs int, a []float64, lda int, af []float64, ldaf int, ipiv []int32, equed []byte, r []float64, c []float64, b []float64, ldb int, x []float64, ldx int, rcond []float64, ferr []float64, berr []float64, rpivot []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dgesvx((C.int)(rowMajor), (C.char)(fact), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.char)(unsafe.Pointer(&equed[0])), (*C.double)(&r[0]), (*C.double)(&c[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]), (*C.double)(&rpivot[0]))) +} + +func Cgesvx(fact byte, trans blas.Transpose, n int, nrhs int, a []complex64, lda int, af []complex64, ldaf int, ipiv []int32, equed []byte, r []float32, c []float32, b []complex64, ldb int, x []complex64, ldx int, rcond []float32, ferr []float32, berr []float32, rpivot []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cgesvx((C.int)(rowMajor), (C.char)(fact), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.char)(unsafe.Pointer(&equed[0])), (*C.float)(&r[0]), (*C.float)(&c[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]), (*C.float)(&rpivot[0]))) +} + +func Zgesvx(fact byte, trans blas.Transpose, n int, nrhs int, a []complex128, lda int, af []complex128, ldaf int, ipiv []int32, equed []byte, r []float64, c []float64, b []complex128, ldb int, x []complex128, ldx int, rcond []float64, ferr []float64, berr []float64, rpivot []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zgesvx((C.int)(rowMajor), (C.char)(fact), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.char)(unsafe.Pointer(&equed[0])), (*C.double)(&r[0]), (*C.double)(&c[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]), (*C.double)(&rpivot[0]))) +} + +func Sgetf2(m int, n int, a []float32, lda int, ipiv []int32) bool { + return isZero(C.LAPACKE_sgetf2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Dgetf2(m int, n int, a []float64, lda int, ipiv []int32) bool { + return isZero(C.LAPACKE_dgetf2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Cgetf2(m int, n int, a []complex64, lda int, ipiv []int32) bool { + return isZero(C.LAPACKE_cgetf2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Zgetf2(m int, n int, a []complex128, lda int, ipiv []int32) bool { + return isZero(C.LAPACKE_zgetf2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Sgetrf(m int, n int, a []float32, lda int, ipiv []int32) bool { + return isZero(C.LAPACKE_sgetrf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Dgetrf(m int, n int, a []float64, lda int, ipiv []int32) bool { + return isZero(C.LAPACKE_dgetrf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Cgetrf(m int, n int, a []complex64, lda int, ipiv []int32) bool { + return isZero(C.LAPACKE_cgetrf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Zgetrf(m int, n int, a []complex128, lda int, ipiv []int32) bool { + return isZero(C.LAPACKE_zgetrf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Sgetri(n int, a []float32, lda int, ipiv []int32) bool { + return isZero(C.LAPACKE_sgetri((C.int)(rowMajor), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Dgetri(n int, a []float64, lda int, ipiv []int32) bool { + return isZero(C.LAPACKE_dgetri((C.int)(rowMajor), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Cgetri(n int, a []complex64, lda int, ipiv []int32) bool { + return isZero(C.LAPACKE_cgetri((C.int)(rowMajor), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Zgetri(n int, a []complex128, lda int, ipiv []int32) bool { + return isZero(C.LAPACKE_zgetri((C.int)(rowMajor), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Sgetrs(trans blas.Transpose, n int, nrhs int, a []float32, lda int, ipiv []int32, b []float32, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sgetrs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dgetrs(trans blas.Transpose, n int, nrhs int, a []float64, lda int, ipiv []int32, b []float64, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dgetrs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cgetrs(trans blas.Transpose, n int, nrhs int, a []complex64, lda int, ipiv []int32, b []complex64, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cgetrs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zgetrs(trans blas.Transpose, n int, nrhs int, a []complex128, lda int, ipiv []int32, b []complex128, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zgetrs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Sggbak(job lapack.Job, s blas.Side, n int, ilo int, ihi int, lscale []float32, rscale []float32, m int, v []float32, ldv int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + return isZero(C.LAPACKE_sggbak((C.int)(rowMajor), (C.char)(job), (C.char)(s), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.float)(&lscale[0]), (*C.float)(&rscale[0]), (C.lapack_int)(m), (*C.float)(&v[0]), (C.lapack_int)(ldv))) +} + +func Dggbak(job lapack.Job, s blas.Side, n int, ilo int, ihi int, lscale []float64, rscale []float64, m int, v []float64, ldv int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + return isZero(C.LAPACKE_dggbak((C.int)(rowMajor), (C.char)(job), (C.char)(s), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.double)(&lscale[0]), (*C.double)(&rscale[0]), (C.lapack_int)(m), (*C.double)(&v[0]), (C.lapack_int)(ldv))) +} + +func Cggbak(job lapack.Job, s blas.Side, n int, ilo int, ihi int, lscale []float32, rscale []float32, m int, v []complex64, ldv int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + return isZero(C.LAPACKE_cggbak((C.int)(rowMajor), (C.char)(job), (C.char)(s), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.float)(&lscale[0]), (*C.float)(&rscale[0]), (C.lapack_int)(m), (*C.lapack_complex_float)(&v[0]), (C.lapack_int)(ldv))) +} + +func Zggbak(job lapack.Job, s blas.Side, n int, ilo int, ihi int, lscale []float64, rscale []float64, m int, v []complex128, ldv int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + return isZero(C.LAPACKE_zggbak((C.int)(rowMajor), (C.char)(job), (C.char)(s), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.double)(&lscale[0]), (*C.double)(&rscale[0]), (C.lapack_int)(m), (*C.lapack_complex_double)(&v[0]), (C.lapack_int)(ldv))) +} + +func Sggbal(job lapack.Job, n int, a []float32, lda int, b []float32, ldb int, ilo []int32, ihi []int32, lscale []float32, rscale []float32) bool { + return isZero(C.LAPACKE_sggbal((C.int)(rowMajor), (C.char)(job), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.float)(&lscale[0]), (*C.float)(&rscale[0]))) +} + +func Dggbal(job lapack.Job, n int, a []float64, lda int, b []float64, ldb int, ilo []int32, ihi []int32, lscale []float64, rscale []float64) bool { + return isZero(C.LAPACKE_dggbal((C.int)(rowMajor), (C.char)(job), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.double)(&lscale[0]), (*C.double)(&rscale[0]))) +} + +func Cggbal(job lapack.Job, n int, a []complex64, lda int, b []complex64, ldb int, ilo []int32, ihi []int32, lscale []float32, rscale []float32) bool { + return isZero(C.LAPACKE_cggbal((C.int)(rowMajor), (C.char)(job), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.float)(&lscale[0]), (*C.float)(&rscale[0]))) +} + +func Zggbal(job lapack.Job, n int, a []complex128, lda int, b []complex128, ldb int, ilo []int32, ihi []int32, lscale []float64, rscale []float64) bool { + return isZero(C.LAPACKE_zggbal((C.int)(rowMajor), (C.char)(job), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.double)(&lscale[0]), (*C.double)(&rscale[0]))) +} + +func Sggev(jobvl lapack.Job, jobvr lapack.Job, n int, a []float32, lda int, b []float32, ldb int, alphar []float32, alphai []float32, beta []float32, vl []float32, ldvl int, vr []float32, ldvr int) bool { + return isZero(C.LAPACKE_sggev((C.int)(rowMajor), (C.char)(jobvl), (C.char)(jobvr), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&alphar[0]), (*C.float)(&alphai[0]), (*C.float)(&beta[0]), (*C.float)(&vl[0]), (C.lapack_int)(ldvl), (*C.float)(&vr[0]), (C.lapack_int)(ldvr))) +} + +func Dggev(jobvl lapack.Job, jobvr lapack.Job, n int, a []float64, lda int, b []float64, ldb int, alphar []float64, alphai []float64, beta []float64, vl []float64, ldvl int, vr []float64, ldvr int) bool { + return isZero(C.LAPACKE_dggev((C.int)(rowMajor), (C.char)(jobvl), (C.char)(jobvr), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&alphar[0]), (*C.double)(&alphai[0]), (*C.double)(&beta[0]), (*C.double)(&vl[0]), (C.lapack_int)(ldvl), (*C.double)(&vr[0]), (C.lapack_int)(ldvr))) +} + +func Cggev(jobvl lapack.Job, jobvr lapack.Job, n int, a []complex64, lda int, b []complex64, ldb int, alpha []complex64, beta []complex64, vl []complex64, ldvl int, vr []complex64, ldvr int) bool { + return isZero(C.LAPACKE_cggev((C.int)(rowMajor), (C.char)(jobvl), (C.char)(jobvr), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&alpha[0]), (*C.lapack_complex_float)(&beta[0]), (*C.lapack_complex_float)(&vl[0]), (C.lapack_int)(ldvl), (*C.lapack_complex_float)(&vr[0]), (C.lapack_int)(ldvr))) +} + +func Zggev(jobvl lapack.Job, jobvr lapack.Job, n int, a []complex128, lda int, b []complex128, ldb int, alpha []complex128, beta []complex128, vl []complex128, ldvl int, vr []complex128, ldvr int) bool { + return isZero(C.LAPACKE_zggev((C.int)(rowMajor), (C.char)(jobvl), (C.char)(jobvr), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&alpha[0]), (*C.lapack_complex_double)(&beta[0]), (*C.lapack_complex_double)(&vl[0]), (C.lapack_int)(ldvl), (*C.lapack_complex_double)(&vr[0]), (C.lapack_int)(ldvr))) +} + +func Sggevx(balanc byte, jobvl lapack.Job, jobvr lapack.Job, sense byte, n int, a []float32, lda int, b []float32, ldb int, alphar []float32, alphai []float32, beta []float32, vl []float32, ldvl int, vr []float32, ldvr int, ilo []int32, ihi []int32, lscale []float32, rscale []float32, abnrm []float32, bbnrm []float32, rconde []float32, rcondv []float32) bool { + return isZero(C.LAPACKE_sggevx((C.int)(rowMajor), (C.char)(balanc), (C.char)(jobvl), (C.char)(jobvr), (C.char)(sense), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&alphar[0]), (*C.float)(&alphai[0]), (*C.float)(&beta[0]), (*C.float)(&vl[0]), (C.lapack_int)(ldvl), (*C.float)(&vr[0]), (C.lapack_int)(ldvr), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.float)(&lscale[0]), (*C.float)(&rscale[0]), (*C.float)(&abnrm[0]), (*C.float)(&bbnrm[0]), (*C.float)(&rconde[0]), (*C.float)(&rcondv[0]))) +} + +func Dggevx(balanc byte, jobvl lapack.Job, jobvr lapack.Job, sense byte, n int, a []float64, lda int, b []float64, ldb int, alphar []float64, alphai []float64, beta []float64, vl []float64, ldvl int, vr []float64, ldvr int, ilo []int32, ihi []int32, lscale []float64, rscale []float64, abnrm []float64, bbnrm []float64, rconde []float64, rcondv []float64) bool { + return isZero(C.LAPACKE_dggevx((C.int)(rowMajor), (C.char)(balanc), (C.char)(jobvl), (C.char)(jobvr), (C.char)(sense), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&alphar[0]), (*C.double)(&alphai[0]), (*C.double)(&beta[0]), (*C.double)(&vl[0]), (C.lapack_int)(ldvl), (*C.double)(&vr[0]), (C.lapack_int)(ldvr), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.double)(&lscale[0]), (*C.double)(&rscale[0]), (*C.double)(&abnrm[0]), (*C.double)(&bbnrm[0]), (*C.double)(&rconde[0]), (*C.double)(&rcondv[0]))) +} + +func Cggevx(balanc byte, jobvl lapack.Job, jobvr lapack.Job, sense byte, n int, a []complex64, lda int, b []complex64, ldb int, alpha []complex64, beta []complex64, vl []complex64, ldvl int, vr []complex64, ldvr int, ilo []int32, ihi []int32, lscale []float32, rscale []float32, abnrm []float32, bbnrm []float32, rconde []float32, rcondv []float32) bool { + return isZero(C.LAPACKE_cggevx((C.int)(rowMajor), (C.char)(balanc), (C.char)(jobvl), (C.char)(jobvr), (C.char)(sense), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&alpha[0]), (*C.lapack_complex_float)(&beta[0]), (*C.lapack_complex_float)(&vl[0]), (C.lapack_int)(ldvl), (*C.lapack_complex_float)(&vr[0]), (C.lapack_int)(ldvr), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.float)(&lscale[0]), (*C.float)(&rscale[0]), (*C.float)(&abnrm[0]), (*C.float)(&bbnrm[0]), (*C.float)(&rconde[0]), (*C.float)(&rcondv[0]))) +} + +func Zggevx(balanc byte, jobvl lapack.Job, jobvr lapack.Job, sense byte, n int, a []complex128, lda int, b []complex128, ldb int, alpha []complex128, beta []complex128, vl []complex128, ldvl int, vr []complex128, ldvr int, ilo []int32, ihi []int32, lscale []float64, rscale []float64, abnrm []float64, bbnrm []float64, rconde []float64, rcondv []float64) bool { + return isZero(C.LAPACKE_zggevx((C.int)(rowMajor), (C.char)(balanc), (C.char)(jobvl), (C.char)(jobvr), (C.char)(sense), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&alpha[0]), (*C.lapack_complex_double)(&beta[0]), (*C.lapack_complex_double)(&vl[0]), (C.lapack_int)(ldvl), (*C.lapack_complex_double)(&vr[0]), (C.lapack_int)(ldvr), (*C.lapack_int)(&ilo[0]), (*C.lapack_int)(&ihi[0]), (*C.double)(&lscale[0]), (*C.double)(&rscale[0]), (*C.double)(&abnrm[0]), (*C.double)(&bbnrm[0]), (*C.double)(&rconde[0]), (*C.double)(&rcondv[0]))) +} + +func Sggglm(n int, m int, p int, a []float32, lda int, b []float32, ldb int, d []float32, x []float32, y []float32) bool { + return isZero(C.LAPACKE_sggglm((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(m), (C.lapack_int)(p), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&d[0]), (*C.float)(&x[0]), (*C.float)(&y[0]))) +} + +func Dggglm(n int, m int, p int, a []float64, lda int, b []float64, ldb int, d []float64, x []float64, y []float64) bool { + return isZero(C.LAPACKE_dggglm((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(m), (C.lapack_int)(p), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&d[0]), (*C.double)(&x[0]), (*C.double)(&y[0]))) +} + +func Cggglm(n int, m int, p int, a []complex64, lda int, b []complex64, ldb int, d []complex64, x []complex64, y []complex64) bool { + return isZero(C.LAPACKE_cggglm((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(m), (C.lapack_int)(p), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&d[0]), (*C.lapack_complex_float)(&x[0]), (*C.lapack_complex_float)(&y[0]))) +} + +func Zggglm(n int, m int, p int, a []complex128, lda int, b []complex128, ldb int, d []complex128, x []complex128, y []complex128) bool { + return isZero(C.LAPACKE_zggglm((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(m), (C.lapack_int)(p), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&d[0]), (*C.lapack_complex_double)(&x[0]), (*C.lapack_complex_double)(&y[0]))) +} + +func Sgghrd(compq lapack.CompSV, compz lapack.CompSV, n int, ilo int, ihi int, a []float32, lda int, b []float32, ldb int, q []float32, ldq int, z []float32, ldz int) bool { + return isZero(C.LAPACKE_sgghrd((C.int)(rowMajor), (C.char)(compq), (C.char)(compz), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&q[0]), (C.lapack_int)(ldq), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dgghrd(compq lapack.CompSV, compz lapack.CompSV, n int, ilo int, ihi int, a []float64, lda int, b []float64, ldb int, q []float64, ldq int, z []float64, ldz int) bool { + return isZero(C.LAPACKE_dgghrd((C.int)(rowMajor), (C.char)(compq), (C.char)(compz), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&q[0]), (C.lapack_int)(ldq), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Cgghrd(compq lapack.CompSV, compz lapack.CompSV, n int, ilo int, ihi int, a []complex64, lda int, b []complex64, ldb int, q []complex64, ldq int, z []complex64, ldz int) bool { + return isZero(C.LAPACKE_cgghrd((C.int)(rowMajor), (C.char)(compq), (C.char)(compz), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Zgghrd(compq lapack.CompSV, compz lapack.CompSV, n int, ilo int, ihi int, a []complex128, lda int, b []complex128, ldb int, q []complex128, ldq int, z []complex128, ldz int) bool { + return isZero(C.LAPACKE_zgghrd((C.int)(rowMajor), (C.char)(compq), (C.char)(compz), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Sgglse(m int, n int, p int, a []float32, lda int, b []float32, ldb int, c []float32, d []float32, x []float32) bool { + return isZero(C.LAPACKE_sgglse((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(p), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&c[0]), (*C.float)(&d[0]), (*C.float)(&x[0]))) +} + +func Dgglse(m int, n int, p int, a []float64, lda int, b []float64, ldb int, c []float64, d []float64, x []float64) bool { + return isZero(C.LAPACKE_dgglse((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(p), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&c[0]), (*C.double)(&d[0]), (*C.double)(&x[0]))) +} + +func Cgglse(m int, n int, p int, a []complex64, lda int, b []complex64, ldb int, c []complex64, d []complex64, x []complex64) bool { + return isZero(C.LAPACKE_cgglse((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(p), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&c[0]), (*C.lapack_complex_float)(&d[0]), (*C.lapack_complex_float)(&x[0]))) +} + +func Zgglse(m int, n int, p int, a []complex128, lda int, b []complex128, ldb int, c []complex128, d []complex128, x []complex128) bool { + return isZero(C.LAPACKE_zgglse((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(p), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&c[0]), (*C.lapack_complex_double)(&d[0]), (*C.lapack_complex_double)(&x[0]))) +} + +func Sggqrf(n int, m int, p int, a []float32, lda int, taua []float32, b []float32, ldb int, taub []float32) bool { + return isZero(C.LAPACKE_sggqrf((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(m), (C.lapack_int)(p), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&taua[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&taub[0]))) +} + +func Dggqrf(n int, m int, p int, a []float64, lda int, taua []float64, b []float64, ldb int, taub []float64) bool { + return isZero(C.LAPACKE_dggqrf((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(m), (C.lapack_int)(p), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&taua[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&taub[0]))) +} + +func Cggqrf(n int, m int, p int, a []complex64, lda int, taua []complex64, b []complex64, ldb int, taub []complex64) bool { + return isZero(C.LAPACKE_cggqrf((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(m), (C.lapack_int)(p), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&taua[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&taub[0]))) +} + +func Zggqrf(n int, m int, p int, a []complex128, lda int, taua []complex128, b []complex128, ldb int, taub []complex128) bool { + return isZero(C.LAPACKE_zggqrf((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(m), (C.lapack_int)(p), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&taua[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&taub[0]))) +} + +func Sggrqf(m int, p int, n int, a []float32, lda int, taua []float32, b []float32, ldb int, taub []float32) bool { + return isZero(C.LAPACKE_sggrqf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&taua[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&taub[0]))) +} + +func Dggrqf(m int, p int, n int, a []float64, lda int, taua []float64, b []float64, ldb int, taub []float64) bool { + return isZero(C.LAPACKE_dggrqf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&taua[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&taub[0]))) +} + +func Cggrqf(m int, p int, n int, a []complex64, lda int, taua []complex64, b []complex64, ldb int, taub []complex64) bool { + return isZero(C.LAPACKE_cggrqf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&taua[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&taub[0]))) +} + +func Zggrqf(m int, p int, n int, a []complex128, lda int, taua []complex128, b []complex128, ldb int, taub []complex128) bool { + return isZero(C.LAPACKE_zggrqf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&taua[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&taub[0]))) +} + +func Sggsvd(jobu lapack.Job, jobv lapack.Job, jobq lapack.Job, m int, n int, p int, k []int32, l []int32, a []float32, lda int, b []float32, ldb int, alpha []float32, beta []float32, u []float32, ldu int, v []float32, ldv int, q []float32, ldq int, iwork []int32) bool { + return isZero(C.LAPACKE_sggsvd((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobv), (C.char)(jobq), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(p), (*C.lapack_int)(&k[0]), (*C.lapack_int)(&l[0]), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&alpha[0]), (*C.float)(&beta[0]), (*C.float)(&u[0]), (C.lapack_int)(ldu), (*C.float)(&v[0]), (C.lapack_int)(ldv), (*C.float)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_int)(&iwork[0]))) +} + +func Dggsvd(jobu lapack.Job, jobv lapack.Job, jobq lapack.Job, m int, n int, p int, k []int32, l []int32, a []float64, lda int, b []float64, ldb int, alpha []float64, beta []float64, u []float64, ldu int, v []float64, ldv int, q []float64, ldq int, iwork []int32) bool { + return isZero(C.LAPACKE_dggsvd((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobv), (C.char)(jobq), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(p), (*C.lapack_int)(&k[0]), (*C.lapack_int)(&l[0]), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&alpha[0]), (*C.double)(&beta[0]), (*C.double)(&u[0]), (C.lapack_int)(ldu), (*C.double)(&v[0]), (C.lapack_int)(ldv), (*C.double)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_int)(&iwork[0]))) +} + +func Cggsvd(jobu lapack.Job, jobv lapack.Job, jobq lapack.Job, m int, n int, p int, k []int32, l []int32, a []complex64, lda int, b []complex64, ldb int, alpha []float32, beta []float32, u []complex64, ldu int, v []complex64, ldv int, q []complex64, ldq int, iwork []int32) bool { + return isZero(C.LAPACKE_cggsvd((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobv), (C.char)(jobq), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(p), (*C.lapack_int)(&k[0]), (*C.lapack_int)(&l[0]), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&alpha[0]), (*C.float)(&beta[0]), (*C.lapack_complex_float)(&u[0]), (C.lapack_int)(ldu), (*C.lapack_complex_float)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_float)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_int)(&iwork[0]))) +} + +func Zggsvd(jobu lapack.Job, jobv lapack.Job, jobq lapack.Job, m int, n int, p int, k []int32, l []int32, a []complex128, lda int, b []complex128, ldb int, alpha []float64, beta []float64, u []complex128, ldu int, v []complex128, ldv int, q []complex128, ldq int, iwork []int32) bool { + return isZero(C.LAPACKE_zggsvd((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobv), (C.char)(jobq), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(p), (*C.lapack_int)(&k[0]), (*C.lapack_int)(&l[0]), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&alpha[0]), (*C.double)(&beta[0]), (*C.lapack_complex_double)(&u[0]), (C.lapack_int)(ldu), (*C.lapack_complex_double)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_double)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_int)(&iwork[0]))) +} + +func Sggsvp(jobu lapack.Job, jobv lapack.Job, jobq lapack.Job, m int, p int, n int, a []float32, lda int, b []float32, ldb int, tola float32, tolb float32, k []int32, l []int32, u []float32, ldu int, v []float32, ldv int, q []float32, ldq int) bool { + return isZero(C.LAPACKE_sggsvp((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobv), (C.char)(jobq), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (C.float)(tola), (C.float)(tolb), (*C.lapack_int)(&k[0]), (*C.lapack_int)(&l[0]), (*C.float)(&u[0]), (C.lapack_int)(ldu), (*C.float)(&v[0]), (C.lapack_int)(ldv), (*C.float)(&q[0]), (C.lapack_int)(ldq))) +} + +func Dggsvp(jobu lapack.Job, jobv lapack.Job, jobq lapack.Job, m int, p int, n int, a []float64, lda int, b []float64, ldb int, tola float64, tolb float64, k []int32, l []int32, u []float64, ldu int, v []float64, ldv int, q []float64, ldq int) bool { + return isZero(C.LAPACKE_dggsvp((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobv), (C.char)(jobq), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (C.double)(tola), (C.double)(tolb), (*C.lapack_int)(&k[0]), (*C.lapack_int)(&l[0]), (*C.double)(&u[0]), (C.lapack_int)(ldu), (*C.double)(&v[0]), (C.lapack_int)(ldv), (*C.double)(&q[0]), (C.lapack_int)(ldq))) +} + +func Cggsvp(jobu lapack.Job, jobv lapack.Job, jobq lapack.Job, m int, p int, n int, a []complex64, lda int, b []complex64, ldb int, tola float32, tolb float32, k []int32, l []int32, u []complex64, ldu int, v []complex64, ldv int, q []complex64, ldq int) bool { + return isZero(C.LAPACKE_cggsvp((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobv), (C.char)(jobq), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (C.float)(tola), (C.float)(tolb), (*C.lapack_int)(&k[0]), (*C.lapack_int)(&l[0]), (*C.lapack_complex_float)(&u[0]), (C.lapack_int)(ldu), (*C.lapack_complex_float)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_float)(&q[0]), (C.lapack_int)(ldq))) +} + +func Zggsvp(jobu lapack.Job, jobv lapack.Job, jobq lapack.Job, m int, p int, n int, a []complex128, lda int, b []complex128, ldb int, tola float64, tolb float64, k []int32, l []int32, u []complex128, ldu int, v []complex128, ldv int, q []complex128, ldq int) bool { + return isZero(C.LAPACKE_zggsvp((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobv), (C.char)(jobq), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (C.double)(tola), (C.double)(tolb), (*C.lapack_int)(&k[0]), (*C.lapack_int)(&l[0]), (*C.lapack_complex_double)(&u[0]), (C.lapack_int)(ldu), (*C.lapack_complex_double)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_double)(&q[0]), (C.lapack_int)(ldq))) +} + +func Sgtcon(norm byte, n int, dl []float32, d []float32, du []float32, du2 []float32, ipiv []int32, anorm float32, rcond []float32) bool { + return isZero(C.LAPACKE_sgtcon((C.char)(norm), (C.lapack_int)(n), (*C.float)(&dl[0]), (*C.float)(&d[0]), (*C.float)(&du[0]), (*C.float)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Dgtcon(norm byte, n int, dl []float64, d []float64, du []float64, du2 []float64, ipiv []int32, anorm float64, rcond []float64) bool { + return isZero(C.LAPACKE_dgtcon((C.char)(norm), (C.lapack_int)(n), (*C.double)(&dl[0]), (*C.double)(&d[0]), (*C.double)(&du[0]), (*C.double)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Cgtcon(norm byte, n int, dl []complex64, d []complex64, du []complex64, du2 []complex64, ipiv []int32, anorm float32, rcond []float32) bool { + return isZero(C.LAPACKE_cgtcon((C.char)(norm), (C.lapack_int)(n), (*C.lapack_complex_float)(&dl[0]), (*C.lapack_complex_float)(&d[0]), (*C.lapack_complex_float)(&du[0]), (*C.lapack_complex_float)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Zgtcon(norm byte, n int, dl []complex128, d []complex128, du []complex128, du2 []complex128, ipiv []int32, anorm float64, rcond []float64) bool { + return isZero(C.LAPACKE_zgtcon((C.char)(norm), (C.lapack_int)(n), (*C.lapack_complex_double)(&dl[0]), (*C.lapack_complex_double)(&d[0]), (*C.lapack_complex_double)(&du[0]), (*C.lapack_complex_double)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Sgtrfs(trans blas.Transpose, n int, nrhs int, dl []float32, d []float32, du []float32, dlf []float32, df []float32, duf []float32, du2 []float32, ipiv []int32, b []float32, ldb int, x []float32, ldx int, ferr []float32, berr []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sgtrfs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&dl[0]), (*C.float)(&d[0]), (*C.float)(&du[0]), (*C.float)(&dlf[0]), (*C.float)(&df[0]), (*C.float)(&duf[0]), (*C.float)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dgtrfs(trans blas.Transpose, n int, nrhs int, dl []float64, d []float64, du []float64, dlf []float64, df []float64, duf []float64, du2 []float64, ipiv []int32, b []float64, ldb int, x []float64, ldx int, ferr []float64, berr []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dgtrfs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&dl[0]), (*C.double)(&d[0]), (*C.double)(&du[0]), (*C.double)(&dlf[0]), (*C.double)(&df[0]), (*C.double)(&duf[0]), (*C.double)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Cgtrfs(trans blas.Transpose, n int, nrhs int, dl []complex64, d []complex64, du []complex64, dlf []complex64, df []complex64, duf []complex64, du2 []complex64, ipiv []int32, b []complex64, ldb int, x []complex64, ldx int, ferr []float32, berr []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cgtrfs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&dl[0]), (*C.lapack_complex_float)(&d[0]), (*C.lapack_complex_float)(&du[0]), (*C.lapack_complex_float)(&dlf[0]), (*C.lapack_complex_float)(&df[0]), (*C.lapack_complex_float)(&duf[0]), (*C.lapack_complex_float)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zgtrfs(trans blas.Transpose, n int, nrhs int, dl []complex128, d []complex128, du []complex128, dlf []complex128, df []complex128, duf []complex128, du2 []complex128, ipiv []int32, b []complex128, ldb int, x []complex128, ldx int, ferr []float64, berr []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zgtrfs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&dl[0]), (*C.lapack_complex_double)(&d[0]), (*C.lapack_complex_double)(&du[0]), (*C.lapack_complex_double)(&dlf[0]), (*C.lapack_complex_double)(&df[0]), (*C.lapack_complex_double)(&duf[0]), (*C.lapack_complex_double)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Sgtsv(n int, nrhs int, dl []float32, d []float32, du []float32, b []float32, ldb int) bool { + return isZero(C.LAPACKE_sgtsv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&dl[0]), (*C.float)(&d[0]), (*C.float)(&du[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dgtsv(n int, nrhs int, dl []float64, d []float64, du []float64, b []float64, ldb int) bool { + return isZero(C.LAPACKE_dgtsv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&dl[0]), (*C.double)(&d[0]), (*C.double)(&du[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cgtsv(n int, nrhs int, dl []complex64, d []complex64, du []complex64, b []complex64, ldb int) bool { + return isZero(C.LAPACKE_cgtsv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&dl[0]), (*C.lapack_complex_float)(&d[0]), (*C.lapack_complex_float)(&du[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zgtsv(n int, nrhs int, dl []complex128, d []complex128, du []complex128, b []complex128, ldb int) bool { + return isZero(C.LAPACKE_zgtsv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&dl[0]), (*C.lapack_complex_double)(&d[0]), (*C.lapack_complex_double)(&du[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Sgtsvx(fact byte, trans blas.Transpose, n int, nrhs int, dl []float32, d []float32, du []float32, dlf []float32, df []float32, duf []float32, du2 []float32, ipiv []int32, b []float32, ldb int, x []float32, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sgtsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&dl[0]), (*C.float)(&d[0]), (*C.float)(&du[0]), (*C.float)(&dlf[0]), (*C.float)(&df[0]), (*C.float)(&duf[0]), (*C.float)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dgtsvx(fact byte, trans blas.Transpose, n int, nrhs int, dl []float64, d []float64, du []float64, dlf []float64, df []float64, duf []float64, du2 []float64, ipiv []int32, b []float64, ldb int, x []float64, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dgtsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&dl[0]), (*C.double)(&d[0]), (*C.double)(&du[0]), (*C.double)(&dlf[0]), (*C.double)(&df[0]), (*C.double)(&duf[0]), (*C.double)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Cgtsvx(fact byte, trans blas.Transpose, n int, nrhs int, dl []complex64, d []complex64, du []complex64, dlf []complex64, df []complex64, duf []complex64, du2 []complex64, ipiv []int32, b []complex64, ldb int, x []complex64, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cgtsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&dl[0]), (*C.lapack_complex_float)(&d[0]), (*C.lapack_complex_float)(&du[0]), (*C.lapack_complex_float)(&dlf[0]), (*C.lapack_complex_float)(&df[0]), (*C.lapack_complex_float)(&duf[0]), (*C.lapack_complex_float)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zgtsvx(fact byte, trans blas.Transpose, n int, nrhs int, dl []complex128, d []complex128, du []complex128, dlf []complex128, df []complex128, duf []complex128, du2 []complex128, ipiv []int32, b []complex128, ldb int, x []complex128, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zgtsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&dl[0]), (*C.lapack_complex_double)(&d[0]), (*C.lapack_complex_double)(&du[0]), (*C.lapack_complex_double)(&dlf[0]), (*C.lapack_complex_double)(&df[0]), (*C.lapack_complex_double)(&duf[0]), (*C.lapack_complex_double)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Sgttrf(n int, dl []float32, d []float32, du []float32, du2 []float32, ipiv []int32) bool { + return isZero(C.LAPACKE_sgttrf((C.lapack_int)(n), (*C.float)(&dl[0]), (*C.float)(&d[0]), (*C.float)(&du[0]), (*C.float)(&du2[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Dgttrf(n int, dl []float64, d []float64, du []float64, du2 []float64, ipiv []int32) bool { + return isZero(C.LAPACKE_dgttrf((C.lapack_int)(n), (*C.double)(&dl[0]), (*C.double)(&d[0]), (*C.double)(&du[0]), (*C.double)(&du2[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Cgttrf(n int, dl []complex64, d []complex64, du []complex64, du2 []complex64, ipiv []int32) bool { + return isZero(C.LAPACKE_cgttrf((C.lapack_int)(n), (*C.lapack_complex_float)(&dl[0]), (*C.lapack_complex_float)(&d[0]), (*C.lapack_complex_float)(&du[0]), (*C.lapack_complex_float)(&du2[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Zgttrf(n int, dl []complex128, d []complex128, du []complex128, du2 []complex128, ipiv []int32) bool { + return isZero(C.LAPACKE_zgttrf((C.lapack_int)(n), (*C.lapack_complex_double)(&dl[0]), (*C.lapack_complex_double)(&d[0]), (*C.lapack_complex_double)(&du[0]), (*C.lapack_complex_double)(&du2[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Sgttrs(trans blas.Transpose, n int, nrhs int, dl []float32, d []float32, du []float32, du2 []float32, ipiv []int32, b []float32, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sgttrs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&dl[0]), (*C.float)(&d[0]), (*C.float)(&du[0]), (*C.float)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dgttrs(trans blas.Transpose, n int, nrhs int, dl []float64, d []float64, du []float64, du2 []float64, ipiv []int32, b []float64, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dgttrs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&dl[0]), (*C.double)(&d[0]), (*C.double)(&du[0]), (*C.double)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cgttrs(trans blas.Transpose, n int, nrhs int, dl []complex64, d []complex64, du []complex64, du2 []complex64, ipiv []int32, b []complex64, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cgttrs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&dl[0]), (*C.lapack_complex_float)(&d[0]), (*C.lapack_complex_float)(&du[0]), (*C.lapack_complex_float)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zgttrs(trans blas.Transpose, n int, nrhs int, dl []complex128, d []complex128, du []complex128, du2 []complex128, ipiv []int32, b []complex128, ldb int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zgttrs((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&dl[0]), (*C.lapack_complex_double)(&d[0]), (*C.lapack_complex_double)(&du[0]), (*C.lapack_complex_double)(&du2[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Chbev(jobz lapack.Job, ul blas.Uplo, n int, kd int, ab []complex64, ldab int, w []float32, z []complex64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chbev((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Zhbev(jobz lapack.Job, ul blas.Uplo, n int, kd int, ab []complex128, ldab int, w []float64, z []complex128, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhbev((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Chbevd(jobz lapack.Job, ul blas.Uplo, n int, kd int, ab []complex64, ldab int, w []float32, z []complex64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chbevd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Zhbevd(jobz lapack.Job, ul blas.Uplo, n int, kd int, ab []complex128, ldab int, w []float64, z []complex128, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhbevd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Chbevx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, kd int, ab []complex64, ldab int, q []complex64, ldq int, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []complex64, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chbevx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_float)(&q[0]), (C.lapack_int)(ldq), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Zhbevx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, kd int, ab []complex128, ldab int, q []complex128, ldq int, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []complex128, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhbevx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_double)(&q[0]), (C.lapack_int)(ldq), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Chbgst(vect byte, ul blas.Uplo, n int, ka int, kb int, ab []complex64, ldab int, bb []complex64, ldbb int, x []complex64, ldx int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chbgst((C.int)(rowMajor), (C.char)(vect), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_float)(&bb[0]), (C.lapack_int)(ldbb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx))) +} + +func Zhbgst(vect byte, ul blas.Uplo, n int, ka int, kb int, ab []complex128, ldab int, bb []complex128, ldbb int, x []complex128, ldx int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhbgst((C.int)(rowMajor), (C.char)(vect), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_double)(&bb[0]), (C.lapack_int)(ldbb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx))) +} + +func Chbgv(jobz lapack.Job, ul blas.Uplo, n int, ka int, kb int, ab []complex64, ldab int, bb []complex64, ldbb int, w []float32, z []complex64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chbgv((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_float)(&bb[0]), (C.lapack_int)(ldbb), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Zhbgv(jobz lapack.Job, ul blas.Uplo, n int, ka int, kb int, ab []complex128, ldab int, bb []complex128, ldbb int, w []float64, z []complex128, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhbgv((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_double)(&bb[0]), (C.lapack_int)(ldbb), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Chbgvd(jobz lapack.Job, ul blas.Uplo, n int, ka int, kb int, ab []complex64, ldab int, bb []complex64, ldbb int, w []float32, z []complex64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chbgvd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_float)(&bb[0]), (C.lapack_int)(ldbb), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Zhbgvd(jobz lapack.Job, ul blas.Uplo, n int, ka int, kb int, ab []complex128, ldab int, bb []complex128, ldbb int, w []float64, z []complex128, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhbgvd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_double)(&bb[0]), (C.lapack_int)(ldbb), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Chbgvx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, ka int, kb int, ab []complex64, ldab int, bb []complex64, ldbb int, q []complex64, ldq int, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []complex64, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chbgvx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_float)(&bb[0]), (C.lapack_int)(ldbb), (*C.lapack_complex_float)(&q[0]), (C.lapack_int)(ldq), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Zhbgvx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, ka int, kb int, ab []complex128, ldab int, bb []complex128, ldbb int, q []complex128, ldq int, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []complex128, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhbgvx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_double)(&bb[0]), (C.lapack_int)(ldbb), (*C.lapack_complex_double)(&q[0]), (C.lapack_int)(ldq), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Chbtrd(vect byte, ul blas.Uplo, n int, kd int, ab []complex64, ldab int, d []float32, e []float32, q []complex64, ldq int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chbtrd((C.int)(rowMajor), (C.char)(vect), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.lapack_complex_float)(&q[0]), (C.lapack_int)(ldq))) +} + +func Zhbtrd(vect byte, ul blas.Uplo, n int, kd int, ab []complex128, ldab int, d []float64, e []float64, q []complex128, ldq int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhbtrd((C.int)(rowMajor), (C.char)(vect), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.lapack_complex_double)(&q[0]), (C.lapack_int)(ldq))) +} + +func Checon(ul blas.Uplo, n int, a []complex64, lda int, ipiv []int32, anorm float32, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_checon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Zhecon(ul blas.Uplo, n int, a []complex128, lda int, ipiv []int32, anorm float64, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhecon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Cheequb(ul blas.Uplo, n int, a []complex64, lda int, s []float32, scond []float32, amax []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cheequb((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&s[0]), (*C.float)(&scond[0]), (*C.float)(&amax[0]))) +} + +func Zheequb(ul blas.Uplo, n int, a []complex128, lda int, s []float64, scond []float64, amax []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zheequb((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&s[0]), (*C.double)(&scond[0]), (*C.double)(&amax[0]))) +} + +func Cheev(jobz lapack.Job, ul blas.Uplo, n int, a []complex64, lda int, w []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cheev((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&w[0]))) +} + +func Zheev(jobz lapack.Job, ul blas.Uplo, n int, a []complex128, lda int, w []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zheev((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&w[0]))) +} + +func Cheevd(jobz lapack.Job, ul blas.Uplo, n int, a []complex64, lda int, w []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cheevd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&w[0]))) +} + +func Zheevd(jobz lapack.Job, ul blas.Uplo, n int, a []complex128, lda int, w []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zheevd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&w[0]))) +} + +func Cheevr(jobz lapack.Job, rng byte, ul blas.Uplo, n int, a []complex64, lda int, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []complex64, ldz int, isuppz []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cheevr((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&isuppz[0]))) +} + +func Zheevr(jobz lapack.Job, rng byte, ul blas.Uplo, n int, a []complex128, lda int, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []complex128, ldz int, isuppz []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zheevr((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&isuppz[0]))) +} + +func Cheevx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, a []complex64, lda int, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []complex64, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cheevx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Zheevx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, a []complex128, lda int, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []complex128, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zheevx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Chegst(itype int, ul blas.Uplo, n int, a []complex64, lda int, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chegst((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zhegst(itype int, ul blas.Uplo, n int, a []complex128, lda int, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhegst((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Chegv(itype int, jobz lapack.Job, ul blas.Uplo, n int, a []complex64, lda int, b []complex64, ldb int, w []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chegv((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&w[0]))) +} + +func Zhegv(itype int, jobz lapack.Job, ul blas.Uplo, n int, a []complex128, lda int, b []complex128, ldb int, w []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhegv((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&w[0]))) +} + +func Chegvd(itype int, jobz lapack.Job, ul blas.Uplo, n int, a []complex64, lda int, b []complex64, ldb int, w []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chegvd((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&w[0]))) +} + +func Zhegvd(itype int, jobz lapack.Job, ul blas.Uplo, n int, a []complex128, lda int, b []complex128, ldb int, w []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhegvd((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&w[0]))) +} + +func Chegvx(itype int, jobz lapack.Job, rng byte, ul blas.Uplo, n int, a []complex64, lda int, b []complex64, ldb int, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []complex64, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chegvx((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Zhegvx(itype int, jobz lapack.Job, rng byte, ul blas.Uplo, n int, a []complex128, lda int, b []complex128, ldb int, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []complex128, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhegvx((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Cherfs(ul blas.Uplo, n int, nrhs int, a []complex64, lda int, af []complex64, ldaf int, ipiv []int32, b []complex64, ldb int, x []complex64, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cherfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zherfs(ul blas.Uplo, n int, nrhs int, a []complex128, lda int, af []complex128, ldaf int, ipiv []int32, b []complex128, ldb int, x []complex128, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zherfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Chesv(ul blas.Uplo, n int, nrhs int, a []complex64, lda int, ipiv []int32, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chesv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zhesv(ul blas.Uplo, n int, nrhs int, a []complex128, lda int, ipiv []int32, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhesv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Chesvx(fact byte, ul blas.Uplo, n int, nrhs int, a []complex64, lda int, af []complex64, ldaf int, ipiv []int32, b []complex64, ldb int, x []complex64, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chesvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zhesvx(fact byte, ul blas.Uplo, n int, nrhs int, a []complex128, lda int, af []complex128, ldaf int, ipiv []int32, b []complex128, ldb int, x []complex128, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhesvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Chetrd(ul blas.Uplo, n int, a []complex64, lda int, d []float32, e []float32, tau []complex64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chetrd((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zhetrd(ul blas.Uplo, n int, a []complex128, lda int, d []float64, e []float64, tau []complex128) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhetrd((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.lapack_complex_double)(&tau[0]))) +} + +func Chetrf(ul blas.Uplo, n int, a []complex64, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chetrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Zhetrf(ul blas.Uplo, n int, a []complex128, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhetrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Chetri(ul blas.Uplo, n int, a []complex64, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chetri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Zhetri(ul blas.Uplo, n int, a []complex128, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhetri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Chetrs(ul blas.Uplo, n int, nrhs int, a []complex64, lda int, ipiv []int32, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chetrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zhetrs(ul blas.Uplo, n int, nrhs int, a []complex128, lda int, ipiv []int32, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhetrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Chfrk(transr blas.Transpose, ul blas.Uplo, trans blas.Transpose, n int, k int, alpha float32, a []complex64, lda int, beta float32, c []complex64) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_chfrk((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(k), (C.float)(alpha), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (C.float)(beta), (*C.lapack_complex_float)(&c[0]))) +} + +func Zhfrk(transr blas.Transpose, ul blas.Uplo, trans blas.Transpose, n int, k int, alpha float64, a []complex128, lda int, beta float64, c []complex128) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zhfrk((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(k), (C.double)(alpha), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (C.double)(beta), (*C.lapack_complex_double)(&c[0]))) +} + +func Shgeqz(job lapack.Job, compq lapack.CompSV, compz lapack.CompSV, n int, ilo int, ihi int, h []float32, ldh int, t []float32, ldt int, alphar []float32, alphai []float32, beta []float32, q []float32, ldq int, z []float32, ldz int) bool { + return isZero(C.LAPACKE_shgeqz((C.int)(rowMajor), (C.char)(job), (C.char)(compq), (C.char)(compz), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.float)(&h[0]), (C.lapack_int)(ldh), (*C.float)(&t[0]), (C.lapack_int)(ldt), (*C.float)(&alphar[0]), (*C.float)(&alphai[0]), (*C.float)(&beta[0]), (*C.float)(&q[0]), (C.lapack_int)(ldq), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dhgeqz(job lapack.Job, compq lapack.CompSV, compz lapack.CompSV, n int, ilo int, ihi int, h []float64, ldh int, t []float64, ldt int, alphar []float64, alphai []float64, beta []float64, q []float64, ldq int, z []float64, ldz int) bool { + return isZero(C.LAPACKE_dhgeqz((C.int)(rowMajor), (C.char)(job), (C.char)(compq), (C.char)(compz), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.double)(&h[0]), (C.lapack_int)(ldh), (*C.double)(&t[0]), (C.lapack_int)(ldt), (*C.double)(&alphar[0]), (*C.double)(&alphai[0]), (*C.double)(&beta[0]), (*C.double)(&q[0]), (C.lapack_int)(ldq), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Chgeqz(job lapack.Job, compq lapack.CompSV, compz lapack.CompSV, n int, ilo int, ihi int, h []complex64, ldh int, t []complex64, ldt int, alpha []complex64, beta []complex64, q []complex64, ldq int, z []complex64, ldz int) bool { + return isZero(C.LAPACKE_chgeqz((C.int)(rowMajor), (C.char)(job), (C.char)(compq), (C.char)(compz), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.lapack_complex_float)(&h[0]), (C.lapack_int)(ldh), (*C.lapack_complex_float)(&t[0]), (C.lapack_int)(ldt), (*C.lapack_complex_float)(&alpha[0]), (*C.lapack_complex_float)(&beta[0]), (*C.lapack_complex_float)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Zhgeqz(job lapack.Job, compq lapack.CompSV, compz lapack.CompSV, n int, ilo int, ihi int, h []complex128, ldh int, t []complex128, ldt int, alpha []complex128, beta []complex128, q []complex128, ldq int, z []complex128, ldz int) bool { + return isZero(C.LAPACKE_zhgeqz((C.int)(rowMajor), (C.char)(job), (C.char)(compq), (C.char)(compz), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.lapack_complex_double)(&h[0]), (C.lapack_int)(ldh), (*C.lapack_complex_double)(&t[0]), (C.lapack_int)(ldt), (*C.lapack_complex_double)(&alpha[0]), (*C.lapack_complex_double)(&beta[0]), (*C.lapack_complex_double)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Chpcon(ul blas.Uplo, n int, ap []complex64, ipiv []int32, anorm float32, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chpcon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Zhpcon(ul blas.Uplo, n int, ap []complex128, ipiv []int32, anorm float64, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhpcon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Chpev(jobz lapack.Job, ul blas.Uplo, n int, ap []complex64, w []float32, z []complex64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chpev((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Zhpev(jobz lapack.Job, ul blas.Uplo, n int, ap []complex128, w []float64, z []complex128, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhpev((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Chpevd(jobz lapack.Job, ul blas.Uplo, n int, ap []complex64, w []float32, z []complex64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chpevd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Zhpevd(jobz lapack.Job, ul blas.Uplo, n int, ap []complex128, w []float64, z []complex128, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhpevd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Chpevx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, ap []complex64, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []complex64, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chpevx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Zhpevx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, ap []complex128, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []complex128, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhpevx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Chpgst(itype int, ul blas.Uplo, n int, ap []complex64, bp []complex64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chpgst((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&bp[0]))) +} + +func Zhpgst(itype int, ul blas.Uplo, n int, ap []complex128, bp []complex128) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhpgst((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&bp[0]))) +} + +func Chpgv(itype int, jobz lapack.Job, ul blas.Uplo, n int, ap []complex64, bp []complex64, w []float32, z []complex64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chpgv((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&bp[0]), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Zhpgv(itype int, jobz lapack.Job, ul blas.Uplo, n int, ap []complex128, bp []complex128, w []float64, z []complex128, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhpgv((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&bp[0]), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Chpgvd(itype int, jobz lapack.Job, ul blas.Uplo, n int, ap []complex64, bp []complex64, w []float32, z []complex64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chpgvd((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&bp[0]), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Zhpgvd(itype int, jobz lapack.Job, ul blas.Uplo, n int, ap []complex128, bp []complex128, w []float64, z []complex128, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhpgvd((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&bp[0]), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Chpgvx(itype int, jobz lapack.Job, rng byte, ul blas.Uplo, n int, ap []complex64, bp []complex64, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []complex64, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chpgvx((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&bp[0]), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Zhpgvx(itype int, jobz lapack.Job, rng byte, ul blas.Uplo, n int, ap []complex128, bp []complex128, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []complex128, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhpgvx((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&bp[0]), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Chprfs(ul blas.Uplo, n int, nrhs int, ap []complex64, afp []complex64, ipiv []int32, b []complex64, ldb int, x []complex64, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chprfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&afp[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zhprfs(ul blas.Uplo, n int, nrhs int, ap []complex128, afp []complex128, ipiv []int32, b []complex128, ldb int, x []complex128, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhprfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&afp[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Chpsv(ul blas.Uplo, n int, nrhs int, ap []complex64, ipiv []int32, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chpsv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zhpsv(ul blas.Uplo, n int, nrhs int, ap []complex128, ipiv []int32, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhpsv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Chpsvx(fact byte, ul blas.Uplo, n int, nrhs int, ap []complex64, afp []complex64, ipiv []int32, b []complex64, ldb int, x []complex64, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chpsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&afp[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zhpsvx(fact byte, ul blas.Uplo, n int, nrhs int, ap []complex128, afp []complex128, ipiv []int32, b []complex128, ldb int, x []complex128, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhpsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&afp[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Chptrd(ul blas.Uplo, n int, ap []complex64, d []float32, e []float32, tau []complex64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chptrd((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zhptrd(ul blas.Uplo, n int, ap []complex128, d []float64, e []float64, tau []complex128) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhptrd((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.lapack_complex_double)(&tau[0]))) +} + +func Chptrf(ul blas.Uplo, n int, ap []complex64, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chptrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Zhptrf(ul blas.Uplo, n int, ap []complex128, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhptrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Chptri(ul blas.Uplo, n int, ap []complex64, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chptri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Zhptri(ul blas.Uplo, n int, ap []complex128, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhptri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Chptrs(ul blas.Uplo, n int, nrhs int, ap []complex64, ipiv []int32, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chptrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zhptrs(ul blas.Uplo, n int, nrhs int, ap []complex128, ipiv []int32, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhptrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Shseqr(job lapack.Job, compz lapack.CompSV, n int, ilo int, ihi int, h []float32, ldh int, wr []float32, wi []float32, z []float32, ldz int) bool { + return isZero(C.LAPACKE_shseqr((C.int)(rowMajor), (C.char)(job), (C.char)(compz), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.float)(&h[0]), (C.lapack_int)(ldh), (*C.float)(&wr[0]), (*C.float)(&wi[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dhseqr(job lapack.Job, compz lapack.CompSV, n int, ilo int, ihi int, h []float64, ldh int, wr []float64, wi []float64, z []float64, ldz int) bool { + return isZero(C.LAPACKE_dhseqr((C.int)(rowMajor), (C.char)(job), (C.char)(compz), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.double)(&h[0]), (C.lapack_int)(ldh), (*C.double)(&wr[0]), (*C.double)(&wi[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Chseqr(job lapack.Job, compz lapack.CompSV, n int, ilo int, ihi int, h []complex64, ldh int, w []complex64, z []complex64, ldz int) bool { + return isZero(C.LAPACKE_chseqr((C.int)(rowMajor), (C.char)(job), (C.char)(compz), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.lapack_complex_float)(&h[0]), (C.lapack_int)(ldh), (*C.lapack_complex_float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Zhseqr(job lapack.Job, compz lapack.CompSV, n int, ilo int, ihi int, h []complex128, ldh int, w []complex128, z []complex128, ldz int) bool { + return isZero(C.LAPACKE_zhseqr((C.int)(rowMajor), (C.char)(job), (C.char)(compz), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.lapack_complex_double)(&h[0]), (C.lapack_int)(ldh), (*C.lapack_complex_double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Clacgv(n int, x []complex64, incx int) bool { + return isZero(C.LAPACKE_clacgv((C.lapack_int)(n), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(incx))) +} + +func Zlacgv(n int, x []complex128, incx int) bool { + return isZero(C.LAPACKE_zlacgv((C.lapack_int)(n), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(incx))) +} + +func Slacpy(ul blas.Uplo, m int, n int, a []float32, lda int, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_slacpy((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dlacpy(ul blas.Uplo, m int, n int, a []float64, lda int, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dlacpy((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Clacpy(ul blas.Uplo, m int, n int, a []complex64, lda int, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_clacpy((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zlacpy(ul blas.Uplo, m int, n int, a []complex128, lda int, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zlacpy((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Slamch(cmach byte) float32 { + return float32(C.LAPACKE_slamch((C.char)(cmach))) +} + +func Dlamch(cmach byte) float64 { + return float64(C.LAPACKE_dlamch((C.char)(cmach))) +} + +func Slange(norm byte, m int, n int, a []float32, lda int) float32 { + return float32(C.LAPACKE_slange((C.int)(rowMajor), (C.char)(norm), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda))) +} + +func Dlange(norm byte, m int, n int, a []float64, lda int) float64 { + return float64(C.LAPACKE_dlange((C.int)(rowMajor), (C.char)(norm), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda))) +} + +func Clange(norm byte, m int, n int, a []complex64, lda int) float32 { + return float32(C.LAPACKE_clange((C.int)(rowMajor), (C.char)(norm), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda))) +} + +func Zlange(norm byte, m int, n int, a []complex128, lda int) float64 { + return float64(C.LAPACKE_zlange((C.int)(rowMajor), (C.char)(norm), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda))) +} + +func Clanhe(norm byte, ul blas.Uplo, n int, a []complex64, lda int) float32 { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return float32(C.LAPACKE_clanhe((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda))) +} + +func Zlanhe(norm byte, ul blas.Uplo, n int, a []complex128, lda int) float64 { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return float64(C.LAPACKE_zlanhe((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda))) +} + +func Slansy(norm byte, ul blas.Uplo, n int, a []float32, lda int) float32 { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return float32(C.LAPACKE_slansy((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda))) +} + +func Dlansy(norm byte, ul blas.Uplo, n int, a []float64, lda int) float64 { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return float64(C.LAPACKE_dlansy((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda))) +} + +func Clansy(norm byte, ul blas.Uplo, n int, a []complex64, lda int) float32 { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return float32(C.LAPACKE_clansy((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda))) +} + +func Zlansy(norm byte, ul blas.Uplo, n int, a []complex128, lda int) float64 { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return float64(C.LAPACKE_zlansy((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda))) +} + +func Slantr(norm byte, ul blas.Uplo, d blas.Diag, m int, n int, a []float32, lda int) float32 { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return float32(C.LAPACKE_slantr((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda))) +} + +func Dlantr(norm byte, ul blas.Uplo, d blas.Diag, m int, n int, a []float64, lda int) float64 { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return float64(C.LAPACKE_dlantr((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda))) +} + +func Clantr(norm byte, ul blas.Uplo, d blas.Diag, m int, n int, a []complex64, lda int) float32 { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return float32(C.LAPACKE_clantr((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda))) +} + +func Zlantr(norm byte, ul blas.Uplo, d blas.Diag, m int, n int, a []complex128, lda int) float64 { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return float64(C.LAPACKE_zlantr((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda))) +} + +func Slarfb(s blas.Side, trans blas.Transpose, direct byte, storev byte, m int, n int, k int, v []float32, ldv int, t []float32, ldt int, c []float32, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_slarfb((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.char)(direct), (C.char)(storev), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.float)(&v[0]), (C.lapack_int)(ldv), (*C.float)(&t[0]), (C.lapack_int)(ldt), (*C.float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Dlarfb(s blas.Side, trans blas.Transpose, direct byte, storev byte, m int, n int, k int, v []float64, ldv int, t []float64, ldt int, c []float64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dlarfb((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.char)(direct), (C.char)(storev), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.double)(&v[0]), (C.lapack_int)(ldv), (*C.double)(&t[0]), (C.lapack_int)(ldt), (*C.double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Clarfb(s blas.Side, trans blas.Transpose, direct byte, storev byte, m int, n int, k int, v []complex64, ldv int, t []complex64, ldt int, c []complex64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_clarfb((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.char)(direct), (C.char)(storev), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_float)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_float)(&t[0]), (C.lapack_int)(ldt), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Zlarfb(s blas.Side, trans blas.Transpose, direct byte, storev byte, m int, n int, k int, v []complex128, ldv int, t []complex128, ldt int, c []complex128, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zlarfb((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.char)(direct), (C.char)(storev), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_double)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_double)(&t[0]), (C.lapack_int)(ldt), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Slarfg(n int, alpha []float32, x []float32, incx int, tau []float32) bool { + return isZero(C.LAPACKE_slarfg((C.lapack_int)(n), (*C.float)(&alpha[0]), (*C.float)(&x[0]), (C.lapack_int)(incx), (*C.float)(&tau[0]))) +} + +func Dlarfg(n int, alpha []float64, x []float64, incx int, tau []float64) bool { + return isZero(C.LAPACKE_dlarfg((C.lapack_int)(n), (*C.double)(&alpha[0]), (*C.double)(&x[0]), (C.lapack_int)(incx), (*C.double)(&tau[0]))) +} + +func Clarfg(n int, alpha []complex64, x []complex64, incx int, tau []complex64) bool { + return isZero(C.LAPACKE_clarfg((C.lapack_int)(n), (*C.lapack_complex_float)(&alpha[0]), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(incx), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zlarfg(n int, alpha []complex128, x []complex128, incx int, tau []complex128) bool { + return isZero(C.LAPACKE_zlarfg((C.lapack_int)(n), (*C.lapack_complex_double)(&alpha[0]), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(incx), (*C.lapack_complex_double)(&tau[0]))) +} + +func Slarft(direct byte, storev byte, n int, k int, v []float32, ldv int, tau []float32, t []float32, ldt int) bool { + return isZero(C.LAPACKE_slarft((C.int)(rowMajor), (C.char)(direct), (C.char)(storev), (C.lapack_int)(n), (C.lapack_int)(k), (*C.float)(&v[0]), (C.lapack_int)(ldv), (*C.float)(&tau[0]), (*C.float)(&t[0]), (C.lapack_int)(ldt))) +} + +func Dlarft(direct byte, storev byte, n int, k int, v []float64, ldv int, tau []float64, t []float64, ldt int) bool { + return isZero(C.LAPACKE_dlarft((C.int)(rowMajor), (C.char)(direct), (C.char)(storev), (C.lapack_int)(n), (C.lapack_int)(k), (*C.double)(&v[0]), (C.lapack_int)(ldv), (*C.double)(&tau[0]), (*C.double)(&t[0]), (C.lapack_int)(ldt))) +} + +func Clarft(direct byte, storev byte, n int, k int, v []complex64, ldv int, tau []complex64, t []complex64, ldt int) bool { + return isZero(C.LAPACKE_clarft((C.int)(rowMajor), (C.char)(direct), (C.char)(storev), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_float)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_float)(&tau[0]), (*C.lapack_complex_float)(&t[0]), (C.lapack_int)(ldt))) +} + +func Zlarft(direct byte, storev byte, n int, k int, v []complex128, ldv int, tau []complex128, t []complex128, ldt int) bool { + return isZero(C.LAPACKE_zlarft((C.int)(rowMajor), (C.char)(direct), (C.char)(storev), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_double)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_double)(&tau[0]), (*C.lapack_complex_double)(&t[0]), (C.lapack_int)(ldt))) +} + +func Slarfx(s blas.Side, m int, n int, v []float32, tau float32, c []float32, ldc int, work []float32) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + return isZero(C.LAPACKE_slarfx((C.int)(rowMajor), (C.char)(s), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&v[0]), (C.float)(tau), (*C.float)(&c[0]), (C.lapack_int)(ldc), (*C.float)(&work[0]))) +} + +func Dlarfx(s blas.Side, m int, n int, v []float64, tau float64, c []float64, ldc int, work []float64) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + return isZero(C.LAPACKE_dlarfx((C.int)(rowMajor), (C.char)(s), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&v[0]), (C.double)(tau), (*C.double)(&c[0]), (C.lapack_int)(ldc), (*C.double)(&work[0]))) +} + +func Clarfx(s blas.Side, m int, n int, v []complex64, tau complex64, c []complex64, ldc int, work []complex64) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + return isZero(C.LAPACKE_clarfx((C.int)(rowMajor), (C.char)(s), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&v[0]), (C.lapack_complex_float)(tau), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc), (*C.lapack_complex_float)(&work[0]))) +} + +func Zlarfx(s blas.Side, m int, n int, v []complex128, tau complex128, c []complex128, ldc int, work []complex128) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + return isZero(C.LAPACKE_zlarfx((C.int)(rowMajor), (C.char)(s), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&v[0]), (C.lapack_complex_double)(tau), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc), (*C.lapack_complex_double)(&work[0]))) +} + +func Slarnv(idist int, iseed []int32, n int, x []float32) bool { + return isZero(C.LAPACKE_slarnv((C.lapack_int)(idist), (*C.lapack_int)(&iseed[0]), (C.lapack_int)(n), (*C.float)(&x[0]))) +} + +func Dlarnv(idist int, iseed []int32, n int, x []float64) bool { + return isZero(C.LAPACKE_dlarnv((C.lapack_int)(idist), (*C.lapack_int)(&iseed[0]), (C.lapack_int)(n), (*C.double)(&x[0]))) +} + +func Clarnv(idist int, iseed []int32, n int, x []complex64) bool { + return isZero(C.LAPACKE_clarnv((C.lapack_int)(idist), (*C.lapack_int)(&iseed[0]), (C.lapack_int)(n), (*C.lapack_complex_float)(&x[0]))) +} + +func Zlarnv(idist int, iseed []int32, n int, x []complex128) bool { + return isZero(C.LAPACKE_zlarnv((C.lapack_int)(idist), (*C.lapack_int)(&iseed[0]), (C.lapack_int)(n), (*C.lapack_complex_double)(&x[0]))) +} + +func Slaset(ul blas.Uplo, m int, n int, alpha float32, beta float32, a []float32, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_slaset((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(m), (C.lapack_int)(n), (C.float)(alpha), (C.float)(beta), (*C.float)(&a[0]), (C.lapack_int)(lda))) +} + +func Dlaset(ul blas.Uplo, m int, n int, alpha float64, beta float64, a []float64, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dlaset((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(m), (C.lapack_int)(n), (C.double)(alpha), (C.double)(beta), (*C.double)(&a[0]), (C.lapack_int)(lda))) +} + +func Claset(ul blas.Uplo, m int, n int, alpha complex64, beta complex64, a []complex64, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_claset((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_complex_float)(alpha), (C.lapack_complex_float)(beta), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda))) +} + +func Zlaset(ul blas.Uplo, m int, n int, alpha complex128, beta complex128, a []complex128, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zlaset((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_complex_double)(alpha), (C.lapack_complex_double)(beta), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda))) +} + +func Slasrt(id byte, n int, d []float32) bool { + return isZero(C.LAPACKE_slasrt((C.char)(id), (C.lapack_int)(n), (*C.float)(&d[0]))) +} + +func Dlasrt(id byte, n int, d []float64) bool { + return isZero(C.LAPACKE_dlasrt((C.char)(id), (C.lapack_int)(n), (*C.double)(&d[0]))) +} + +func Slaswp(n int, a []float32, lda int, k1 int, k2 int, ipiv []int32, incx int) bool { + return isZero(C.LAPACKE_slaswp((C.int)(rowMajor), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (C.lapack_int)(k1), (C.lapack_int)(k2), (*C.lapack_int)(&ipiv[0]), (C.lapack_int)(incx))) +} + +func Dlaswp(n int, a []float64, lda int, k1 int, k2 int, ipiv []int32, incx int) bool { + return isZero(C.LAPACKE_dlaswp((C.int)(rowMajor), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (C.lapack_int)(k1), (C.lapack_int)(k2), (*C.lapack_int)(&ipiv[0]), (C.lapack_int)(incx))) +} + +func Claswp(n int, a []complex64, lda int, k1 int, k2 int, ipiv []int32, incx int) bool { + return isZero(C.LAPACKE_claswp((C.int)(rowMajor), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (C.lapack_int)(k1), (C.lapack_int)(k2), (*C.lapack_int)(&ipiv[0]), (C.lapack_int)(incx))) +} + +func Zlaswp(n int, a []complex128, lda int, k1 int, k2 int, ipiv []int32, incx int) bool { + return isZero(C.LAPACKE_zlaswp((C.int)(rowMajor), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (C.lapack_int)(k1), (C.lapack_int)(k2), (*C.lapack_int)(&ipiv[0]), (C.lapack_int)(incx))) +} + +func Slauum(ul blas.Uplo, n int, a []float32, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_slauum((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda))) +} + +func Dlauum(ul blas.Uplo, n int, a []float64, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dlauum((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda))) +} + +func Clauum(ul blas.Uplo, n int, a []complex64, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_clauum((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda))) +} + +func Zlauum(ul blas.Uplo, n int, a []complex128, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zlauum((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda))) +} + +func Sopgtr(ul blas.Uplo, n int, ap []float32, tau []float32, q []float32, ldq int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sopgtr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.float)(&tau[0]), (*C.float)(&q[0]), (C.lapack_int)(ldq))) +} + +func Dopgtr(ul blas.Uplo, n int, ap []float64, tau []float64, q []float64, ldq int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dopgtr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.double)(&tau[0]), (*C.double)(&q[0]), (C.lapack_int)(ldq))) +} + +func Sopmtr(s blas.Side, ul blas.Uplo, trans blas.Transpose, m int, n int, ap []float32, tau []float32, c []float32, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sopmtr((C.int)(rowMajor), (C.char)(s), (C.char)(ul), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.float)(&tau[0]), (*C.float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Dopmtr(s blas.Side, ul blas.Uplo, trans blas.Transpose, m int, n int, ap []float64, tau []float64, c []float64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dopmtr((C.int)(rowMajor), (C.char)(s), (C.char)(ul), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.double)(&tau[0]), (*C.double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Sorgbr(vect byte, m int, n int, k int, a []float32, lda int, tau []float32) bool { + return isZero(C.LAPACKE_sorgbr((C.int)(rowMajor), (C.char)(vect), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dorgbr(vect byte, m int, n int, k int, a []float64, lda int, tau []float64) bool { + return isZero(C.LAPACKE_dorgbr((C.int)(rowMajor), (C.char)(vect), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Sorghr(n int, ilo int, ihi int, a []float32, lda int, tau []float32) bool { + return isZero(C.LAPACKE_sorghr((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dorghr(n int, ilo int, ihi int, a []float64, lda int, tau []float64) bool { + return isZero(C.LAPACKE_dorghr((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Sorglq(m int, n int, k int, a []float32, lda int, tau []float32) bool { + return isZero(C.LAPACKE_sorglq((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dorglq(m int, n int, k int, a []float64, lda int, tau []float64) bool { + return isZero(C.LAPACKE_dorglq((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Sorgql(m int, n int, k int, a []float32, lda int, tau []float32) bool { + return isZero(C.LAPACKE_sorgql((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dorgql(m int, n int, k int, a []float64, lda int, tau []float64) bool { + return isZero(C.LAPACKE_dorgql((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Sorgqr(m int, n int, k int, a []float32, lda int, tau []float32) bool { + return isZero(C.LAPACKE_sorgqr((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dorgqr(m int, n int, k int, a []float64, lda int, tau []float64) bool { + return isZero(C.LAPACKE_dorgqr((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Sorgrq(m int, n int, k int, a []float32, lda int, tau []float32) bool { + return isZero(C.LAPACKE_sorgrq((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dorgrq(m int, n int, k int, a []float64, lda int, tau []float64) bool { + return isZero(C.LAPACKE_dorgrq((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Sorgtr(ul blas.Uplo, n int, a []float32, lda int, tau []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sorgtr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dorgtr(ul blas.Uplo, n int, a []float64, lda int, tau []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dorgtr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Sormbr(vect byte, s blas.Side, trans blas.Transpose, m int, n int, k int, a []float32, lda int, tau []float32, c []float32, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sormbr((C.int)(rowMajor), (C.char)(vect), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]), (*C.float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Dormbr(vect byte, s blas.Side, trans blas.Transpose, m int, n int, k int, a []float64, lda int, tau []float64, c []float64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dormbr((C.int)(rowMajor), (C.char)(vect), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]), (*C.double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Sormhr(s blas.Side, trans blas.Transpose, m int, n int, ilo int, ihi int, a []float32, lda int, tau []float32, c []float32, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sormhr((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]), (*C.float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Dormhr(s blas.Side, trans blas.Transpose, m int, n int, ilo int, ihi int, a []float64, lda int, tau []float64, c []float64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dormhr((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]), (*C.double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Sormlq(s blas.Side, trans blas.Transpose, m int, n int, k int, a []float32, lda int, tau []float32, c []float32, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sormlq((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]), (*C.float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Dormlq(s blas.Side, trans blas.Transpose, m int, n int, k int, a []float64, lda int, tau []float64, c []float64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dormlq((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]), (*C.double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Sormql(s blas.Side, trans blas.Transpose, m int, n int, k int, a []float32, lda int, tau []float32, c []float32, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sormql((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]), (*C.float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Dormql(s blas.Side, trans blas.Transpose, m int, n int, k int, a []float64, lda int, tau []float64, c []float64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dormql((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]), (*C.double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Sormqr(s blas.Side, trans blas.Transpose, m int, n int, k int, a []float32, lda int, tau []float32, c []float32, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sormqr((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]), (*C.float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Dormqr(s blas.Side, trans blas.Transpose, m int, n int, k int, a []float64, lda int, tau []float64, c []float64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dormqr((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]), (*C.double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Sormrq(s blas.Side, trans blas.Transpose, m int, n int, k int, a []float32, lda int, tau []float32, c []float32, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sormrq((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]), (*C.float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Dormrq(s blas.Side, trans blas.Transpose, m int, n int, k int, a []float64, lda int, tau []float64, c []float64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dormrq((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]), (*C.double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Sormrz(s blas.Side, trans blas.Transpose, m int, n int, k int, l int, a []float32, lda int, tau []float32, c []float32, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sormrz((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]), (*C.float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Dormrz(s blas.Side, trans blas.Transpose, m int, n int, k int, l int, a []float64, lda int, tau []float64, c []float64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dormrz((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]), (*C.double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Sormtr(s blas.Side, ul blas.Uplo, trans blas.Transpose, m int, n int, a []float32, lda int, tau []float32, c []float32, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sormtr((C.int)(rowMajor), (C.char)(s), (C.char)(ul), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]), (*C.float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Dormtr(s blas.Side, ul blas.Uplo, trans blas.Transpose, m int, n int, a []float64, lda int, tau []float64, c []float64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dormtr((C.int)(rowMajor), (C.char)(s), (C.char)(ul), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]), (*C.double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Spbcon(ul blas.Uplo, n int, kd int, ab []float32, ldab int, anorm float32, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spbcon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Dpbcon(ul blas.Uplo, n int, kd int, ab []float64, ldab int, anorm float64, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpbcon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Cpbcon(ul blas.Uplo, n int, kd int, ab []complex64, ldab int, anorm float32, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpbcon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Zpbcon(ul blas.Uplo, n int, kd int, ab []complex128, ldab int, anorm float64, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpbcon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Spbequ(ul blas.Uplo, n int, kd int, ab []float32, ldab int, s []float32, scond []float32, amax []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spbequ((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&s[0]), (*C.float)(&scond[0]), (*C.float)(&amax[0]))) +} + +func Dpbequ(ul blas.Uplo, n int, kd int, ab []float64, ldab int, s []float64, scond []float64, amax []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpbequ((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&s[0]), (*C.double)(&scond[0]), (*C.double)(&amax[0]))) +} + +func Cpbequ(ul blas.Uplo, n int, kd int, ab []complex64, ldab int, s []float32, scond []float32, amax []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpbequ((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&s[0]), (*C.float)(&scond[0]), (*C.float)(&amax[0]))) +} + +func Zpbequ(ul blas.Uplo, n int, kd int, ab []complex128, ldab int, s []float64, scond []float64, amax []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpbequ((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&s[0]), (*C.double)(&scond[0]), (*C.double)(&amax[0]))) +} + +func Spbrfs(ul blas.Uplo, n int, kd int, nrhs int, ab []float32, ldab int, afb []float32, ldafb int, b []float32, ldb int, x []float32, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spbrfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&afb[0]), (C.lapack_int)(ldafb), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dpbrfs(ul blas.Uplo, n int, kd int, nrhs int, ab []float64, ldab int, afb []float64, ldafb int, b []float64, ldb int, x []float64, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpbrfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&afb[0]), (C.lapack_int)(ldafb), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Cpbrfs(ul blas.Uplo, n int, kd int, nrhs int, ab []complex64, ldab int, afb []complex64, ldafb int, b []complex64, ldb int, x []complex64, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpbrfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_float)(&afb[0]), (C.lapack_int)(ldafb), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zpbrfs(ul blas.Uplo, n int, kd int, nrhs int, ab []complex128, ldab int, afb []complex128, ldafb int, b []complex128, ldb int, x []complex128, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpbrfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_double)(&afb[0]), (C.lapack_int)(ldafb), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Spbstf(ul blas.Uplo, n int, kb int, bb []float32, ldbb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spbstf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kb), (*C.float)(&bb[0]), (C.lapack_int)(ldbb))) +} + +func Dpbstf(ul blas.Uplo, n int, kb int, bb []float64, ldbb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpbstf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kb), (*C.double)(&bb[0]), (C.lapack_int)(ldbb))) +} + +func Cpbstf(ul blas.Uplo, n int, kb int, bb []complex64, ldbb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpbstf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kb), (*C.lapack_complex_float)(&bb[0]), (C.lapack_int)(ldbb))) +} + +func Zpbstf(ul blas.Uplo, n int, kb int, bb []complex128, ldbb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpbstf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kb), (*C.lapack_complex_double)(&bb[0]), (C.lapack_int)(ldbb))) +} + +func Spbsv(ul blas.Uplo, n int, kd int, nrhs int, ab []float32, ldab int, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spbsv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dpbsv(ul blas.Uplo, n int, kd int, nrhs int, ab []float64, ldab int, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpbsv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cpbsv(ul blas.Uplo, n int, kd int, nrhs int, ab []complex64, ldab int, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpbsv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zpbsv(ul blas.Uplo, n int, kd int, nrhs int, ab []complex128, ldab int, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpbsv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Spbsvx(fact byte, ul blas.Uplo, n int, kd int, nrhs int, ab []float32, ldab int, afb []float32, ldafb int, equed []byte, s []float32, b []float32, ldb int, x []float32, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spbsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&afb[0]), (C.lapack_int)(ldafb), (*C.char)(unsafe.Pointer(&equed[0])), (*C.float)(&s[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dpbsvx(fact byte, ul blas.Uplo, n int, kd int, nrhs int, ab []float64, ldab int, afb []float64, ldafb int, equed []byte, s []float64, b []float64, ldb int, x []float64, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpbsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&afb[0]), (C.lapack_int)(ldafb), (*C.char)(unsafe.Pointer(&equed[0])), (*C.double)(&s[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Cpbsvx(fact byte, ul blas.Uplo, n int, kd int, nrhs int, ab []complex64, ldab int, afb []complex64, ldafb int, equed []byte, s []float32, b []complex64, ldb int, x []complex64, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpbsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_float)(&afb[0]), (C.lapack_int)(ldafb), (*C.char)(unsafe.Pointer(&equed[0])), (*C.float)(&s[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zpbsvx(fact byte, ul blas.Uplo, n int, kd int, nrhs int, ab []complex128, ldab int, afb []complex128, ldafb int, equed []byte, s []float64, b []complex128, ldb int, x []complex128, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpbsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_double)(&afb[0]), (C.lapack_int)(ldafb), (*C.char)(unsafe.Pointer(&equed[0])), (*C.double)(&s[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Spbtrf(ul blas.Uplo, n int, kd int, ab []float32, ldab int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spbtrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.float)(&ab[0]), (C.lapack_int)(ldab))) +} + +func Dpbtrf(ul blas.Uplo, n int, kd int, ab []float64, ldab int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpbtrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.double)(&ab[0]), (C.lapack_int)(ldab))) +} + +func Cpbtrf(ul blas.Uplo, n int, kd int, ab []complex64, ldab int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpbtrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab))) +} + +func Zpbtrf(ul blas.Uplo, n int, kd int, ab []complex128, ldab int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpbtrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab))) +} + +func Spbtrs(ul blas.Uplo, n int, kd int, nrhs int, ab []float32, ldab int, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spbtrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dpbtrs(ul blas.Uplo, n int, kd int, nrhs int, ab []float64, ldab int, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpbtrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cpbtrs(ul blas.Uplo, n int, kd int, nrhs int, ab []complex64, ldab int, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpbtrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zpbtrs(ul blas.Uplo, n int, kd int, nrhs int, ab []complex128, ldab int, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpbtrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Spftrf(transr blas.Transpose, ul blas.Uplo, n int, a []float32) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spftrf((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]))) +} + +func Dpftrf(transr blas.Transpose, ul blas.Uplo, n int, a []float64) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpftrf((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]))) +} + +func Cpftrf(transr blas.Transpose, ul blas.Uplo, n int, a []complex64) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpftrf((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]))) +} + +func Zpftrf(transr blas.Transpose, ul blas.Uplo, n int, a []complex128) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpftrf((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]))) +} + +func Spftri(transr blas.Transpose, ul blas.Uplo, n int, a []float32) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spftri((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]))) +} + +func Dpftri(transr blas.Transpose, ul blas.Uplo, n int, a []float64) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpftri((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]))) +} + +func Cpftri(transr blas.Transpose, ul blas.Uplo, n int, a []complex64) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpftri((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]))) +} + +func Zpftri(transr blas.Transpose, ul blas.Uplo, n int, a []complex128) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpftri((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]))) +} + +func Spftrs(transr blas.Transpose, ul blas.Uplo, n int, nrhs int, a []float32, b []float32, ldb int) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spftrs((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dpftrs(transr blas.Transpose, ul blas.Uplo, n int, nrhs int, a []float64, b []float64, ldb int) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpftrs((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cpftrs(transr blas.Transpose, ul blas.Uplo, n int, nrhs int, a []complex64, b []complex64, ldb int) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpftrs((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zpftrs(transr blas.Transpose, ul blas.Uplo, n int, nrhs int, a []complex128, b []complex128, ldb int) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpftrs((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Spocon(ul blas.Uplo, n int, a []float32, lda int, anorm float32, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spocon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Dpocon(ul blas.Uplo, n int, a []float64, lda int, anorm float64, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpocon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Cpocon(ul blas.Uplo, n int, a []complex64, lda int, anorm float32, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpocon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Zpocon(ul blas.Uplo, n int, a []complex128, lda int, anorm float64, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpocon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Spoequ(n int, a []float32, lda int, s []float32, scond []float32, amax []float32) bool { + return isZero(C.LAPACKE_spoequ((C.int)(rowMajor), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&s[0]), (*C.float)(&scond[0]), (*C.float)(&amax[0]))) +} + +func Dpoequ(n int, a []float64, lda int, s []float64, scond []float64, amax []float64) bool { + return isZero(C.LAPACKE_dpoequ((C.int)(rowMajor), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&s[0]), (*C.double)(&scond[0]), (*C.double)(&amax[0]))) +} + +func Cpoequ(n int, a []complex64, lda int, s []float32, scond []float32, amax []float32) bool { + return isZero(C.LAPACKE_cpoequ((C.int)(rowMajor), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&s[0]), (*C.float)(&scond[0]), (*C.float)(&amax[0]))) +} + +func Zpoequ(n int, a []complex128, lda int, s []float64, scond []float64, amax []float64) bool { + return isZero(C.LAPACKE_zpoequ((C.int)(rowMajor), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&s[0]), (*C.double)(&scond[0]), (*C.double)(&amax[0]))) +} + +func Spoequb(n int, a []float32, lda int, s []float32, scond []float32, amax []float32) bool { + return isZero(C.LAPACKE_spoequb((C.int)(rowMajor), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&s[0]), (*C.float)(&scond[0]), (*C.float)(&amax[0]))) +} + +func Dpoequb(n int, a []float64, lda int, s []float64, scond []float64, amax []float64) bool { + return isZero(C.LAPACKE_dpoequb((C.int)(rowMajor), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&s[0]), (*C.double)(&scond[0]), (*C.double)(&amax[0]))) +} + +func Cpoequb(n int, a []complex64, lda int, s []float32, scond []float32, amax []float32) bool { + return isZero(C.LAPACKE_cpoequb((C.int)(rowMajor), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&s[0]), (*C.float)(&scond[0]), (*C.float)(&amax[0]))) +} + +func Zpoequb(n int, a []complex128, lda int, s []float64, scond []float64, amax []float64) bool { + return isZero(C.LAPACKE_zpoequb((C.int)(rowMajor), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&s[0]), (*C.double)(&scond[0]), (*C.double)(&amax[0]))) +} + +func Sporfs(ul blas.Uplo, n int, nrhs int, a []float32, lda int, af []float32, ldaf int, b []float32, ldb int, x []float32, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sporfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&af[0]), (C.lapack_int)(ldaf), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dporfs(ul blas.Uplo, n int, nrhs int, a []float64, lda int, af []float64, ldaf int, b []float64, ldb int, x []float64, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dporfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&af[0]), (C.lapack_int)(ldaf), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Cporfs(ul blas.Uplo, n int, nrhs int, a []complex64, lda int, af []complex64, ldaf int, b []complex64, ldb int, x []complex64, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cporfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zporfs(ul blas.Uplo, n int, nrhs int, a []complex128, lda int, af []complex128, ldaf int, b []complex128, ldb int, x []complex128, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zporfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Sposv(ul blas.Uplo, n int, nrhs int, a []float32, lda int, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sposv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dposv(ul blas.Uplo, n int, nrhs int, a []float64, lda int, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dposv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cposv(ul blas.Uplo, n int, nrhs int, a []complex64, lda int, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cposv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zposv(ul blas.Uplo, n int, nrhs int, a []complex128, lda int, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zposv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dsposv(ul blas.Uplo, n int, nrhs int, a []float64, lda int, b []float64, ldb int, x []float64, ldx int, iter []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsposv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.lapack_int)(&iter[0]))) +} + +func Zcposv(ul blas.Uplo, n int, nrhs int, a []complex128, lda int, b []complex128, ldb int, x []complex128, ldx int, iter []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zcposv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.lapack_int)(&iter[0]))) +} + +func Sposvx(fact byte, ul blas.Uplo, n int, nrhs int, a []float32, lda int, af []float32, ldaf int, equed []byte, s []float32, b []float32, ldb int, x []float32, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sposvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&af[0]), (C.lapack_int)(ldaf), (*C.char)(unsafe.Pointer(&equed[0])), (*C.float)(&s[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dposvx(fact byte, ul blas.Uplo, n int, nrhs int, a []float64, lda int, af []float64, ldaf int, equed []byte, s []float64, b []float64, ldb int, x []float64, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dposvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&af[0]), (C.lapack_int)(ldaf), (*C.char)(unsafe.Pointer(&equed[0])), (*C.double)(&s[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Cposvx(fact byte, ul blas.Uplo, n int, nrhs int, a []complex64, lda int, af []complex64, ldaf int, equed []byte, s []float32, b []complex64, ldb int, x []complex64, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cposvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&af[0]), (C.lapack_int)(ldaf), (*C.char)(unsafe.Pointer(&equed[0])), (*C.float)(&s[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zposvx(fact byte, ul blas.Uplo, n int, nrhs int, a []complex128, lda int, af []complex128, ldaf int, equed []byte, s []float64, b []complex128, ldb int, x []complex128, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zposvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&af[0]), (C.lapack_int)(ldaf), (*C.char)(unsafe.Pointer(&equed[0])), (*C.double)(&s[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Spotrf(ul blas.Uplo, n int, a []float32, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spotrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda))) +} + +func Dpotrf(ul blas.Uplo, n int, a []float64, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpotrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda))) +} + +func Cpotrf(ul blas.Uplo, n int, a []complex64, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpotrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda))) +} + +func Zpotrf(ul blas.Uplo, n int, a []complex128, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpotrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda))) +} + +func Spotri(ul blas.Uplo, n int, a []float32, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spotri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda))) +} + +func Dpotri(ul blas.Uplo, n int, a []float64, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpotri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda))) +} + +func Cpotri(ul blas.Uplo, n int, a []complex64, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpotri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda))) +} + +func Zpotri(ul blas.Uplo, n int, a []complex128, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpotri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda))) +} + +func Spotrs(ul blas.Uplo, n int, nrhs int, a []float32, lda int, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spotrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dpotrs(ul blas.Uplo, n int, nrhs int, a []float64, lda int, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpotrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cpotrs(ul blas.Uplo, n int, nrhs int, a []complex64, lda int, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpotrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zpotrs(ul blas.Uplo, n int, nrhs int, a []complex128, lda int, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpotrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Sppcon(ul blas.Uplo, n int, ap []float32, anorm float32, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sppcon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Dppcon(ul blas.Uplo, n int, ap []float64, anorm float64, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dppcon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Cppcon(ul blas.Uplo, n int, ap []complex64, anorm float32, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cppcon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Zppcon(ul blas.Uplo, n int, ap []complex128, anorm float64, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zppcon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Sppequ(ul blas.Uplo, n int, ap []float32, s []float32, scond []float32, amax []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sppequ((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.float)(&s[0]), (*C.float)(&scond[0]), (*C.float)(&amax[0]))) +} + +func Dppequ(ul blas.Uplo, n int, ap []float64, s []float64, scond []float64, amax []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dppequ((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.double)(&s[0]), (*C.double)(&scond[0]), (*C.double)(&amax[0]))) +} + +func Cppequ(ul blas.Uplo, n int, ap []complex64, s []float32, scond []float32, amax []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cppequ((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.float)(&s[0]), (*C.float)(&scond[0]), (*C.float)(&amax[0]))) +} + +func Zppequ(ul blas.Uplo, n int, ap []complex128, s []float64, scond []float64, amax []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zppequ((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.double)(&s[0]), (*C.double)(&scond[0]), (*C.double)(&amax[0]))) +} + +func Spprfs(ul blas.Uplo, n int, nrhs int, ap []float32, afp []float32, b []float32, ldb int, x []float32, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spprfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&ap[0]), (*C.float)(&afp[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dpprfs(ul blas.Uplo, n int, nrhs int, ap []float64, afp []float64, b []float64, ldb int, x []float64, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpprfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&ap[0]), (*C.double)(&afp[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Cpprfs(ul blas.Uplo, n int, nrhs int, ap []complex64, afp []complex64, b []complex64, ldb int, x []complex64, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpprfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&afp[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zpprfs(ul blas.Uplo, n int, nrhs int, ap []complex128, afp []complex128, b []complex128, ldb int, x []complex128, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpprfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&afp[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Sppsv(ul blas.Uplo, n int, nrhs int, ap []float32, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sppsv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&ap[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dppsv(ul blas.Uplo, n int, nrhs int, ap []float64, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dppsv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&ap[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cppsv(ul blas.Uplo, n int, nrhs int, ap []complex64, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cppsv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zppsv(ul blas.Uplo, n int, nrhs int, ap []complex128, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zppsv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Sppsvx(fact byte, ul blas.Uplo, n int, nrhs int, ap []float32, afp []float32, equed []byte, s []float32, b []float32, ldb int, x []float32, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sppsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&ap[0]), (*C.float)(&afp[0]), (*C.char)(unsafe.Pointer(&equed[0])), (*C.float)(&s[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dppsvx(fact byte, ul blas.Uplo, n int, nrhs int, ap []float64, afp []float64, equed []byte, s []float64, b []float64, ldb int, x []float64, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dppsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&ap[0]), (*C.double)(&afp[0]), (*C.char)(unsafe.Pointer(&equed[0])), (*C.double)(&s[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Cppsvx(fact byte, ul blas.Uplo, n int, nrhs int, ap []complex64, afp []complex64, equed []byte, s []float32, b []complex64, ldb int, x []complex64, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cppsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&afp[0]), (*C.char)(unsafe.Pointer(&equed[0])), (*C.float)(&s[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zppsvx(fact byte, ul blas.Uplo, n int, nrhs int, ap []complex128, afp []complex128, equed []byte, s []float64, b []complex128, ldb int, x []complex128, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zppsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&afp[0]), (*C.char)(unsafe.Pointer(&equed[0])), (*C.double)(&s[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Spptrf(ul blas.Uplo, n int, ap []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spptrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]))) +} + +func Dpptrf(ul blas.Uplo, n int, ap []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpptrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]))) +} + +func Cpptrf(ul blas.Uplo, n int, ap []complex64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpptrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]))) +} + +func Zpptrf(ul blas.Uplo, n int, ap []complex128) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpptrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]))) +} + +func Spptri(ul blas.Uplo, n int, ap []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spptri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]))) +} + +func Dpptri(ul blas.Uplo, n int, ap []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpptri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]))) +} + +func Cpptri(ul blas.Uplo, n int, ap []complex64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpptri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]))) +} + +func Zpptri(ul blas.Uplo, n int, ap []complex128) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpptri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]))) +} + +func Spptrs(ul blas.Uplo, n int, nrhs int, ap []float32, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spptrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&ap[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dpptrs(ul blas.Uplo, n int, nrhs int, ap []float64, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpptrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&ap[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cpptrs(ul blas.Uplo, n int, nrhs int, ap []complex64, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpptrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zpptrs(ul blas.Uplo, n int, nrhs int, ap []complex128, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpptrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Spstrf(ul blas.Uplo, n int, a []float32, lda int, piv []int32, rank []int32, tol float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_spstrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&piv[0]), (*C.lapack_int)(&rank[0]), (C.float)(tol))) +} + +func Dpstrf(ul blas.Uplo, n int, a []float64, lda int, piv []int32, rank []int32, tol float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dpstrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&piv[0]), (*C.lapack_int)(&rank[0]), (C.double)(tol))) +} + +func Cpstrf(ul blas.Uplo, n int, a []complex64, lda int, piv []int32, rank []int32, tol float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpstrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&piv[0]), (*C.lapack_int)(&rank[0]), (C.float)(tol))) +} + +func Zpstrf(ul blas.Uplo, n int, a []complex128, lda int, piv []int32, rank []int32, tol float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpstrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&piv[0]), (*C.lapack_int)(&rank[0]), (C.double)(tol))) +} + +func Sptcon(n int, d []float32, e []float32, anorm float32, rcond []float32) bool { + return isZero(C.LAPACKE_sptcon((C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Dptcon(n int, d []float64, e []float64, anorm float64, rcond []float64) bool { + return isZero(C.LAPACKE_dptcon((C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Cptcon(n int, d []float32, e []complex64, anorm float32, rcond []float32) bool { + return isZero(C.LAPACKE_cptcon((C.lapack_int)(n), (*C.float)(&d[0]), (*C.lapack_complex_float)(&e[0]), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Zptcon(n int, d []float64, e []complex128, anorm float64, rcond []float64) bool { + return isZero(C.LAPACKE_zptcon((C.lapack_int)(n), (*C.double)(&d[0]), (*C.lapack_complex_double)(&e[0]), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Spteqr(compz lapack.CompSV, n int, d []float32, e []float32, z []float32, ldz int) bool { + return isZero(C.LAPACKE_spteqr((C.int)(rowMajor), (C.char)(compz), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dpteqr(compz lapack.CompSV, n int, d []float64, e []float64, z []float64, ldz int) bool { + return isZero(C.LAPACKE_dpteqr((C.int)(rowMajor), (C.char)(compz), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Cpteqr(compz lapack.CompSV, n int, d []float32, e []float32, z []complex64, ldz int) bool { + return isZero(C.LAPACKE_cpteqr((C.int)(rowMajor), (C.char)(compz), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Zpteqr(compz lapack.CompSV, n int, d []float64, e []float64, z []complex128, ldz int) bool { + return isZero(C.LAPACKE_zpteqr((C.int)(rowMajor), (C.char)(compz), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Sptrfs(n int, nrhs int, d []float32, e []float32, df []float32, ef []float32, b []float32, ldb int, x []float32, ldx int, ferr []float32, berr []float32) bool { + return isZero(C.LAPACKE_sptrfs((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&df[0]), (*C.float)(&ef[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dptrfs(n int, nrhs int, d []float64, e []float64, df []float64, ef []float64, b []float64, ldb int, x []float64, ldx int, ferr []float64, berr []float64) bool { + return isZero(C.LAPACKE_dptrfs((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&df[0]), (*C.double)(&ef[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Cptrfs(ul blas.Uplo, n int, nrhs int, d []float32, e []complex64, df []float32, ef []complex64, b []complex64, ldb int, x []complex64, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cptrfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&d[0]), (*C.lapack_complex_float)(&e[0]), (*C.float)(&df[0]), (*C.lapack_complex_float)(&ef[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zptrfs(ul blas.Uplo, n int, nrhs int, d []float64, e []complex128, df []float64, ef []complex128, b []complex128, ldb int, x []complex128, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zptrfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&d[0]), (*C.lapack_complex_double)(&e[0]), (*C.double)(&df[0]), (*C.lapack_complex_double)(&ef[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Sptsv(n int, nrhs int, d []float32, e []float32, b []float32, ldb int) bool { + return isZero(C.LAPACKE_sptsv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dptsv(n int, nrhs int, d []float64, e []float64, b []float64, ldb int) bool { + return isZero(C.LAPACKE_dptsv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cptsv(n int, nrhs int, d []float32, e []complex64, b []complex64, ldb int) bool { + return isZero(C.LAPACKE_cptsv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&d[0]), (*C.lapack_complex_float)(&e[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zptsv(n int, nrhs int, d []float64, e []complex128, b []complex128, ldb int) bool { + return isZero(C.LAPACKE_zptsv((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&d[0]), (*C.lapack_complex_double)(&e[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Sptsvx(fact byte, n int, nrhs int, d []float32, e []float32, df []float32, ef []float32, b []float32, ldb int, x []float32, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + return isZero(C.LAPACKE_sptsvx((C.int)(rowMajor), (C.char)(fact), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&df[0]), (*C.float)(&ef[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dptsvx(fact byte, n int, nrhs int, d []float64, e []float64, df []float64, ef []float64, b []float64, ldb int, x []float64, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + return isZero(C.LAPACKE_dptsvx((C.int)(rowMajor), (C.char)(fact), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&df[0]), (*C.double)(&ef[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Cptsvx(fact byte, n int, nrhs int, d []float32, e []complex64, df []float32, ef []complex64, b []complex64, ldb int, x []complex64, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + return isZero(C.LAPACKE_cptsvx((C.int)(rowMajor), (C.char)(fact), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&d[0]), (*C.lapack_complex_float)(&e[0]), (*C.float)(&df[0]), (*C.lapack_complex_float)(&ef[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zptsvx(fact byte, n int, nrhs int, d []float64, e []complex128, df []float64, ef []complex128, b []complex128, ldb int, x []complex128, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + return isZero(C.LAPACKE_zptsvx((C.int)(rowMajor), (C.char)(fact), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&d[0]), (*C.lapack_complex_double)(&e[0]), (*C.double)(&df[0]), (*C.lapack_complex_double)(&ef[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Spttrf(n int, d []float32, e []float32) bool { + return isZero(C.LAPACKE_spttrf((C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]))) +} + +func Dpttrf(n int, d []float64, e []float64) bool { + return isZero(C.LAPACKE_dpttrf((C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]))) +} + +func Cpttrf(n int, d []float32, e []complex64) bool { + return isZero(C.LAPACKE_cpttrf((C.lapack_int)(n), (*C.float)(&d[0]), (*C.lapack_complex_float)(&e[0]))) +} + +func Zpttrf(n int, d []float64, e []complex128) bool { + return isZero(C.LAPACKE_zpttrf((C.lapack_int)(n), (*C.double)(&d[0]), (*C.lapack_complex_double)(&e[0]))) +} + +func Spttrs(n int, nrhs int, d []float32, e []float32, b []float32, ldb int) bool { + return isZero(C.LAPACKE_spttrs((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dpttrs(n int, nrhs int, d []float64, e []float64, b []float64, ldb int) bool { + return isZero(C.LAPACKE_dpttrs((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cpttrs(ul blas.Uplo, n int, nrhs int, d []float32, e []complex64, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cpttrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&d[0]), (*C.lapack_complex_float)(&e[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zpttrs(ul blas.Uplo, n int, nrhs int, d []float64, e []complex128, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zpttrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&d[0]), (*C.lapack_complex_double)(&e[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Ssbev(jobz lapack.Job, ul blas.Uplo, n int, kd int, ab []float32, ldab int, w []float32, z []float32, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssbev((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dsbev(jobz lapack.Job, ul blas.Uplo, n int, kd int, ab []float64, ldab int, w []float64, z []float64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsbev((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Ssbevd(jobz lapack.Job, ul blas.Uplo, n int, kd int, ab []float32, ldab int, w []float32, z []float32, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssbevd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dsbevd(jobz lapack.Job, ul blas.Uplo, n int, kd int, ab []float64, ldab int, w []float64, z []float64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsbevd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Ssbevx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, kd int, ab []float32, ldab int, q []float32, ldq int, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []float32, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssbevx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&q[0]), (C.lapack_int)(ldq), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Dsbevx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, kd int, ab []float64, ldab int, q []float64, ldq int, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []float64, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsbevx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&q[0]), (C.lapack_int)(ldq), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Ssbgst(vect byte, ul blas.Uplo, n int, ka int, kb int, ab []float32, ldab int, bb []float32, ldbb int, x []float32, ldx int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssbgst((C.int)(rowMajor), (C.char)(vect), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&bb[0]), (C.lapack_int)(ldbb), (*C.float)(&x[0]), (C.lapack_int)(ldx))) +} + +func Dsbgst(vect byte, ul blas.Uplo, n int, ka int, kb int, ab []float64, ldab int, bb []float64, ldbb int, x []float64, ldx int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsbgst((C.int)(rowMajor), (C.char)(vect), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&bb[0]), (C.lapack_int)(ldbb), (*C.double)(&x[0]), (C.lapack_int)(ldx))) +} + +func Ssbgv(jobz lapack.Job, ul blas.Uplo, n int, ka int, kb int, ab []float32, ldab int, bb []float32, ldbb int, w []float32, z []float32, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssbgv((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&bb[0]), (C.lapack_int)(ldbb), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dsbgv(jobz lapack.Job, ul blas.Uplo, n int, ka int, kb int, ab []float64, ldab int, bb []float64, ldbb int, w []float64, z []float64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsbgv((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&bb[0]), (C.lapack_int)(ldbb), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Ssbgvd(jobz lapack.Job, ul blas.Uplo, n int, ka int, kb int, ab []float32, ldab int, bb []float32, ldbb int, w []float32, z []float32, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssbgvd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&bb[0]), (C.lapack_int)(ldbb), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dsbgvd(jobz lapack.Job, ul blas.Uplo, n int, ka int, kb int, ab []float64, ldab int, bb []float64, ldbb int, w []float64, z []float64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsbgvd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&bb[0]), (C.lapack_int)(ldbb), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Ssbgvx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, ka int, kb int, ab []float32, ldab int, bb []float32, ldbb int, q []float32, ldq int, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []float32, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssbgvx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&bb[0]), (C.lapack_int)(ldbb), (*C.float)(&q[0]), (C.lapack_int)(ldq), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Dsbgvx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, ka int, kb int, ab []float64, ldab int, bb []float64, ldbb int, q []float64, ldq int, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []float64, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsbgvx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(ka), (C.lapack_int)(kb), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&bb[0]), (C.lapack_int)(ldbb), (*C.double)(&q[0]), (C.lapack_int)(ldq), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Ssbtrd(vect byte, ul blas.Uplo, n int, kd int, ab []float32, ldab int, d []float32, e []float32, q []float32, ldq int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssbtrd((C.int)(rowMajor), (C.char)(vect), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&q[0]), (C.lapack_int)(ldq))) +} + +func Dsbtrd(vect byte, ul blas.Uplo, n int, kd int, ab []float64, ldab int, d []float64, e []float64, q []float64, ldq int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsbtrd((C.int)(rowMajor), (C.char)(vect), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&q[0]), (C.lapack_int)(ldq))) +} + +func Ssfrk(transr blas.Transpose, ul blas.Uplo, trans blas.Transpose, n int, k int, alpha float32, a []float32, lda int, beta float32, c []float32) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_ssfrk((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(k), (C.float)(alpha), (*C.float)(&a[0]), (C.lapack_int)(lda), (C.float)(beta), (*C.float)(&c[0]))) +} + +func Dsfrk(transr blas.Transpose, ul blas.Uplo, trans blas.Transpose, n int, k int, alpha float64, a []float64, lda int, beta float64, c []float64) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dsfrk((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.char)(trans), (C.lapack_int)(n), (C.lapack_int)(k), (C.double)(alpha), (*C.double)(&a[0]), (C.lapack_int)(lda), (C.double)(beta), (*C.double)(&c[0]))) +} + +func Sspcon(ul blas.Uplo, n int, ap []float32, ipiv []int32, anorm float32, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sspcon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Dspcon(ul blas.Uplo, n int, ap []float64, ipiv []int32, anorm float64, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dspcon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Cspcon(ul blas.Uplo, n int, ap []complex64, ipiv []int32, anorm float32, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cspcon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Zspcon(ul blas.Uplo, n int, ap []complex128, ipiv []int32, anorm float64, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zspcon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Sspev(jobz lapack.Job, ul blas.Uplo, n int, ap []float32, w []float32, z []float32, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sspev((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dspev(jobz lapack.Job, ul blas.Uplo, n int, ap []float64, w []float64, z []float64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dspev((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Sspevd(jobz lapack.Job, ul blas.Uplo, n int, ap []float32, w []float32, z []float32, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sspevd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dspevd(jobz lapack.Job, ul blas.Uplo, n int, ap []float64, w []float64, z []float64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dspevd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Sspevx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, ap []float32, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []float32, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sspevx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Dspevx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, ap []float64, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []float64, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dspevx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Sspgst(itype int, ul blas.Uplo, n int, ap []float32, bp []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sspgst((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.float)(&bp[0]))) +} + +func Dspgst(itype int, ul blas.Uplo, n int, ap []float64, bp []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dspgst((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.double)(&bp[0]))) +} + +func Sspgv(itype int, jobz lapack.Job, ul blas.Uplo, n int, ap []float32, bp []float32, w []float32, z []float32, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sspgv((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.float)(&bp[0]), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dspgv(itype int, jobz lapack.Job, ul blas.Uplo, n int, ap []float64, bp []float64, w []float64, z []float64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dspgv((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.double)(&bp[0]), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Sspgvd(itype int, jobz lapack.Job, ul blas.Uplo, n int, ap []float32, bp []float32, w []float32, z []float32, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sspgvd((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.float)(&bp[0]), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dspgvd(itype int, jobz lapack.Job, ul blas.Uplo, n int, ap []float64, bp []float64, w []float64, z []float64, ldz int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dspgvd((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.double)(&bp[0]), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Sspgvx(itype int, jobz lapack.Job, rng byte, ul blas.Uplo, n int, ap []float32, bp []float32, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []float32, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sspgvx((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.float)(&bp[0]), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Dspgvx(itype int, jobz lapack.Job, rng byte, ul blas.Uplo, n int, ap []float64, bp []float64, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []float64, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dspgvx((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.double)(&bp[0]), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Ssprfs(ul blas.Uplo, n int, nrhs int, ap []float32, afp []float32, ipiv []int32, b []float32, ldb int, x []float32, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssprfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&ap[0]), (*C.float)(&afp[0]), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dsprfs(ul blas.Uplo, n int, nrhs int, ap []float64, afp []float64, ipiv []int32, b []float64, ldb int, x []float64, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsprfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&ap[0]), (*C.double)(&afp[0]), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Csprfs(ul blas.Uplo, n int, nrhs int, ap []complex64, afp []complex64, ipiv []int32, b []complex64, ldb int, x []complex64, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csprfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&afp[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zsprfs(ul blas.Uplo, n int, nrhs int, ap []complex128, afp []complex128, ipiv []int32, b []complex128, ldb int, x []complex128, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsprfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&afp[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Sspsv(ul blas.Uplo, n int, nrhs int, ap []float32, ipiv []int32, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sspsv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dspsv(ul blas.Uplo, n int, nrhs int, ap []float64, ipiv []int32, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dspsv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cspsv(ul blas.Uplo, n int, nrhs int, ap []complex64, ipiv []int32, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cspsv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zspsv(ul blas.Uplo, n int, nrhs int, ap []complex128, ipiv []int32, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zspsv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Sspsvx(fact byte, ul blas.Uplo, n int, nrhs int, ap []float32, afp []float32, ipiv []int32, b []float32, ldb int, x []float32, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_sspsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&ap[0]), (*C.float)(&afp[0]), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dspsvx(fact byte, ul blas.Uplo, n int, nrhs int, ap []float64, afp []float64, ipiv []int32, b []float64, ldb int, x []float64, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dspsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&ap[0]), (*C.double)(&afp[0]), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Cspsvx(fact byte, ul blas.Uplo, n int, nrhs int, ap []complex64, afp []complex64, ipiv []int32, b []complex64, ldb int, x []complex64, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cspsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&afp[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zspsvx(fact byte, ul blas.Uplo, n int, nrhs int, ap []complex128, afp []complex128, ipiv []int32, b []complex128, ldb int, x []complex128, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zspsvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&afp[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Ssptrd(ul blas.Uplo, n int, ap []float32, d []float32, e []float32, tau []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssptrd((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&tau[0]))) +} + +func Dsptrd(ul blas.Uplo, n int, ap []float64, d []float64, e []float64, tau []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsptrd((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&tau[0]))) +} + +func Ssptrf(ul blas.Uplo, n int, ap []float32, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssptrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Dsptrf(ul blas.Uplo, n int, ap []float64, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsptrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Csptrf(ul blas.Uplo, n int, ap []complex64, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csptrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Zsptrf(ul blas.Uplo, n int, ap []complex128, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsptrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Ssptri(ul blas.Uplo, n int, ap []float32, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssptri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Dsptri(ul blas.Uplo, n int, ap []float64, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsptri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Csptri(ul blas.Uplo, n int, ap []complex64, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csptri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Zsptri(ul blas.Uplo, n int, ap []complex128, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsptri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_int)(&ipiv[0]))) +} + +func Ssptrs(ul blas.Uplo, n int, nrhs int, ap []float32, ipiv []int32, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssptrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dsptrs(ul blas.Uplo, n int, nrhs int, ap []float64, ipiv []int32, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsptrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Csptrs(ul blas.Uplo, n int, nrhs int, ap []complex64, ipiv []int32, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csptrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zsptrs(ul blas.Uplo, n int, nrhs int, ap []complex128, ipiv []int32, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsptrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Sstebz(rng byte, order byte, n int, vl float32, vu float32, il int, iu int, abstol float32, d []float32, e []float32, m []int32, nsplit []int32, w []float32, iblock []int32, isplit []int32) bool { + return isZero(C.LAPACKE_sstebz((C.char)(rng), (C.char)(order), (C.lapack_int)(n), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.lapack_int)(&m[0]), (*C.lapack_int)(&nsplit[0]), (*C.float)(&w[0]), (*C.lapack_int)(&iblock[0]), (*C.lapack_int)(&isplit[0]))) +} + +func Dstebz(rng byte, order byte, n int, vl float64, vu float64, il int, iu int, abstol float64, d []float64, e []float64, m []int32, nsplit []int32, w []float64, iblock []int32, isplit []int32) bool { + return isZero(C.LAPACKE_dstebz((C.char)(rng), (C.char)(order), (C.lapack_int)(n), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.lapack_int)(&m[0]), (*C.lapack_int)(&nsplit[0]), (*C.double)(&w[0]), (*C.lapack_int)(&iblock[0]), (*C.lapack_int)(&isplit[0]))) +} + +func Sstedc(compz lapack.CompSV, n int, d []float32, e []float32, z []float32, ldz int) bool { + return isZero(C.LAPACKE_sstedc((C.int)(rowMajor), (C.char)(compz), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dstedc(compz lapack.CompSV, n int, d []float64, e []float64, z []float64, ldz int) bool { + return isZero(C.LAPACKE_dstedc((C.int)(rowMajor), (C.char)(compz), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Cstedc(compz lapack.CompSV, n int, d []float32, e []float32, z []complex64, ldz int) bool { + return isZero(C.LAPACKE_cstedc((C.int)(rowMajor), (C.char)(compz), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Zstedc(compz lapack.CompSV, n int, d []float64, e []float64, z []complex128, ldz int) bool { + return isZero(C.LAPACKE_zstedc((C.int)(rowMajor), (C.char)(compz), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Sstegr(jobz lapack.Job, rng byte, n int, d []float32, e []float32, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []float32, ldz int, isuppz []int32) bool { + return isZero(C.LAPACKE_sstegr((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&isuppz[0]))) +} + +func Dstegr(jobz lapack.Job, rng byte, n int, d []float64, e []float64, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []float64, ldz int, isuppz []int32) bool { + return isZero(C.LAPACKE_dstegr((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&isuppz[0]))) +} + +func Cstegr(jobz lapack.Job, rng byte, n int, d []float32, e []float32, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []complex64, ldz int, isuppz []int32) bool { + return isZero(C.LAPACKE_cstegr((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&isuppz[0]))) +} + +func Zstegr(jobz lapack.Job, rng byte, n int, d []float64, e []float64, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []complex128, ldz int, isuppz []int32) bool { + return isZero(C.LAPACKE_zstegr((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&isuppz[0]))) +} + +func Sstein(n int, d []float32, e []float32, m int, w []float32, iblock []int32, isplit []int32, z []float32, ldz int, ifailv []int32) bool { + return isZero(C.LAPACKE_sstein((C.int)(rowMajor), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (C.lapack_int)(m), (*C.float)(&w[0]), (*C.lapack_int)(&iblock[0]), (*C.lapack_int)(&isplit[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifailv[0]))) +} + +func Dstein(n int, d []float64, e []float64, m int, w []float64, iblock []int32, isplit []int32, z []float64, ldz int, ifailv []int32) bool { + return isZero(C.LAPACKE_dstein((C.int)(rowMajor), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (C.lapack_int)(m), (*C.double)(&w[0]), (*C.lapack_int)(&iblock[0]), (*C.lapack_int)(&isplit[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifailv[0]))) +} + +func Cstein(n int, d []float32, e []float32, m int, w []float32, iblock []int32, isplit []int32, z []complex64, ldz int, ifailv []int32) bool { + return isZero(C.LAPACKE_cstein((C.int)(rowMajor), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (C.lapack_int)(m), (*C.float)(&w[0]), (*C.lapack_int)(&iblock[0]), (*C.lapack_int)(&isplit[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifailv[0]))) +} + +func Zstein(n int, d []float64, e []float64, m int, w []float64, iblock []int32, isplit []int32, z []complex128, ldz int, ifailv []int32) bool { + return isZero(C.LAPACKE_zstein((C.int)(rowMajor), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (C.lapack_int)(m), (*C.double)(&w[0]), (*C.lapack_int)(&iblock[0]), (*C.lapack_int)(&isplit[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifailv[0]))) +} + +func Sstemr(jobz lapack.Job, rng byte, n int, d []float32, e []float32, vl float32, vu float32, il int, iu int, m []int32, w []float32, z []float32, ldz int, nzc int, isuppz []int32, tryrac []int32) bool { + return isZero(C.LAPACKE_sstemr((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz), (C.lapack_int)(nzc), (*C.lapack_int)(&isuppz[0]), (*C.lapack_logical)(&tryrac[0]))) +} + +func Dstemr(jobz lapack.Job, rng byte, n int, d []float64, e []float64, vl float64, vu float64, il int, iu int, m []int32, w []float64, z []float64, ldz int, nzc int, isuppz []int32, tryrac []int32) bool { + return isZero(C.LAPACKE_dstemr((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz), (C.lapack_int)(nzc), (*C.lapack_int)(&isuppz[0]), (*C.lapack_logical)(&tryrac[0]))) +} + +func Cstemr(jobz lapack.Job, rng byte, n int, d []float32, e []float32, vl float32, vu float32, il int, iu int, m []int32, w []float32, z []complex64, ldz int, nzc int, isuppz []int32, tryrac []int32) bool { + return isZero(C.LAPACKE_cstemr((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz), (C.lapack_int)(nzc), (*C.lapack_int)(&isuppz[0]), (*C.lapack_logical)(&tryrac[0]))) +} + +func Zstemr(jobz lapack.Job, rng byte, n int, d []float64, e []float64, vl float64, vu float64, il int, iu int, m []int32, w []float64, z []complex128, ldz int, nzc int, isuppz []int32, tryrac []int32) bool { + return isZero(C.LAPACKE_zstemr((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz), (C.lapack_int)(nzc), (*C.lapack_int)(&isuppz[0]), (*C.lapack_logical)(&tryrac[0]))) +} + +func Ssteqr(compz lapack.CompSV, n int, d []float32, e []float32, z []float32, ldz int) bool { + return isZero(C.LAPACKE_ssteqr((C.int)(rowMajor), (C.char)(compz), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dsteqr(compz lapack.CompSV, n int, d []float64, e []float64, z []float64, ldz int) bool { + return isZero(C.LAPACKE_dsteqr((C.int)(rowMajor), (C.char)(compz), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Csteqr(compz lapack.CompSV, n int, d []float32, e []float32, z []complex64, ldz int) bool { + return isZero(C.LAPACKE_csteqr((C.int)(rowMajor), (C.char)(compz), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Zsteqr(compz lapack.CompSV, n int, d []float64, e []float64, z []complex128, ldz int) bool { + return isZero(C.LAPACKE_zsteqr((C.int)(rowMajor), (C.char)(compz), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Ssterf(n int, d []float32, e []float32) bool { + return isZero(C.LAPACKE_ssterf((C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]))) +} + +func Dsterf(n int, d []float64, e []float64) bool { + return isZero(C.LAPACKE_dsterf((C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]))) +} + +func Sstev(jobz lapack.Job, n int, d []float32, e []float32, z []float32, ldz int) bool { + return isZero(C.LAPACKE_sstev((C.int)(rowMajor), (C.char)(jobz), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dstev(jobz lapack.Job, n int, d []float64, e []float64, z []float64, ldz int) bool { + return isZero(C.LAPACKE_dstev((C.int)(rowMajor), (C.char)(jobz), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Sstevd(jobz lapack.Job, n int, d []float32, e []float32, z []float32, ldz int) bool { + return isZero(C.LAPACKE_sstevd((C.int)(rowMajor), (C.char)(jobz), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz))) +} + +func Dstevd(jobz lapack.Job, n int, d []float64, e []float64, z []float64, ldz int) bool { + return isZero(C.LAPACKE_dstevd((C.int)(rowMajor), (C.char)(jobz), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz))) +} + +func Sstevr(jobz lapack.Job, rng byte, n int, d []float32, e []float32, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []float32, ldz int, isuppz []int32) bool { + return isZero(C.LAPACKE_sstevr((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&isuppz[0]))) +} + +func Dstevr(jobz lapack.Job, rng byte, n int, d []float64, e []float64, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []float64, ldz int, isuppz []int32) bool { + return isZero(C.LAPACKE_dstevr((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&isuppz[0]))) +} + +func Sstevx(jobz lapack.Job, rng byte, n int, d []float32, e []float32, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []float32, ldz int, ifail []int32) bool { + return isZero(C.LAPACKE_sstevx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.lapack_int)(n), (*C.float)(&d[0]), (*C.float)(&e[0]), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Dstevx(jobz lapack.Job, rng byte, n int, d []float64, e []float64, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []float64, ldz int, ifail []int32) bool { + return isZero(C.LAPACKE_dstevx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.lapack_int)(n), (*C.double)(&d[0]), (*C.double)(&e[0]), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Ssycon(ul blas.Uplo, n int, a []float32, lda int, ipiv []int32, anorm float32, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssycon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Dsycon(ul blas.Uplo, n int, a []float64, lda int, ipiv []int32, anorm float64, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsycon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Csycon(ul blas.Uplo, n int, a []complex64, lda int, ipiv []int32, anorm float32, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csycon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (C.float)(anorm), (*C.float)(&rcond[0]))) +} + +func Zsycon(ul blas.Uplo, n int, a []complex128, lda int, ipiv []int32, anorm float64, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsycon((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (C.double)(anorm), (*C.double)(&rcond[0]))) +} + +func Ssyequb(ul blas.Uplo, n int, a []float32, lda int, s []float32, scond []float32, amax []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssyequb((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&s[0]), (*C.float)(&scond[0]), (*C.float)(&amax[0]))) +} + +func Dsyequb(ul blas.Uplo, n int, a []float64, lda int, s []float64, scond []float64, amax []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsyequb((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&s[0]), (*C.double)(&scond[0]), (*C.double)(&amax[0]))) +} + +func Csyequb(ul blas.Uplo, n int, a []complex64, lda int, s []float32, scond []float32, amax []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csyequb((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&s[0]), (*C.float)(&scond[0]), (*C.float)(&amax[0]))) +} + +func Zsyequb(ul blas.Uplo, n int, a []complex128, lda int, s []float64, scond []float64, amax []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsyequb((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&s[0]), (*C.double)(&scond[0]), (*C.double)(&amax[0]))) +} + +func Ssyev(jobz lapack.Job, ul blas.Uplo, n int, a []float32, lda int, w []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssyev((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&w[0]))) +} + +func Dsyev(jobz lapack.Job, ul blas.Uplo, n int, a []float64, lda int, w []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsyev((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&w[0]))) +} + +func Ssyevd(jobz lapack.Job, ul blas.Uplo, n int, a []float32, lda int, w []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssyevd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&w[0]))) +} + +func Dsyevd(jobz lapack.Job, ul blas.Uplo, n int, a []float64, lda int, w []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsyevd((C.int)(rowMajor), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&w[0]))) +} + +func Ssyevr(jobz lapack.Job, rng byte, ul blas.Uplo, n int, a []float32, lda int, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []float32, ldz int, isuppz []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssyevr((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&isuppz[0]))) +} + +func Dsyevr(jobz lapack.Job, rng byte, ul blas.Uplo, n int, a []float64, lda int, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []float64, ldz int, isuppz []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsyevr((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&isuppz[0]))) +} + +func Ssyevx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, a []float32, lda int, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []float32, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssyevx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Dsyevx(jobz lapack.Job, rng byte, ul blas.Uplo, n int, a []float64, lda int, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []float64, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsyevx((C.int)(rowMajor), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Ssygst(itype int, ul blas.Uplo, n int, a []float32, lda int, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssygst((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dsygst(itype int, ul blas.Uplo, n int, a []float64, lda int, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsygst((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Ssygv(itype int, jobz lapack.Job, ul blas.Uplo, n int, a []float32, lda int, b []float32, ldb int, w []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssygv((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&w[0]))) +} + +func Dsygv(itype int, jobz lapack.Job, ul blas.Uplo, n int, a []float64, lda int, b []float64, ldb int, w []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsygv((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&w[0]))) +} + +func Ssygvd(itype int, jobz lapack.Job, ul blas.Uplo, n int, a []float32, lda int, b []float32, ldb int, w []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssygvd((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&w[0]))) +} + +func Dsygvd(itype int, jobz lapack.Job, ul blas.Uplo, n int, a []float64, lda int, b []float64, ldb int, w []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsygvd((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&w[0]))) +} + +func Ssygvx(itype int, jobz lapack.Job, rng byte, ul blas.Uplo, n int, a []float32, lda int, b []float32, ldb int, vl float32, vu float32, il int, iu int, abstol float32, m []int32, w []float32, z []float32, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssygvx((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (C.float)(vl), (C.float)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.float)(abstol), (*C.lapack_int)(&m[0]), (*C.float)(&w[0]), (*C.float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Dsygvx(itype int, jobz lapack.Job, rng byte, ul blas.Uplo, n int, a []float64, lda int, b []float64, ldb int, vl float64, vu float64, il int, iu int, abstol float64, m []int32, w []float64, z []float64, ldz int, ifail []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsygvx((C.int)(rowMajor), (C.lapack_int)(itype), (C.char)(jobz), (C.char)(rng), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (C.double)(vl), (C.double)(vu), (C.lapack_int)(il), (C.lapack_int)(iu), (C.double)(abstol), (*C.lapack_int)(&m[0]), (*C.double)(&w[0]), (*C.double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifail[0]))) +} + +func Ssyrfs(ul blas.Uplo, n int, nrhs int, a []float32, lda int, af []float32, ldaf int, ipiv []int32, b []float32, ldb int, x []float32, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssyrfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dsyrfs(ul blas.Uplo, n int, nrhs int, a []float64, lda int, af []float64, ldaf int, ipiv []int32, b []float64, ldb int, x []float64, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsyrfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Csyrfs(ul blas.Uplo, n int, nrhs int, a []complex64, lda int, af []complex64, ldaf int, ipiv []int32, b []complex64, ldb int, x []complex64, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csyrfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zsyrfs(ul blas.Uplo, n int, nrhs int, a []complex128, lda int, af []complex128, ldaf int, ipiv []int32, b []complex128, ldb int, x []complex128, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsyrfs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Ssysv(ul blas.Uplo, n int, nrhs int, a []float32, lda int, ipiv []int32, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssysv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dsysv(ul blas.Uplo, n int, nrhs int, a []float64, lda int, ipiv []int32, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsysv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Csysv(ul blas.Uplo, n int, nrhs int, a []complex64, lda int, ipiv []int32, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csysv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zsysv(ul blas.Uplo, n int, nrhs int, a []complex128, lda int, ipiv []int32, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsysv((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Ssysvx(fact byte, ul blas.Uplo, n int, nrhs int, a []float32, lda int, af []float32, ldaf int, ipiv []int32, b []float32, ldb int, x []float32, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssysvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dsysvx(fact byte, ul blas.Uplo, n int, nrhs int, a []float64, lda int, af []float64, ldaf int, ipiv []int32, b []float64, ldb int, x []float64, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsysvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Csysvx(fact byte, ul blas.Uplo, n int, nrhs int, a []complex64, lda int, af []complex64, ldaf int, ipiv []int32, b []complex64, ldb int, x []complex64, ldx int, rcond []float32, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csysvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&rcond[0]), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Zsysvx(fact byte, ul blas.Uplo, n int, nrhs int, a []complex128, lda int, af []complex128, ldaf int, ipiv []int32, b []complex128, ldb int, x []complex128, ldx int, rcond []float64, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsysvx((C.int)(rowMajor), (C.char)(fact), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&af[0]), (C.lapack_int)(ldaf), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&rcond[0]), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Ssytrd(ul blas.Uplo, n int, a []float32, lda int, d []float32, e []float32, tau []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssytrd((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&d[0]), (*C.float)(&e[0]), (*C.float)(&tau[0]))) +} + +func Dsytrd(ul blas.Uplo, n int, a []float64, lda int, d []float64, e []float64, tau []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsytrd((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&d[0]), (*C.double)(&e[0]), (*C.double)(&tau[0]))) +} + +func Ssytrf(ul blas.Uplo, n int, a []float32, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssytrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Dsytrf(ul blas.Uplo, n int, a []float64, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsytrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Csytrf(ul blas.Uplo, n int, a []complex64, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csytrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Zsytrf(ul blas.Uplo, n int, a []complex128, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsytrf((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Ssytri(ul blas.Uplo, n int, a []float32, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssytri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Dsytri(ul blas.Uplo, n int, a []float64, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsytri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Csytri(ul blas.Uplo, n int, a []complex64, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csytri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Zsytri(ul blas.Uplo, n int, a []complex128, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsytri((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Ssytrs(ul blas.Uplo, n int, nrhs int, a []float32, lda int, ipiv []int32, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssytrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dsytrs(ul blas.Uplo, n int, nrhs int, a []float64, lda int, ipiv []int32, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsytrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Csytrs(ul blas.Uplo, n int, nrhs int, a []complex64, lda int, ipiv []int32, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csytrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zsytrs(ul blas.Uplo, n int, nrhs int, a []complex128, lda int, ipiv []int32, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsytrs((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Stbcon(norm byte, ul blas.Uplo, d blas.Diag, n int, kd int, ab []float32, ldab int, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_stbcon((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&rcond[0]))) +} + +func Dtbcon(norm byte, ul blas.Uplo, d blas.Diag, n int, kd int, ab []float64, ldab int, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_dtbcon((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&rcond[0]))) +} + +func Ctbcon(norm byte, ul blas.Uplo, d blas.Diag, n int, kd int, ab []complex64, ldab int, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ctbcon((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&rcond[0]))) +} + +func Ztbcon(norm byte, ul blas.Uplo, d blas.Diag, n int, kd int, ab []complex128, ldab int, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ztbcon((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(kd), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&rcond[0]))) +} + +func Stbrfs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, kd int, nrhs int, ab []float32, ldab int, b []float32, ldb int, x []float32, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_stbrfs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dtbrfs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, kd int, nrhs int, ab []float64, ldab int, b []float64, ldb int, x []float64, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_dtbrfs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Ctbrfs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, kd int, nrhs int, ab []complex64, ldab int, b []complex64, ldb int, x []complex64, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ctbrfs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Ztbrfs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, kd int, nrhs int, ab []complex128, ldab int, b []complex128, ldb int, x []complex128, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ztbrfs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Stbtrs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, kd int, nrhs int, ab []float32, ldab int, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_stbtrs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.float)(&ab[0]), (C.lapack_int)(ldab), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dtbtrs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, kd int, nrhs int, ab []float64, ldab int, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_dtbtrs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.double)(&ab[0]), (C.lapack_int)(ldab), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Ctbtrs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, kd int, nrhs int, ab []complex64, ldab int, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ctbtrs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Ztbtrs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, kd int, nrhs int, ab []complex128, ldab int, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ztbtrs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(kd), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ab[0]), (C.lapack_int)(ldab), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Stfsm(transr blas.Transpose, s blas.Side, ul blas.Uplo, trans blas.Transpose, d blas.Diag, m int, n int, alpha float32, a []float32, b []float32, ldb int) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_stfsm((C.int)(rowMajor), (C.char)(transr), (C.char)(s), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(m), (C.lapack_int)(n), (C.float)(alpha), (*C.float)(&a[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dtfsm(transr blas.Transpose, s blas.Side, ul blas.Uplo, trans blas.Transpose, d blas.Diag, m int, n int, alpha float64, a []float64, b []float64, ldb int) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_dtfsm((C.int)(rowMajor), (C.char)(transr), (C.char)(s), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(m), (C.lapack_int)(n), (C.double)(alpha), (*C.double)(&a[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Ctfsm(transr blas.Transpose, s blas.Side, ul blas.Uplo, trans blas.Transpose, d blas.Diag, m int, n int, alpha complex64, a []complex64, b []complex64, ldb int) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ctfsm((C.int)(rowMajor), (C.char)(transr), (C.char)(s), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_complex_float)(alpha), (*C.lapack_complex_float)(&a[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Ztfsm(transr blas.Transpose, s blas.Side, ul blas.Uplo, trans blas.Transpose, d blas.Diag, m int, n int, alpha complex128, a []complex128, b []complex128, ldb int) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ztfsm((C.int)(rowMajor), (C.char)(transr), (C.char)(s), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_complex_double)(alpha), (*C.lapack_complex_double)(&a[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Stftri(transr blas.Transpose, ul blas.Uplo, d blas.Diag, n int, a []float32) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_stftri((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.float)(&a[0]))) +} + +func Dtftri(transr blas.Transpose, ul blas.Uplo, d blas.Diag, n int, a []float64) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_dtftri((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.double)(&a[0]))) +} + +func Ctftri(transr blas.Transpose, ul blas.Uplo, d blas.Diag, n int, a []complex64) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ctftri((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]))) +} + +func Ztftri(transr blas.Transpose, ul blas.Uplo, d blas.Diag, n int, a []complex128) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ztftri((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]))) +} + +func Stfttp(transr blas.Transpose, ul blas.Uplo, n int, arf []float32, ap []float32) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_stfttp((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&arf[0]), (*C.float)(&ap[0]))) +} + +func Dtfttp(transr blas.Transpose, ul blas.Uplo, n int, arf []float64, ap []float64) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dtfttp((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&arf[0]), (*C.double)(&ap[0]))) +} + +func Ctfttp(transr blas.Transpose, ul blas.Uplo, n int, arf []complex64, ap []complex64) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ctfttp((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&arf[0]), (*C.lapack_complex_float)(&ap[0]))) +} + +func Ztfttp(transr blas.Transpose, ul blas.Uplo, n int, arf []complex128, ap []complex128) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ztfttp((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&arf[0]), (*C.lapack_complex_double)(&ap[0]))) +} + +func Stfttr(transr blas.Transpose, ul blas.Uplo, n int, arf []float32, a []float32, lda int) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_stfttr((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&arf[0]), (*C.float)(&a[0]), (C.lapack_int)(lda))) +} + +func Dtfttr(transr blas.Transpose, ul blas.Uplo, n int, arf []float64, a []float64, lda int) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dtfttr((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&arf[0]), (*C.double)(&a[0]), (C.lapack_int)(lda))) +} + +func Ctfttr(transr blas.Transpose, ul blas.Uplo, n int, arf []complex64, a []complex64, lda int) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ctfttr((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&arf[0]), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda))) +} + +func Ztfttr(transr blas.Transpose, ul blas.Uplo, n int, arf []complex128, a []complex128, lda int) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ztfttr((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&arf[0]), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda))) +} + +func Stgexc(wantq int32, wantz int32, n int, a []float32, lda int, b []float32, ldb int, q []float32, ldq int, z []float32, ldz int, ifst []int32, ilst []int32) bool { + return isZero(C.LAPACKE_stgexc((C.int)(rowMajor), (C.lapack_logical)(wantq), (C.lapack_logical)(wantz), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&q[0]), (C.lapack_int)(ldq), (*C.float)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifst[0]), (*C.lapack_int)(&ilst[0]))) +} + +func Dtgexc(wantq int32, wantz int32, n int, a []float64, lda int, b []float64, ldb int, q []float64, ldq int, z []float64, ldz int, ifst []int32, ilst []int32) bool { + return isZero(C.LAPACKE_dtgexc((C.int)(rowMajor), (C.lapack_logical)(wantq), (C.lapack_logical)(wantz), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&q[0]), (C.lapack_int)(ldq), (*C.double)(&z[0]), (C.lapack_int)(ldz), (*C.lapack_int)(&ifst[0]), (*C.lapack_int)(&ilst[0]))) +} + +func Ctgexc(wantq int32, wantz int32, n int, a []complex64, lda int, b []complex64, ldb int, q []complex64, ldq int, z []complex64, ldz int, ifst int, ilst int) bool { + return isZero(C.LAPACKE_ctgexc((C.int)(rowMajor), (C.lapack_logical)(wantq), (C.lapack_logical)(wantz), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_complex_float)(&z[0]), (C.lapack_int)(ldz), (C.lapack_int)(ifst), (C.lapack_int)(ilst))) +} + +func Ztgexc(wantq int32, wantz int32, n int, a []complex128, lda int, b []complex128, ldb int, q []complex128, ldq int, z []complex128, ldz int, ifst int, ilst int) bool { + return isZero(C.LAPACKE_ztgexc((C.int)(rowMajor), (C.lapack_logical)(wantq), (C.lapack_logical)(wantz), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_complex_double)(&z[0]), (C.lapack_int)(ldz), (C.lapack_int)(ifst), (C.lapack_int)(ilst))) +} + +func Stgsja(jobu lapack.Job, jobv lapack.Job, jobq lapack.Job, m int, p int, n int, k int, l int, a []float32, lda int, b []float32, ldb int, tola float32, tolb float32, alpha []float32, beta []float32, u []float32, ldu int, v []float32, ldv int, q []float32, ldq int, ncycle []int32) bool { + return isZero(C.LAPACKE_stgsja((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobv), (C.char)(jobq), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (C.float)(tola), (C.float)(tolb), (*C.float)(&alpha[0]), (*C.float)(&beta[0]), (*C.float)(&u[0]), (C.lapack_int)(ldu), (*C.float)(&v[0]), (C.lapack_int)(ldv), (*C.float)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_int)(&ncycle[0]))) +} + +func Dtgsja(jobu lapack.Job, jobv lapack.Job, jobq lapack.Job, m int, p int, n int, k int, l int, a []float64, lda int, b []float64, ldb int, tola float64, tolb float64, alpha []float64, beta []float64, u []float64, ldu int, v []float64, ldv int, q []float64, ldq int, ncycle []int32) bool { + return isZero(C.LAPACKE_dtgsja((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobv), (C.char)(jobq), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (C.double)(tola), (C.double)(tolb), (*C.double)(&alpha[0]), (*C.double)(&beta[0]), (*C.double)(&u[0]), (C.lapack_int)(ldu), (*C.double)(&v[0]), (C.lapack_int)(ldv), (*C.double)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_int)(&ncycle[0]))) +} + +func Ctgsja(jobu lapack.Job, jobv lapack.Job, jobq lapack.Job, m int, p int, n int, k int, l int, a []complex64, lda int, b []complex64, ldb int, tola float32, tolb float32, alpha []float32, beta []float32, u []complex64, ldu int, v []complex64, ldv int, q []complex64, ldq int, ncycle []int32) bool { + return isZero(C.LAPACKE_ctgsja((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobv), (C.char)(jobq), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (C.float)(tola), (C.float)(tolb), (*C.float)(&alpha[0]), (*C.float)(&beta[0]), (*C.lapack_complex_float)(&u[0]), (C.lapack_int)(ldu), (*C.lapack_complex_float)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_float)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_int)(&ncycle[0]))) +} + +func Ztgsja(jobu lapack.Job, jobv lapack.Job, jobq lapack.Job, m int, p int, n int, k int, l int, a []complex128, lda int, b []complex128, ldb int, tola float64, tolb float64, alpha []float64, beta []float64, u []complex128, ldu int, v []complex128, ldv int, q []complex128, ldq int, ncycle []int32) bool { + return isZero(C.LAPACKE_ztgsja((C.int)(rowMajor), (C.char)(jobu), (C.char)(jobv), (C.char)(jobq), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (C.double)(tola), (C.double)(tolb), (*C.double)(&alpha[0]), (*C.double)(&beta[0]), (*C.lapack_complex_double)(&u[0]), (C.lapack_int)(ldu), (*C.lapack_complex_double)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_double)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_int)(&ncycle[0]))) +} + +func Stgsyl(trans blas.Transpose, ijob lapack.Job, m int, n int, a []float32, lda int, b []float32, ldb int, c []float32, ldc int, d []float32, ldd int, e []float32, lde int, f []float32, ldf int, scale []float32, dif []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_stgsyl((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(ijob), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&c[0]), (C.lapack_int)(ldc), (*C.float)(&d[0]), (C.lapack_int)(ldd), (*C.float)(&e[0]), (C.lapack_int)(lde), (*C.float)(&f[0]), (C.lapack_int)(ldf), (*C.float)(&scale[0]), (*C.float)(&dif[0]))) +} + +func Dtgsyl(trans blas.Transpose, ijob lapack.Job, m int, n int, a []float64, lda int, b []float64, ldb int, c []float64, ldc int, d []float64, ldd int, e []float64, lde int, f []float64, ldf int, scale []float64, dif []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dtgsyl((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(ijob), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&c[0]), (C.lapack_int)(ldc), (*C.double)(&d[0]), (C.lapack_int)(ldd), (*C.double)(&e[0]), (C.lapack_int)(lde), (*C.double)(&f[0]), (C.lapack_int)(ldf), (*C.double)(&scale[0]), (*C.double)(&dif[0]))) +} + +func Ctgsyl(trans blas.Transpose, ijob lapack.Job, m int, n int, a []complex64, lda int, b []complex64, ldb int, c []complex64, ldc int, d []complex64, ldd int, e []complex64, lde int, f []complex64, ldf int, scale []float32, dif []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_ctgsyl((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(ijob), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc), (*C.lapack_complex_float)(&d[0]), (C.lapack_int)(ldd), (*C.lapack_complex_float)(&e[0]), (C.lapack_int)(lde), (*C.lapack_complex_float)(&f[0]), (C.lapack_int)(ldf), (*C.float)(&scale[0]), (*C.float)(&dif[0]))) +} + +func Ztgsyl(trans blas.Transpose, ijob lapack.Job, m int, n int, a []complex128, lda int, b []complex128, ldb int, c []complex128, ldc int, d []complex128, ldd int, e []complex128, lde int, f []complex128, ldf int, scale []float64, dif []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_ztgsyl((C.int)(rowMajor), (C.char)(trans), (C.lapack_int)(ijob), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc), (*C.lapack_complex_double)(&d[0]), (C.lapack_int)(ldd), (*C.lapack_complex_double)(&e[0]), (C.lapack_int)(lde), (*C.lapack_complex_double)(&f[0]), (C.lapack_int)(ldf), (*C.double)(&scale[0]), (*C.double)(&dif[0]))) +} + +func Stpcon(norm byte, ul blas.Uplo, d blas.Diag, n int, ap []float32, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_stpcon((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.float)(&rcond[0]))) +} + +func Dtpcon(norm byte, ul blas.Uplo, d blas.Diag, n int, ap []float64, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_dtpcon((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.double)(&rcond[0]))) +} + +func Ctpcon(norm byte, ul blas.Uplo, d blas.Diag, n int, ap []complex64, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ctpcon((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.float)(&rcond[0]))) +} + +func Ztpcon(norm byte, ul blas.Uplo, d blas.Diag, n int, ap []complex128, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ztpcon((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.double)(&rcond[0]))) +} + +func Stprfs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, ap []float32, b []float32, ldb int, x []float32, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_stprfs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&ap[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dtprfs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, ap []float64, b []float64, ldb int, x []float64, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_dtprfs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&ap[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Ctprfs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, ap []complex64, b []complex64, ldb int, x []complex64, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ctprfs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Ztprfs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, ap []complex128, b []complex128, ldb int, x []complex128, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ztprfs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Stptri(ul blas.Uplo, d blas.Diag, n int, ap []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_stptri((C.int)(rowMajor), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.float)(&ap[0]))) +} + +func Dtptri(ul blas.Uplo, d blas.Diag, n int, ap []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_dtptri((C.int)(rowMajor), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.double)(&ap[0]))) +} + +func Ctptri(ul blas.Uplo, d blas.Diag, n int, ap []complex64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ctptri((C.int)(rowMajor), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]))) +} + +func Ztptri(ul blas.Uplo, d blas.Diag, n int, ap []complex128) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ztptri((C.int)(rowMajor), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]))) +} + +func Stptrs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, ap []float32, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_stptrs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&ap[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dtptrs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, ap []float64, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_dtptrs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&ap[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Ctptrs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, ap []complex64, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ctptrs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Ztptrs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, ap []complex128, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ztptrs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Stpttf(transr blas.Transpose, ul blas.Uplo, n int, ap []float32, arf []float32) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_stpttf((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.float)(&arf[0]))) +} + +func Dtpttf(transr blas.Transpose, ul blas.Uplo, n int, ap []float64, arf []float64) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dtpttf((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.double)(&arf[0]))) +} + +func Ctpttf(transr blas.Transpose, ul blas.Uplo, n int, ap []complex64, arf []complex64) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ctpttf((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&arf[0]))) +} + +func Ztpttf(transr blas.Transpose, ul blas.Uplo, n int, ap []complex128, arf []complex128) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ztpttf((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&arf[0]))) +} + +func Stpttr(ul blas.Uplo, n int, ap []float32, a []float32, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_stpttr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&ap[0]), (*C.float)(&a[0]), (C.lapack_int)(lda))) +} + +func Dtpttr(ul blas.Uplo, n int, ap []float64, a []float64, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dtpttr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&ap[0]), (*C.double)(&a[0]), (C.lapack_int)(lda))) +} + +func Ctpttr(ul blas.Uplo, n int, ap []complex64, a []complex64, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ctpttr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda))) +} + +func Ztpttr(ul blas.Uplo, n int, ap []complex128, a []complex128, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ztpttr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda))) +} + +func Strcon(norm byte, ul blas.Uplo, d blas.Diag, n int, a []float32, lda int, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_strcon((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&rcond[0]))) +} + +func Dtrcon(norm byte, ul blas.Uplo, d blas.Diag, n int, a []float64, lda int, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_dtrcon((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&rcond[0]))) +} + +func Ctrcon(norm byte, ul blas.Uplo, d blas.Diag, n int, a []complex64, lda int, rcond []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ctrcon((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&rcond[0]))) +} + +func Ztrcon(norm byte, ul blas.Uplo, d blas.Diag, n int, a []complex128, lda int, rcond []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ztrcon((C.int)(rowMajor), (C.char)(norm), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&rcond[0]))) +} + +func Strexc(compq lapack.CompSV, n int, t []float32, ldt int, q []float32, ldq int, ifst []int32, ilst []int32) bool { + return isZero(C.LAPACKE_strexc((C.int)(rowMajor), (C.char)(compq), (C.lapack_int)(n), (*C.float)(&t[0]), (C.lapack_int)(ldt), (*C.float)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_int)(&ifst[0]), (*C.lapack_int)(&ilst[0]))) +} + +func Dtrexc(compq lapack.CompSV, n int, t []float64, ldt int, q []float64, ldq int, ifst []int32, ilst []int32) bool { + return isZero(C.LAPACKE_dtrexc((C.int)(rowMajor), (C.char)(compq), (C.lapack_int)(n), (*C.double)(&t[0]), (C.lapack_int)(ldt), (*C.double)(&q[0]), (C.lapack_int)(ldq), (*C.lapack_int)(&ifst[0]), (*C.lapack_int)(&ilst[0]))) +} + +func Ctrexc(compq lapack.CompSV, n int, t []complex64, ldt int, q []complex64, ldq int, ifst int, ilst int) bool { + return isZero(C.LAPACKE_ctrexc((C.int)(rowMajor), (C.char)(compq), (C.lapack_int)(n), (*C.lapack_complex_float)(&t[0]), (C.lapack_int)(ldt), (*C.lapack_complex_float)(&q[0]), (C.lapack_int)(ldq), (C.lapack_int)(ifst), (C.lapack_int)(ilst))) +} + +func Ztrexc(compq lapack.CompSV, n int, t []complex128, ldt int, q []complex128, ldq int, ifst int, ilst int) bool { + return isZero(C.LAPACKE_ztrexc((C.int)(rowMajor), (C.char)(compq), (C.lapack_int)(n), (*C.lapack_complex_double)(&t[0]), (C.lapack_int)(ldt), (*C.lapack_complex_double)(&q[0]), (C.lapack_int)(ldq), (C.lapack_int)(ifst), (C.lapack_int)(ilst))) +} + +func Strrfs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, a []float32, lda int, b []float32, ldb int, x []float32, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_strrfs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Dtrrfs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, a []float64, lda int, b []float64, ldb int, x []float64, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_dtrrfs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Ctrrfs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, a []complex64, lda int, b []complex64, ldb int, x []complex64, ldx int, ferr []float32, berr []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ctrrfs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.float)(&ferr[0]), (*C.float)(&berr[0]))) +} + +func Ztrrfs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, a []complex128, lda int, b []complex128, ldb int, x []complex128, ldx int, ferr []float64, berr []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ztrrfs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.double)(&ferr[0]), (*C.double)(&berr[0]))) +} + +func Strsyl(trana byte, tranb byte, isgn int, m int, n int, a []float32, lda int, b []float32, ldb int, c []float32, ldc int, scale []float32) bool { + return isZero(C.LAPACKE_strsyl((C.int)(rowMajor), (C.char)(trana), (C.char)(tranb), (C.lapack_int)(isgn), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&c[0]), (C.lapack_int)(ldc), (*C.float)(&scale[0]))) +} + +func Dtrsyl(trana byte, tranb byte, isgn int, m int, n int, a []float64, lda int, b []float64, ldb int, c []float64, ldc int, scale []float64) bool { + return isZero(C.LAPACKE_dtrsyl((C.int)(rowMajor), (C.char)(trana), (C.char)(tranb), (C.lapack_int)(isgn), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&c[0]), (C.lapack_int)(ldc), (*C.double)(&scale[0]))) +} + +func Ctrsyl(trana byte, tranb byte, isgn int, m int, n int, a []complex64, lda int, b []complex64, ldb int, c []complex64, ldc int, scale []float32) bool { + return isZero(C.LAPACKE_ctrsyl((C.int)(rowMajor), (C.char)(trana), (C.char)(tranb), (C.lapack_int)(isgn), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc), (*C.float)(&scale[0]))) +} + +func Ztrsyl(trana byte, tranb byte, isgn int, m int, n int, a []complex128, lda int, b []complex128, ldb int, c []complex128, ldc int, scale []float64) bool { + return isZero(C.LAPACKE_ztrsyl((C.int)(rowMajor), (C.char)(trana), (C.char)(tranb), (C.lapack_int)(isgn), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc), (*C.double)(&scale[0]))) +} + +func Strtri(ul blas.Uplo, d blas.Diag, n int, a []float32, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_strtri((C.int)(rowMajor), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda))) +} + +func Dtrtri(ul blas.Uplo, d blas.Diag, n int, a []float64, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_dtrtri((C.int)(rowMajor), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda))) +} + +func Ctrtri(ul blas.Uplo, d blas.Diag, n int, a []complex64, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ctrtri((C.int)(rowMajor), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda))) +} + +func Ztrtri(ul blas.Uplo, d blas.Diag, n int, a []complex128, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ztrtri((C.int)(rowMajor), (C.char)(ul), (C.char)(d), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda))) +} + +func Strtrs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, a []float32, lda int, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_strtrs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dtrtrs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, a []float64, lda int, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_dtrtrs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Ctrtrs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, a []complex64, lda int, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ctrtrs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Ztrtrs(ul blas.Uplo, trans blas.Transpose, d blas.Diag, n int, nrhs int, a []complex128, lda int, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + switch d { + case blas.Unit: + d = 'U' + case blas.NonUnit: + d = 'N' + default: + panic("lapack: illegal diagonal") + } + return isZero(C.LAPACKE_ztrtrs((C.int)(rowMajor), (C.char)(ul), (C.char)(trans), (C.char)(d), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Strttf(transr blas.Transpose, ul blas.Uplo, n int, a []float32, lda int, arf []float32) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_strttf((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&arf[0]))) +} + +func Dtrttf(transr blas.Transpose, ul blas.Uplo, n int, a []float64, lda int, arf []float64) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dtrttf((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&arf[0]))) +} + +func Ctrttf(transr blas.Transpose, ul blas.Uplo, n int, a []complex64, lda int, arf []complex64) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ctrttf((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&arf[0]))) +} + +func Ztrttf(transr blas.Transpose, ul blas.Uplo, n int, a []complex128, lda int, arf []complex128) bool { + switch transr { + case blas.NoTrans: + transr = 'N' + case blas.Trans: + transr = 'T' + case blas.ConjTrans: + transr = 'C' + default: + panic("lapack: bad trans") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ztrttf((C.int)(rowMajor), (C.char)(transr), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&arf[0]))) +} + +func Strttp(ul blas.Uplo, n int, a []float32, lda int, ap []float32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_strttp((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&ap[0]))) +} + +func Dtrttp(ul blas.Uplo, n int, a []float64, lda int, ap []float64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dtrttp((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&ap[0]))) +} + +func Ctrttp(ul blas.Uplo, n int, a []complex64, lda int, ap []complex64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ctrttp((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&ap[0]))) +} + +func Ztrttp(ul blas.Uplo, n int, a []complex128, lda int, ap []complex128) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ztrttp((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&ap[0]))) +} + +func Stzrzf(m int, n int, a []float32, lda int, tau []float32) bool { + return isZero(C.LAPACKE_stzrzf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&tau[0]))) +} + +func Dtzrzf(m int, n int, a []float64, lda int, tau []float64) bool { + return isZero(C.LAPACKE_dtzrzf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&tau[0]))) +} + +func Ctzrzf(m int, n int, a []complex64, lda int, tau []complex64) bool { + return isZero(C.LAPACKE_ctzrzf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Ztzrzf(m int, n int, a []complex128, lda int, tau []complex128) bool { + return isZero(C.LAPACKE_ztzrzf((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Cungbr(vect byte, m int, n int, k int, a []complex64, lda int, tau []complex64) bool { + return isZero(C.LAPACKE_cungbr((C.int)(rowMajor), (C.char)(vect), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zungbr(vect byte, m int, n int, k int, a []complex128, lda int, tau []complex128) bool { + return isZero(C.LAPACKE_zungbr((C.int)(rowMajor), (C.char)(vect), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Cunghr(n int, ilo int, ihi int, a []complex64, lda int, tau []complex64) bool { + return isZero(C.LAPACKE_cunghr((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zunghr(n int, ilo int, ihi int, a []complex128, lda int, tau []complex128) bool { + return isZero(C.LAPACKE_zunghr((C.int)(rowMajor), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Cunglq(m int, n int, k int, a []complex64, lda int, tau []complex64) bool { + return isZero(C.LAPACKE_cunglq((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zunglq(m int, n int, k int, a []complex128, lda int, tau []complex128) bool { + return isZero(C.LAPACKE_zunglq((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Cungql(m int, n int, k int, a []complex64, lda int, tau []complex64) bool { + return isZero(C.LAPACKE_cungql((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zungql(m int, n int, k int, a []complex128, lda int, tau []complex128) bool { + return isZero(C.LAPACKE_zungql((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Cungqr(m int, n int, k int, a []complex64, lda int, tau []complex64) bool { + return isZero(C.LAPACKE_cungqr((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zungqr(m int, n int, k int, a []complex128, lda int, tau []complex128) bool { + return isZero(C.LAPACKE_zungqr((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Cungrq(m int, n int, k int, a []complex64, lda int, tau []complex64) bool { + return isZero(C.LAPACKE_cungrq((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zungrq(m int, n int, k int, a []complex128, lda int, tau []complex128) bool { + return isZero(C.LAPACKE_zungrq((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Cungtr(ul blas.Uplo, n int, a []complex64, lda int, tau []complex64) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cungtr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]))) +} + +func Zungtr(ul blas.Uplo, n int, a []complex128, lda int, tau []complex128) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zungtr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]))) +} + +func Cunmbr(vect byte, s blas.Side, trans blas.Transpose, m int, n int, k int, a []complex64, lda int, tau []complex64, c []complex64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cunmbr((C.int)(rowMajor), (C.char)(vect), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Zunmbr(vect byte, s blas.Side, trans blas.Transpose, m int, n int, k int, a []complex128, lda int, tau []complex128, c []complex128, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zunmbr((C.int)(rowMajor), (C.char)(vect), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Cunmhr(s blas.Side, trans blas.Transpose, m int, n int, ilo int, ihi int, a []complex64, lda int, tau []complex64, c []complex64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cunmhr((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Zunmhr(s blas.Side, trans blas.Transpose, m int, n int, ilo int, ihi int, a []complex128, lda int, tau []complex128, c []complex128, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zunmhr((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(ilo), (C.lapack_int)(ihi), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Cunmlq(s blas.Side, trans blas.Transpose, m int, n int, k int, a []complex64, lda int, tau []complex64, c []complex64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cunmlq((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Zunmlq(s blas.Side, trans blas.Transpose, m int, n int, k int, a []complex128, lda int, tau []complex128, c []complex128, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zunmlq((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Cunmql(s blas.Side, trans blas.Transpose, m int, n int, k int, a []complex64, lda int, tau []complex64, c []complex64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cunmql((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Zunmql(s blas.Side, trans blas.Transpose, m int, n int, k int, a []complex128, lda int, tau []complex128, c []complex128, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zunmql((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Cunmqr(s blas.Side, trans blas.Transpose, m int, n int, k int, a []complex64, lda int, tau []complex64, c []complex64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cunmqr((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Zunmqr(s blas.Side, trans blas.Transpose, m int, n int, k int, a []complex128, lda int, tau []complex128, c []complex128, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zunmqr((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Cunmrq(s blas.Side, trans blas.Transpose, m int, n int, k int, a []complex64, lda int, tau []complex64, c []complex64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cunmrq((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Zunmrq(s blas.Side, trans blas.Transpose, m int, n int, k int, a []complex128, lda int, tau []complex128, c []complex128, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zunmrq((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Cunmrz(s blas.Side, trans blas.Transpose, m int, n int, k int, l int, a []complex64, lda int, tau []complex64, c []complex64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cunmrz((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Zunmrz(s blas.Side, trans blas.Transpose, m int, n int, k int, l int, a []complex128, lda int, tau []complex128, c []complex128, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zunmrz((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Cunmtr(s blas.Side, ul blas.Uplo, trans blas.Transpose, m int, n int, a []complex64, lda int, tau []complex64, c []complex64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cunmtr((C.int)(rowMajor), (C.char)(s), (C.char)(ul), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&tau[0]), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Zunmtr(s blas.Side, ul blas.Uplo, trans blas.Transpose, m int, n int, a []complex128, lda int, tau []complex128, c []complex128, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zunmtr((C.int)(rowMajor), (C.char)(s), (C.char)(ul), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&tau[0]), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Cupgtr(ul blas.Uplo, n int, ap []complex64, tau []complex64, q []complex64, ldq int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cupgtr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&tau[0]), (*C.lapack_complex_float)(&q[0]), (C.lapack_int)(ldq))) +} + +func Zupgtr(ul blas.Uplo, n int, ap []complex128, tau []complex128, q []complex128, ldq int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zupgtr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&tau[0]), (*C.lapack_complex_double)(&q[0]), (C.lapack_int)(ldq))) +} + +func Cupmtr(s blas.Side, ul blas.Uplo, trans blas.Transpose, m int, n int, ap []complex64, tau []complex64, c []complex64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cupmtr((C.int)(rowMajor), (C.char)(s), (C.char)(ul), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&ap[0]), (*C.lapack_complex_float)(&tau[0]), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Zupmtr(s blas.Side, ul blas.Uplo, trans blas.Transpose, m int, n int, ap []complex128, tau []complex128, c []complex128, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zupmtr((C.int)(rowMajor), (C.char)(s), (C.char)(ul), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&ap[0]), (*C.lapack_complex_double)(&tau[0]), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc))) +} + +func SlapmrWork(forwrd int32, m int, n int, x []float32, ldx int, k []int32) bool { + return isZero(C.LAPACKE_slapmr((C.int)(rowMajor), (C.lapack_logical)(forwrd), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&x[0]), (C.lapack_int)(ldx), (*C.lapack_int)(&k[0]))) +} + +func DlapmrWork(forwrd int32, m int, n int, x []float64, ldx int, k []int32) bool { + return isZero(C.LAPACKE_dlapmr((C.int)(rowMajor), (C.lapack_logical)(forwrd), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&x[0]), (C.lapack_int)(ldx), (*C.lapack_int)(&k[0]))) +} + +func ClapmrWork(forwrd int32, m int, n int, x []complex64, ldx int, k []int32) bool { + return isZero(C.LAPACKE_clapmr((C.int)(rowMajor), (C.lapack_logical)(forwrd), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(ldx), (*C.lapack_int)(&k[0]))) +} + +func ZlapmrWork(forwrd int32, m int, n int, x []complex128, ldx int, k []int32) bool { + return isZero(C.LAPACKE_zlapmr((C.int)(rowMajor), (C.lapack_logical)(forwrd), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(ldx), (*C.lapack_int)(&k[0]))) +} + +func SlartgpWork(f float32, g float32, cs []float32, sn []float32, r []float32) bool { + return isZero(C.LAPACKE_slartgp((C.float)(f), (C.float)(g), (*C.float)(&cs[0]), (*C.float)(&sn[0]), (*C.float)(&r[0]))) +} + +func DlartgpWork(f float64, g float64, cs []float64, sn []float64, r []float64) bool { + return isZero(C.LAPACKE_dlartgp((C.double)(f), (C.double)(g), (*C.double)(&cs[0]), (*C.double)(&sn[0]), (*C.double)(&r[0]))) +} + +func SlartgsWork(x float32, y float32, sigma float32, cs []float32, sn []float32) bool { + return isZero(C.LAPACKE_slartgs((C.float)(x), (C.float)(y), (C.float)(sigma), (*C.float)(&cs[0]), (*C.float)(&sn[0]))) +} + +func DlartgsWork(x float64, y float64, sigma float64, cs []float64, sn []float64) bool { + return isZero(C.LAPACKE_dlartgs((C.double)(x), (C.double)(y), (C.double)(sigma), (*C.double)(&cs[0]), (*C.double)(&sn[0]))) +} + +func Slapy2Work(x float32, y float32) float32 { + return float32(C.LAPACKE_slapy2((C.float)(x), (C.float)(y))) +} + +func Dlapy2Work(x float64, y float64) float64 { + return float64(C.LAPACKE_dlapy2((C.double)(x), (C.double)(y))) +} + +func Slapy3Work(x float32, y float32, z float32) float32 { + return float32(C.LAPACKE_slapy3((C.float)(x), (C.float)(y), (C.float)(z))) +} + +func Dlapy3Work(x float64, y float64, z float64) float64 { + return float64(C.LAPACKE_dlapy3((C.double)(x), (C.double)(y), (C.double)(z))) +} + +func Cbbcsd(jobu1 lapack.Job, jobu2 lapack.Job, jobv1t lapack.Job, jobv2t lapack.Job, trans blas.Transpose, m int, p int, q int, theta []float32, phi []float32, u1 []complex64, ldu1 int, u2 []complex64, ldu2 int, v1t []complex64, ldv1t int, v2t []complex64, ldv2t int, b11d []float32, b11e []float32, b12d []float32, b12e []float32, b21d []float32, b21e []float32, b22d []float32, b22e []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cbbcsd((C.int)(rowMajor), (C.char)(jobu1), (C.char)(jobu2), (C.char)(jobv1t), (C.char)(jobv2t), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(q), (*C.float)(&theta[0]), (*C.float)(&phi[0]), (*C.lapack_complex_float)(&u1[0]), (C.lapack_int)(ldu1), (*C.lapack_complex_float)(&u2[0]), (C.lapack_int)(ldu2), (*C.lapack_complex_float)(&v1t[0]), (C.lapack_int)(ldv1t), (*C.lapack_complex_float)(&v2t[0]), (C.lapack_int)(ldv2t), (*C.float)(&b11d[0]), (*C.float)(&b11e[0]), (*C.float)(&b12d[0]), (*C.float)(&b12e[0]), (*C.float)(&b21d[0]), (*C.float)(&b21e[0]), (*C.float)(&b22d[0]), (*C.float)(&b22e[0]))) +} + +func Cheswapr(ul blas.Uplo, n int, a []complex64, i1 int, i2 int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_cheswapr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(i1), (C.lapack_int)(i2))) +} + +func Chetri2(ul blas.Uplo, n int, a []complex64, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chetri2((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Chetri2x(ul blas.Uplo, n int, a []complex64, lda int, ipiv []int32, nb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chetri2x((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (C.lapack_int)(nb))) +} + +func Chetrs2(ul blas.Uplo, n int, nrhs int, a []complex64, lda int, ipiv []int32, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_chetrs2((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Csyconv(ul blas.Uplo, way byte, n int, a []complex64, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csyconv((C.int)(rowMajor), (C.char)(ul), (C.char)(way), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Csyswapr(ul blas.Uplo, n int, a []complex64, i1 int, i2 int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csyswapr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(i1), (C.lapack_int)(i2))) +} + +func Csytri2(ul blas.Uplo, n int, a []complex64, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csytri2((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Csytri2x(ul blas.Uplo, n int, a []complex64, lda int, ipiv []int32, nb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csytri2x((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (C.lapack_int)(nb))) +} + +func Csytrs2(ul blas.Uplo, n int, nrhs int, a []complex64, lda int, ipiv []int32, b []complex64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csytrs2((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Cunbdb(trans blas.Transpose, signs byte, m int, p int, q int, x11 []complex64, ldx11 int, x12 []complex64, ldx12 int, x21 []complex64, ldx21 int, x22 []complex64, ldx22 int, theta []float32, phi []float32, taup1 []complex64, taup2 []complex64, tauq1 []complex64, tauq2 []complex64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cunbdb((C.int)(rowMajor), (C.char)(trans), (C.char)(signs), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(q), (*C.lapack_complex_float)(&x11[0]), (C.lapack_int)(ldx11), (*C.lapack_complex_float)(&x12[0]), (C.lapack_int)(ldx12), (*C.lapack_complex_float)(&x21[0]), (C.lapack_int)(ldx21), (*C.lapack_complex_float)(&x22[0]), (C.lapack_int)(ldx22), (*C.float)(&theta[0]), (*C.float)(&phi[0]), (*C.lapack_complex_float)(&taup1[0]), (*C.lapack_complex_float)(&taup2[0]), (*C.lapack_complex_float)(&tauq1[0]), (*C.lapack_complex_float)(&tauq2[0]))) +} + +func Cuncsd(jobu1 lapack.Job, jobu2 lapack.Job, jobv1t lapack.Job, jobv2t lapack.Job, trans blas.Transpose, signs byte, m int, p int, q int, x11 []complex64, ldx11 int, x12 []complex64, ldx12 int, x21 []complex64, ldx21 int, x22 []complex64, ldx22 int, theta []float32, u1 []complex64, ldu1 int, u2 []complex64, ldu2 int, v1t []complex64, ldv1t int, v2t []complex64, ldv2t int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cuncsd((C.int)(rowMajor), (C.char)(jobu1), (C.char)(jobu2), (C.char)(jobv1t), (C.char)(jobv2t), (C.char)(trans), (C.char)(signs), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(q), (*C.lapack_complex_float)(&x11[0]), (C.lapack_int)(ldx11), (*C.lapack_complex_float)(&x12[0]), (C.lapack_int)(ldx12), (*C.lapack_complex_float)(&x21[0]), (C.lapack_int)(ldx21), (*C.lapack_complex_float)(&x22[0]), (C.lapack_int)(ldx22), (*C.float)(&theta[0]), (*C.lapack_complex_float)(&u1[0]), (C.lapack_int)(ldu1), (*C.lapack_complex_float)(&u2[0]), (C.lapack_int)(ldu2), (*C.lapack_complex_float)(&v1t[0]), (C.lapack_int)(ldv1t), (*C.lapack_complex_float)(&v2t[0]), (C.lapack_int)(ldv2t))) +} + +func Dbbcsd(jobu1 lapack.Job, jobu2 lapack.Job, jobv1t lapack.Job, jobv2t lapack.Job, trans blas.Transpose, m int, p int, q int, theta []float64, phi []float64, u1 []float64, ldu1 int, u2 []float64, ldu2 int, v1t []float64, ldv1t int, v2t []float64, ldv2t int, b11d []float64, b11e []float64, b12d []float64, b12e []float64, b21d []float64, b21e []float64, b22d []float64, b22e []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dbbcsd((C.int)(rowMajor), (C.char)(jobu1), (C.char)(jobu2), (C.char)(jobv1t), (C.char)(jobv2t), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(q), (*C.double)(&theta[0]), (*C.double)(&phi[0]), (*C.double)(&u1[0]), (C.lapack_int)(ldu1), (*C.double)(&u2[0]), (C.lapack_int)(ldu2), (*C.double)(&v1t[0]), (C.lapack_int)(ldv1t), (*C.double)(&v2t[0]), (C.lapack_int)(ldv2t), (*C.double)(&b11d[0]), (*C.double)(&b11e[0]), (*C.double)(&b12d[0]), (*C.double)(&b12e[0]), (*C.double)(&b21d[0]), (*C.double)(&b21e[0]), (*C.double)(&b22d[0]), (*C.double)(&b22e[0]))) +} + +func Dorbdb(trans blas.Transpose, signs byte, m int, p int, q int, x11 []float64, ldx11 int, x12 []float64, ldx12 int, x21 []float64, ldx21 int, x22 []float64, ldx22 int, theta []float64, phi []float64, taup1 []float64, taup2 []float64, tauq1 []float64, tauq2 []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dorbdb((C.int)(rowMajor), (C.char)(trans), (C.char)(signs), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(q), (*C.double)(&x11[0]), (C.lapack_int)(ldx11), (*C.double)(&x12[0]), (C.lapack_int)(ldx12), (*C.double)(&x21[0]), (C.lapack_int)(ldx21), (*C.double)(&x22[0]), (C.lapack_int)(ldx22), (*C.double)(&theta[0]), (*C.double)(&phi[0]), (*C.double)(&taup1[0]), (*C.double)(&taup2[0]), (*C.double)(&tauq1[0]), (*C.double)(&tauq2[0]))) +} + +func Dorcsd(jobu1 lapack.Job, jobu2 lapack.Job, jobv1t lapack.Job, jobv2t lapack.Job, trans blas.Transpose, signs byte, m int, p int, q int, x11 []float64, ldx11 int, x12 []float64, ldx12 int, x21 []float64, ldx21 int, x22 []float64, ldx22 int, theta []float64, u1 []float64, ldu1 int, u2 []float64, ldu2 int, v1t []float64, ldv1t int, v2t []float64, ldv2t int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dorcsd((C.int)(rowMajor), (C.char)(jobu1), (C.char)(jobu2), (C.char)(jobv1t), (C.char)(jobv2t), (C.char)(trans), (C.char)(signs), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(q), (*C.double)(&x11[0]), (C.lapack_int)(ldx11), (*C.double)(&x12[0]), (C.lapack_int)(ldx12), (*C.double)(&x21[0]), (C.lapack_int)(ldx21), (*C.double)(&x22[0]), (C.lapack_int)(ldx22), (*C.double)(&theta[0]), (*C.double)(&u1[0]), (C.lapack_int)(ldu1), (*C.double)(&u2[0]), (C.lapack_int)(ldu2), (*C.double)(&v1t[0]), (C.lapack_int)(ldv1t), (*C.double)(&v2t[0]), (C.lapack_int)(ldv2t))) +} + +func Dsyconv(ul blas.Uplo, way byte, n int, a []float64, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsyconv((C.int)(rowMajor), (C.char)(ul), (C.char)(way), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Dsyswapr(ul blas.Uplo, n int, a []float64, i1 int, i2 int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsyswapr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(i1), (C.lapack_int)(i2))) +} + +func Dsytri2(ul blas.Uplo, n int, a []float64, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsytri2((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Dsytri2x(ul blas.Uplo, n int, a []float64, lda int, ipiv []int32, nb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsytri2x((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (C.lapack_int)(nb))) +} + +func Dsytrs2(ul blas.Uplo, n int, nrhs int, a []float64, lda int, ipiv []int32, b []float64, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_dsytrs2((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Sbbcsd(jobu1 lapack.Job, jobu2 lapack.Job, jobv1t lapack.Job, jobv2t lapack.Job, trans blas.Transpose, m int, p int, q int, theta []float32, phi []float32, u1 []float32, ldu1 int, u2 []float32, ldu2 int, v1t []float32, ldv1t int, v2t []float32, ldv2t int, b11d []float32, b11e []float32, b12d []float32, b12e []float32, b21d []float32, b21e []float32, b22d []float32, b22e []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sbbcsd((C.int)(rowMajor), (C.char)(jobu1), (C.char)(jobu2), (C.char)(jobv1t), (C.char)(jobv2t), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(q), (*C.float)(&theta[0]), (*C.float)(&phi[0]), (*C.float)(&u1[0]), (C.lapack_int)(ldu1), (*C.float)(&u2[0]), (C.lapack_int)(ldu2), (*C.float)(&v1t[0]), (C.lapack_int)(ldv1t), (*C.float)(&v2t[0]), (C.lapack_int)(ldv2t), (*C.float)(&b11d[0]), (*C.float)(&b11e[0]), (*C.float)(&b12d[0]), (*C.float)(&b12e[0]), (*C.float)(&b21d[0]), (*C.float)(&b21e[0]), (*C.float)(&b22d[0]), (*C.float)(&b22e[0]))) +} + +func Sorbdb(trans blas.Transpose, signs byte, m int, p int, q int, x11 []float32, ldx11 int, x12 []float32, ldx12 int, x21 []float32, ldx21 int, x22 []float32, ldx22 int, theta []float32, phi []float32, taup1 []float32, taup2 []float32, tauq1 []float32, tauq2 []float32) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sorbdb((C.int)(rowMajor), (C.char)(trans), (C.char)(signs), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(q), (*C.float)(&x11[0]), (C.lapack_int)(ldx11), (*C.float)(&x12[0]), (C.lapack_int)(ldx12), (*C.float)(&x21[0]), (C.lapack_int)(ldx21), (*C.float)(&x22[0]), (C.lapack_int)(ldx22), (*C.float)(&theta[0]), (*C.float)(&phi[0]), (*C.float)(&taup1[0]), (*C.float)(&taup2[0]), (*C.float)(&tauq1[0]), (*C.float)(&tauq2[0]))) +} + +func Sorcsd(jobu1 lapack.Job, jobu2 lapack.Job, jobv1t lapack.Job, jobv2t lapack.Job, trans blas.Transpose, signs byte, m int, p int, q int, x11 []float32, ldx11 int, x12 []float32, ldx12 int, x21 []float32, ldx21 int, x22 []float32, ldx22 int, theta []float32, u1 []float32, ldu1 int, u2 []float32, ldu2 int, v1t []float32, ldv1t int, v2t []float32, ldv2t int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sorcsd((C.int)(rowMajor), (C.char)(jobu1), (C.char)(jobu2), (C.char)(jobv1t), (C.char)(jobv2t), (C.char)(trans), (C.char)(signs), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(q), (*C.float)(&x11[0]), (C.lapack_int)(ldx11), (*C.float)(&x12[0]), (C.lapack_int)(ldx12), (*C.float)(&x21[0]), (C.lapack_int)(ldx21), (*C.float)(&x22[0]), (C.lapack_int)(ldx22), (*C.float)(&theta[0]), (*C.float)(&u1[0]), (C.lapack_int)(ldu1), (*C.float)(&u2[0]), (C.lapack_int)(ldu2), (*C.float)(&v1t[0]), (C.lapack_int)(ldv1t), (*C.float)(&v2t[0]), (C.lapack_int)(ldv2t))) +} + +func Ssyconv(ul blas.Uplo, way byte, n int, a []float32, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssyconv((C.int)(rowMajor), (C.char)(ul), (C.char)(way), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Ssyswapr(ul blas.Uplo, n int, a []float32, i1 int, i2 int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssyswapr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(i1), (C.lapack_int)(i2))) +} + +func Ssytri2(ul blas.Uplo, n int, a []float32, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssytri2((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Ssytri2x(ul blas.Uplo, n int, a []float32, lda int, ipiv []int32, nb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssytri2x((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (C.lapack_int)(nb))) +} + +func Ssytrs2(ul blas.Uplo, n int, nrhs int, a []float32, lda int, ipiv []int32, b []float32, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_ssytrs2((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zbbcsd(jobu1 lapack.Job, jobu2 lapack.Job, jobv1t lapack.Job, jobv2t lapack.Job, trans blas.Transpose, m int, p int, q int, theta []float64, phi []float64, u1 []complex128, ldu1 int, u2 []complex128, ldu2 int, v1t []complex128, ldv1t int, v2t []complex128, ldv2t int, b11d []float64, b11e []float64, b12d []float64, b12e []float64, b21d []float64, b21e []float64, b22d []float64, b22e []float64) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zbbcsd((C.int)(rowMajor), (C.char)(jobu1), (C.char)(jobu2), (C.char)(jobv1t), (C.char)(jobv2t), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(q), (*C.double)(&theta[0]), (*C.double)(&phi[0]), (*C.lapack_complex_double)(&u1[0]), (C.lapack_int)(ldu1), (*C.lapack_complex_double)(&u2[0]), (C.lapack_int)(ldu2), (*C.lapack_complex_double)(&v1t[0]), (C.lapack_int)(ldv1t), (*C.lapack_complex_double)(&v2t[0]), (C.lapack_int)(ldv2t), (*C.double)(&b11d[0]), (*C.double)(&b11e[0]), (*C.double)(&b12d[0]), (*C.double)(&b12e[0]), (*C.double)(&b21d[0]), (*C.double)(&b21e[0]), (*C.double)(&b22d[0]), (*C.double)(&b22e[0]))) +} + +func Zheswapr(ul blas.Uplo, n int, a []complex128, i1 int, i2 int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zheswapr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(i1), (C.lapack_int)(i2))) +} + +func Zhetri2(ul blas.Uplo, n int, a []complex128, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhetri2((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Zhetri2x(ul blas.Uplo, n int, a []complex128, lda int, ipiv []int32, nb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhetri2x((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (C.lapack_int)(nb))) +} + +func Zhetrs2(ul blas.Uplo, n int, nrhs int, a []complex128, lda int, ipiv []int32, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zhetrs2((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zsyconv(ul blas.Uplo, way byte, n int, a []complex128, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsyconv((C.int)(rowMajor), (C.char)(ul), (C.char)(way), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Zsyswapr(ul blas.Uplo, n int, a []complex128, i1 int, i2 int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsyswapr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(i1), (C.lapack_int)(i2))) +} + +func Zsytri2(ul blas.Uplo, n int, a []complex128, lda int, ipiv []int32) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsytri2((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]))) +} + +func Zsytri2x(ul blas.Uplo, n int, a []complex128, lda int, ipiv []int32, nb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsytri2x((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (C.lapack_int)(nb))) +} + +func Zsytrs2(ul blas.Uplo, n int, nrhs int, a []complex128, lda int, ipiv []int32, b []complex128, ldb int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsytrs2((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_int)(nrhs), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_int)(&ipiv[0]), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Zunbdb(trans blas.Transpose, signs byte, m int, p int, q int, x11 []complex128, ldx11 int, x12 []complex128, ldx12 int, x21 []complex128, ldx21 int, x22 []complex128, ldx22 int, theta []float64, phi []float64, taup1 []complex128, taup2 []complex128, tauq1 []complex128, tauq2 []complex128) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zunbdb((C.int)(rowMajor), (C.char)(trans), (C.char)(signs), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(q), (*C.lapack_complex_double)(&x11[0]), (C.lapack_int)(ldx11), (*C.lapack_complex_double)(&x12[0]), (C.lapack_int)(ldx12), (*C.lapack_complex_double)(&x21[0]), (C.lapack_int)(ldx21), (*C.lapack_complex_double)(&x22[0]), (C.lapack_int)(ldx22), (*C.double)(&theta[0]), (*C.double)(&phi[0]), (*C.lapack_complex_double)(&taup1[0]), (*C.lapack_complex_double)(&taup2[0]), (*C.lapack_complex_double)(&tauq1[0]), (*C.lapack_complex_double)(&tauq2[0]))) +} + +func Zuncsd(jobu1 lapack.Job, jobu2 lapack.Job, jobv1t lapack.Job, jobv2t lapack.Job, trans blas.Transpose, signs byte, m int, p int, q int, x11 []complex128, ldx11 int, x12 []complex128, ldx12 int, x21 []complex128, ldx21 int, x22 []complex128, ldx22 int, theta []float64, u1 []complex128, ldu1 int, u2 []complex128, ldu2 int, v1t []complex128, ldv1t int, v2t []complex128, ldv2t int) bool { + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zuncsd((C.int)(rowMajor), (C.char)(jobu1), (C.char)(jobu2), (C.char)(jobv1t), (C.char)(jobv2t), (C.char)(trans), (C.char)(signs), (C.lapack_int)(m), (C.lapack_int)(p), (C.lapack_int)(q), (*C.lapack_complex_double)(&x11[0]), (C.lapack_int)(ldx11), (*C.lapack_complex_double)(&x12[0]), (C.lapack_int)(ldx12), (*C.lapack_complex_double)(&x21[0]), (C.lapack_int)(ldx21), (*C.lapack_complex_double)(&x22[0]), (C.lapack_int)(ldx22), (*C.double)(&theta[0]), (*C.lapack_complex_double)(&u1[0]), (C.lapack_int)(ldu1), (*C.lapack_complex_double)(&u2[0]), (C.lapack_int)(ldu2), (*C.lapack_complex_double)(&v1t[0]), (C.lapack_int)(ldv1t), (*C.lapack_complex_double)(&v2t[0]), (C.lapack_int)(ldv2t))) +} + +func Sgemqrt(s blas.Side, trans blas.Transpose, m int, n int, k int, nb int, v []float32, ldv int, t []float32, ldt int, c []float32, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_sgemqrt((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(nb), (*C.float)(&v[0]), (C.lapack_int)(ldv), (*C.float)(&t[0]), (C.lapack_int)(ldt), (*C.float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Dgemqrt(s blas.Side, trans blas.Transpose, m int, n int, k int, nb int, v []float64, ldv int, t []float64, ldt int, c []float64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dgemqrt((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(nb), (*C.double)(&v[0]), (C.lapack_int)(ldv), (*C.double)(&t[0]), (C.lapack_int)(ldt), (*C.double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Cgemqrt(s blas.Side, trans blas.Transpose, m int, n int, k int, nb int, v []complex64, ldv int, t []complex64, ldt int, c []complex64, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_cgemqrt((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(nb), (*C.lapack_complex_float)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_float)(&t[0]), (C.lapack_int)(ldt), (*C.lapack_complex_float)(&c[0]), (C.lapack_int)(ldc))) +} + +func Zgemqrt(s blas.Side, trans blas.Transpose, m int, n int, k int, nb int, v []complex128, ldv int, t []complex128, ldt int, c []complex128, ldc int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_zgemqrt((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(nb), (*C.lapack_complex_double)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_double)(&t[0]), (C.lapack_int)(ldt), (*C.lapack_complex_double)(&c[0]), (C.lapack_int)(ldc))) +} + +func Sgeqrt(m int, n int, nb int, a []float32, lda int, t []float32, ldt int) bool { + return isZero(C.LAPACKE_sgeqrt((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nb), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&t[0]), (C.lapack_int)(ldt))) +} + +func Dgeqrt(m int, n int, nb int, a []float64, lda int, t []float64, ldt int) bool { + return isZero(C.LAPACKE_dgeqrt((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nb), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&t[0]), (C.lapack_int)(ldt))) +} + +func Cgeqrt(m int, n int, nb int, a []complex64, lda int, t []complex64, ldt int) bool { + return isZero(C.LAPACKE_cgeqrt((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nb), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&t[0]), (C.lapack_int)(ldt))) +} + +func Zgeqrt(m int, n int, nb int, a []complex128, lda int, t []complex128, ldt int) bool { + return isZero(C.LAPACKE_zgeqrt((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(nb), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&t[0]), (C.lapack_int)(ldt))) +} + +func Sgeqrt2(m int, n int, a []float32, lda int, t []float32, ldt int) bool { + return isZero(C.LAPACKE_sgeqrt2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&t[0]), (C.lapack_int)(ldt))) +} + +func Dgeqrt2(m int, n int, a []float64, lda int, t []float64, ldt int) bool { + return isZero(C.LAPACKE_dgeqrt2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&t[0]), (C.lapack_int)(ldt))) +} + +func Cgeqrt2(m int, n int, a []complex64, lda int, t []complex64, ldt int) bool { + return isZero(C.LAPACKE_cgeqrt2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&t[0]), (C.lapack_int)(ldt))) +} + +func Zgeqrt2(m int, n int, a []complex128, lda int, t []complex128, ldt int) bool { + return isZero(C.LAPACKE_zgeqrt2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&t[0]), (C.lapack_int)(ldt))) +} + +func Sgeqrt3(m int, n int, a []float32, lda int, t []float32, ldt int) bool { + return isZero(C.LAPACKE_sgeqrt3((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&t[0]), (C.lapack_int)(ldt))) +} + +func Dgeqrt3(m int, n int, a []float64, lda int, t []float64, ldt int) bool { + return isZero(C.LAPACKE_dgeqrt3((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&t[0]), (C.lapack_int)(ldt))) +} + +func Cgeqrt3(m int, n int, a []complex64, lda int, t []complex64, ldt int) bool { + return isZero(C.LAPACKE_cgeqrt3((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&t[0]), (C.lapack_int)(ldt))) +} + +func Zgeqrt3(m int, n int, a []complex128, lda int, t []complex128, ldt int) bool { + return isZero(C.LAPACKE_zgeqrt3((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&t[0]), (C.lapack_int)(ldt))) +} + +func Stpmqrt(s blas.Side, trans blas.Transpose, m int, n int, k int, l int, nb int, v []float32, ldv int, t []float32, ldt int, a []float32, lda int, b []float32, ldb int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_stpmqrt((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (C.lapack_int)(nb), (*C.float)(&v[0]), (C.lapack_int)(ldv), (*C.float)(&t[0]), (C.lapack_int)(ldt), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dtpmqrt(s blas.Side, trans blas.Transpose, m int, n int, k int, l int, nb int, v []float64, ldv int, t []float64, ldt int, a []float64, lda int, b []float64, ldb int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dtpmqrt((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (C.lapack_int)(nb), (*C.double)(&v[0]), (C.lapack_int)(ldv), (*C.double)(&t[0]), (C.lapack_int)(ldt), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Ctpmqrt(s blas.Side, trans blas.Transpose, m int, n int, k int, l int, nb int, v []complex64, ldv int, t []complex64, ldt int, a []complex64, lda int, b []complex64, ldb int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_ctpmqrt((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (C.lapack_int)(nb), (*C.lapack_complex_float)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_float)(&t[0]), (C.lapack_int)(ldt), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Ztpmqrt(s blas.Side, trans blas.Transpose, m int, n int, k int, l int, nb int, v []complex128, ldv int, t []complex128, ldt int, a []complex128, lda int, b []complex128, ldb int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_ztpmqrt((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (C.lapack_int)(nb), (*C.lapack_complex_double)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_double)(&t[0]), (C.lapack_int)(ldt), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dtpqrt(m int, n int, l int, nb int, a []float64, lda int, b []float64, ldb int, t []float64, ldt int) bool { + return isZero(C.LAPACKE_dtpqrt((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(l), (C.lapack_int)(nb), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&t[0]), (C.lapack_int)(ldt))) +} + +func Ctpqrt(m int, n int, l int, nb int, a []complex64, lda int, b []complex64, ldb int, t []complex64, ldt int) bool { + return isZero(C.LAPACKE_ctpqrt((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(l), (C.lapack_int)(nb), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&t[0]), (C.lapack_int)(ldt))) +} + +func Ztpqrt(m int, n int, l int, nb int, a []complex128, lda int, b []complex128, ldb int, t []complex128, ldt int) bool { + return isZero(C.LAPACKE_ztpqrt((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(l), (C.lapack_int)(nb), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&t[0]), (C.lapack_int)(ldt))) +} + +func Stpqrt2(m int, n int, l int, a []float32, lda int, b []float32, ldb int, t []float32, ldt int) bool { + return isZero(C.LAPACKE_stpqrt2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(l), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb), (*C.float)(&t[0]), (C.lapack_int)(ldt))) +} + +func Dtpqrt2(m int, n int, l int, a []float64, lda int, b []float64, ldb int, t []float64, ldt int) bool { + return isZero(C.LAPACKE_dtpqrt2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(l), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb), (*C.double)(&t[0]), (C.lapack_int)(ldt))) +} + +func Ctpqrt2(m int, n int, l int, a []complex64, lda int, b []complex64, ldb int, t []complex64, ldt int) bool { + return isZero(C.LAPACKE_ctpqrt2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(l), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_float)(&t[0]), (C.lapack_int)(ldt))) +} + +func Ztpqrt2(m int, n int, l int, a []complex128, lda int, b []complex128, ldb int, t []complex128, ldt int) bool { + return isZero(C.LAPACKE_ztpqrt2((C.int)(rowMajor), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(l), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb), (*C.lapack_complex_double)(&t[0]), (C.lapack_int)(ldt))) +} + +func Stprfb(s blas.Side, trans blas.Transpose, direct byte, storev byte, m int, n int, k int, l int, v []float32, ldv int, t []float32, ldt int, a []float32, lda int, b []float32, ldb int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_stprfb((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.char)(direct), (C.char)(storev), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (*C.float)(&v[0]), (C.lapack_int)(ldv), (*C.float)(&t[0]), (C.lapack_int)(ldt), (*C.float)(&a[0]), (C.lapack_int)(lda), (*C.float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Dtprfb(s blas.Side, trans blas.Transpose, direct byte, storev byte, m int, n int, k int, l int, v []float64, ldv int, t []float64, ldt int, a []float64, lda int, b []float64, ldb int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_dtprfb((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.char)(direct), (C.char)(storev), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (*C.double)(&v[0]), (C.lapack_int)(ldv), (*C.double)(&t[0]), (C.lapack_int)(ldt), (*C.double)(&a[0]), (C.lapack_int)(lda), (*C.double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Ctprfb(s blas.Side, trans blas.Transpose, direct byte, storev byte, m int, n int, k int, l int, v []complex64, ldv int, t []complex64, ldt int, a []complex64, lda int, b []complex64, ldb int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_ctprfb((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.char)(direct), (C.char)(storev), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (*C.lapack_complex_float)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_float)(&t[0]), (C.lapack_int)(ldt), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_float)(&b[0]), (C.lapack_int)(ldb))) +} + +func Ztprfb(s blas.Side, trans blas.Transpose, direct byte, storev byte, m int, n int, k int, l int, v []complex128, ldv int, t []complex128, ldt int, a []complex128, lda int, b []complex128, ldb int) bool { + switch s { + case blas.Left: + s = 'L' + case blas.Right: + s = 'R' + default: + panic("lapack: bad side") + } + switch trans { + case blas.NoTrans: + trans = 'N' + case blas.Trans: + trans = 'T' + case blas.ConjTrans: + trans = 'C' + default: + panic("lapack: bad trans") + } + return isZero(C.LAPACKE_ztprfb((C.int)(rowMajor), (C.char)(s), (C.char)(trans), (C.char)(direct), (C.char)(storev), (C.lapack_int)(m), (C.lapack_int)(n), (C.lapack_int)(k), (C.lapack_int)(l), (*C.lapack_complex_double)(&v[0]), (C.lapack_int)(ldv), (*C.lapack_complex_double)(&t[0]), (C.lapack_int)(ldt), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda), (*C.lapack_complex_double)(&b[0]), (C.lapack_int)(ldb))) +} + +func Csyr(ul blas.Uplo, n int, alpha complex64, x []complex64, incx int, a []complex64, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_csyr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_complex_float)(alpha), (*C.lapack_complex_float)(&x[0]), (C.lapack_int)(incx), (*C.lapack_complex_float)(&a[0]), (C.lapack_int)(lda))) +} + +func Zsyr(ul blas.Uplo, n int, alpha complex128, x []complex128, incx int, a []complex128, lda int) bool { + switch ul { + case blas.Upper: + ul = 'U' + case blas.Lower: + ul = 'L' + default: + panic("lapack: illegal triangle") + } + return isZero(C.LAPACKE_zsyr((C.int)(rowMajor), (C.char)(ul), (C.lapack_int)(n), (C.lapack_complex_double)(alpha), (*C.lapack_complex_double)(&x[0]), (C.lapack_int)(incx), (*C.lapack_complex_double)(&a[0]), (C.lapack_int)(lda))) +} diff --git a/cgo/genLapack.pl b/cgo/clapack/genLapack.pl similarity index 80% rename from cgo/genLapack.pl rename to cgo/clapack/genLapack.pl index 07de5ef..33c55e7 100644 --- a/cgo/genLapack.pl +++ b/cgo/clapack/genLapack.pl @@ -21,7 +21,7 @@ } open(my $clapack, "<", $clapackHeader) or die; -open(my $golapack, ">", "lapack.go") or die; +open(my $golapack, ">", "clapack.go") or die; my %done; @@ -32,11 +32,18 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// Package clapack provides bindings to a C LAPACK library. package clapack /* #cgo CFLAGS: -g -O2 -#cgo LDFLAGS: ${lib} +EOH + +if ($lib) { + print $golapack "#cgo LDFLAGS: ${lib}\n" +} + +printf $golapack <<"EOH"; #include "${clapackHeader}" */ import "C" @@ -47,8 +54,6 @@ package clapack "unsafe" ) -type Lapack struct{} - // Type order is used to specify the matrix storage format. We still interact with // an API that allows client calls to specify order, so this is here to document that fact. type order int @@ -58,11 +63,6 @@ package clapack colMajor ) -func init() { - _ = lapack.Complex128(Lapack{}) - _ = lapack.Float64(Lapack{}) -} - func isZero(ret C.int) bool { return ret == 0 } EOH @@ -179,23 +179,16 @@ sub processProto { if ($params eq "") { return } - print $golapack "func (Lapack) ".$gofunc."(".$params.") ".$GoRetType."{\n"; + print $golapack "func ".$gofunc."(".$params.") ".$GoRetType."{\n"; print $golapack "\t"; if ($ret ne 'void') { - print $golapack "\n".$bp."\n"."return ".$GoRet."("; + print $golapack $bp."return ".$GoRet."("; } print $golapack "C.LAPACKE_$func(".processParamToC($func, $paramList).")"; if ($ret ne 'void') { print $golapack ")"; } - print $golapack "\n}\n"; -} - -sub Gofunc { - my $fnName = shift; - my ($pack, $func, $tail) = split '_', $fnName; - return ucfirst $func . ucfirst $tail if $tail; - return ucfirst $func; + print $golapack "\n}\n\n"; } sub processParamToGo { @@ -213,48 +206,69 @@ sub processParamToGo { }; $var =~ /trans/ && do { my $bp = << "EOH"; -var $var C.char -if go$var == blas.NoTrans{ $var = 'n' } -if go$var == blas.Trans{ $var = 't' } -if go$var == blas.ConjTrans{ $var = 'c' } +switch $var { +case blas.NoTrans: +$var = 'N' +case blas.Trans: +$var = 'T' +case blas.ConjTrans: +$var = 'C' +default: +panic("lapack: bad trans") +} EOH push @boilerplate, $bp; - push @processed, "go".$var." blas.Transpose"; next; + push @processed, $var." blas.Transpose"; next; }; $var eq "uplo" && do { $var = "ul"; my $bp = << "EOH"; -var $var C.char -if go$var == blas.Upper{ $var = 'u' } -if go$var == blas.Lower{ $var = 'l' } +switch $var { +case blas.Upper: +$var = 'U' +case blas.Lower: +$var = 'L' +default: +panic("lapack: illegal triangle") +} EOH push @boilerplate, $bp; - push @processed, "go".$var." blas.Uplo"; next; + push @processed, $var." blas.Uplo"; next; }; $var eq "diag" && do { $var = "d"; my $bp = << "EOH"; -var $var C.char -if go$var == blas.Unit{ $var = 'u' } -if go$var == blas.NonUnit{ $var = 'n' } +switch $var { +case blas.Unit: +$var = 'U' +case blas.NonUnit: +$var = 'N' +default: +panic("lapack: illegal diagonal") +} EOH push @boilerplate, $bp; - push @processed, "go".$var." blas.Diag"; next; + push @processed, $var." blas.Diag"; next; }; $var eq "side" && do { $var = "s"; my $bp = << "EOH"; -var $var C.char -if go$var == blas.Left{ $var = 'l' } -if go$var == blas.Right{ $var = 'r' } +switch $var { +case blas.Left: +$var = 'L' +case blas.Right: +$var = 'R' +default: +panic("lapack: bad side") +} EOH push @boilerplate, $bp; - push @processed, "go".$var." blas.Side"; next; + push @processed, $var." blas.Side"; next; }; - $var eq "compq" && do { + $var =~ /^comp./ && do { push @processed, $var." lapack.CompSV"; next; }; - $var =~ /job+/ && do { + $var =~ /job/ && do { push @processed, $var." lapack.Job"; next; }; $var eq "select" && do { @@ -270,25 +284,12 @@ sub processParamToGo { my $goType = $typeConv{$type}; - if (substr($type,-1) eq "*") { - my $base = $typeConv{$type}; - $base =~ s/\[\]//; - my $bp = << "EOH"; -var $var *$base -if len(go$var) > 0 { - $var = &go$var [0] -} -EOH - push @boilerplate, $bp; - $var = "go".$var; - } - if (not $goType) { die "missed Go parameters from '$func', '$type', '$param'"; } push @processed, $var." ".$goType; next; } - return ((join ", ", @processed), (join "\n", @boilerplate)); + return ((join ", ", @processed), (join "", @boilerplate)); } sub processParamToC { @@ -326,9 +327,9 @@ sub processParamToC { chop $type; if ($type eq "char") { - push @processed, "(*C.".$type.")(unsafe.Pointer(".$var."))"; next; + push @processed, "(*C.".$type.")(unsafe.Pointer(&".$var."[0]))"; next; } else { - push @processed, "(*C.".$type.")(".$var.")"; next; + push @processed, "(*C.".$type.")(&".$var."[0])"; next; } }else{ push @processed, "(C.".$type.")(".$var.")"; next; diff --git a/cgo/lapacke.h b/cgo/clapack/lapacke.h similarity index 100% rename from cgo/lapacke.h rename to cgo/clapack/lapacke.h diff --git a/cgo/lapacke_config.h b/cgo/clapack/lapacke_config.h similarity index 100% rename from cgo/lapacke_config.h rename to cgo/clapack/lapacke_config.h diff --git a/cgo/lapacke_mangling.h b/cgo/clapack/lapacke_mangling.h similarity index 100% rename from cgo/lapacke_mangling.h rename to cgo/clapack/lapacke_mangling.h diff --git a/cgo/lapacke_utils.h b/cgo/clapack/lapacke_utils.h similarity index 100% rename from cgo/lapacke_utils.h rename to cgo/clapack/lapacke_utils.h diff --git a/cgo/lapack.go b/cgo/lapack.go new file mode 100644 index 0000000..0a86d05 --- /dev/null +++ b/cgo/lapack.go @@ -0,0 +1,52 @@ +// Copyright ©2015 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 cgo provides an interface to bindings for a C LAPACK library. +package cgo + +import ( + "github.com/gonum/blas" + "github.com/gonum/lapack" + "github.com/gonum/lapack/cgo/clapack" +) + +// Copied from lapack/native. Keep in sync. +const ( + badDirect = "lapack: bad direct" + badLdA = "lapack: index of a out of range" + badSide = "lapack: bad side" + badStore = "lapack: bad store" + badTau = "lapack: tau has insufficient length" + badTrans = "lapack: bad trans" + badUplo = "lapack: illegal triangle" + badWork = "lapack: insufficient working memory" + badWorkStride = "lapack: insufficient working array stride" + negDimension = "lapack: negative matrix dimension" + nLT0 = "lapack: n < 0" + shortWork = "lapack: working array shorter than declared" +) + +// Implementation is the cgo-based C implementation of LAPACK routines. +type Implementation struct{} + +var _ lapack.Float64 = Implementation{} + +// Dpotrf computes the cholesky decomposition of the symmetric positive definite +// matrix a. If ul == blas.Upper, then a is stored as an upper-triangular matrix, +// and a = U U^T is stored in place into a. If ul == blas.Lower, then a = L L^T +// is computed and stored in-place into a. If a is not positive definite, false +// is returned. This is the blocked version of the algorithm. +func (impl Implementation) Dpotrf(ul blas.Uplo, n int, a []float64, lda int) (ok bool) { + // ul is checked in clapack.Dpotrf. + if n < 0 { + panic(nLT0) + } + if lda < n { + panic(badLdA) + } + if n == 0 { + return true + } + return clapack.Dpotrf(ul, n, a, lda) +} diff --git a/cgo/lapack_test.go b/cgo/lapack_test.go new file mode 100644 index 0000000..70212fd --- /dev/null +++ b/cgo/lapack_test.go @@ -0,0 +1,17 @@ +// Copyright ©2015 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 cgo + +import ( + "testing" + + "github.com/gonum/lapack/testlapack" +) + +var impl = Implementation{} + +func TestDpotrf(t *testing.T) { + testlapack.DpotrfTest(t, impl) +}