OSDN Git Service

Merge pull request #201 from Bytom/v0.1
[bytom/vapor.git] / vendor / gonum.org / v1 / gonum / mat / errors.go
diff --git a/vendor/gonum.org/v1/gonum/mat/errors.go b/vendor/gonum.org/v1/gonum/mat/errors.go
deleted file mode 100644 (file)
index 99e2b88..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-// Copyright ©2013 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 mat
-
-import (
-       "fmt"
-       "runtime"
-
-       "gonum.org/v1/gonum/lapack"
-)
-
-// Condition is the condition number of a matrix. The condition
-// number is defined as |A| * |A^-1|.
-//
-// One important use of Condition is during linear solve routines (finding x such
-// that A * x = b). The condition number of A indicates the accuracy of
-// the computed solution. A Condition error will be returned if the condition
-// number of A is sufficiently large. If A is exactly singular to working precision,
-// Condition == ∞, and the solve algorithm may have completed early. If Condition
-// is large and finite the solve algorithm will be performed, but the computed
-// solution may be innacurate. Due to the nature of finite precision arithmetic,
-// the value of Condition is only an approximate test of singularity.
-type Condition float64
-
-func (c Condition) Error() string {
-       return fmt.Sprintf("matrix singular or near-singular with condition number %.4e", c)
-}
-
-// ConditionTolerance is the tolerance limit of the condition number. If the
-// condition number is above this value, the matrix is considered singular.
-const ConditionTolerance = 1e16
-
-const (
-       // CondNorm is the matrix norm used for computing the condition number by routines
-       // in the matrix packages.
-       CondNorm = lapack.MaxRowSum
-
-       // CondNormTrans is the norm used to compute on A^T to get the same result as
-       // computing CondNorm on A.
-       CondNormTrans = lapack.MaxColumnSum
-)
-
-const stackTraceBufferSize = 1 << 20
-
-// Maybe will recover a panic with a type mat.Error from fn, and return this error
-// as the Err field of an ErrorStack. The stack trace for the panicking function will be
-// recovered and placed in the StackTrace field. Any other error is re-panicked.
-func Maybe(fn func()) (err error) {
-       defer func() {
-               if r := recover(); r != nil {
-                       if e, ok := r.(Error); ok {
-                               if e.string == "" {
-                                       panic("mat: invalid error")
-                               }
-                               buf := make([]byte, stackTraceBufferSize)
-                               n := runtime.Stack(buf, false)
-                               err = ErrorStack{Err: e, StackTrace: string(buf[:n])}
-                               return
-                       }
-                       panic(r)
-               }
-       }()
-       fn()
-       return
-}
-
-// MaybeFloat will recover a panic with a type mat.Error from fn, and return this error
-// as the Err field of an ErrorStack. The stack trace for the panicking function will be
-// recovered and placed in the StackTrace field. Any other error is re-panicked.
-func MaybeFloat(fn func() float64) (f float64, err error) {
-       defer func() {
-               if r := recover(); r != nil {
-                       if e, ok := r.(Error); ok {
-                               if e.string == "" {
-                                       panic("mat: invalid error")
-                               }
-                               buf := make([]byte, stackTraceBufferSize)
-                               n := runtime.Stack(buf, false)
-                               err = ErrorStack{Err: e, StackTrace: string(buf[:n])}
-                               return
-                       }
-                       panic(r)
-               }
-       }()
-       return fn(), nil
-}
-
-// MaybeComplex will recover a panic with a type mat.Error from fn, and return this error
-// as the Err field of an ErrorStack. The stack trace for the panicking function will be
-// recovered and placed in the StackTrace field. Any other error is re-panicked.
-func MaybeComplex(fn func() complex128) (f complex128, err error) {
-       defer func() {
-               if r := recover(); r != nil {
-                       if e, ok := r.(Error); ok {
-                               if e.string == "" {
-                                       panic("mat: invalid error")
-                               }
-                               buf := make([]byte, stackTraceBufferSize)
-                               n := runtime.Stack(buf, false)
-                               err = ErrorStack{Err: e, StackTrace: string(buf[:n])}
-                               return
-                       }
-                       panic(r)
-               }
-       }()
-       return fn(), nil
-}
-
-// Error represents matrix handling errors. These errors can be recovered by Maybe wrappers.
-type Error struct{ string }
-
-func (err Error) Error() string { return err.string }
-
-var (
-       ErrIndexOutOfRange     = Error{"matrix: index out of range"}
-       ErrRowAccess           = Error{"matrix: row index out of range"}
-       ErrColAccess           = Error{"matrix: column index out of range"}
-       ErrVectorAccess        = Error{"matrix: vector index out of range"}
-       ErrZeroLength          = Error{"matrix: zero length in matrix definition"}
-       ErrRowLength           = Error{"matrix: row length mismatch"}
-       ErrColLength           = Error{"matrix: col length mismatch"}
-       ErrSquare              = Error{"matrix: expect square matrix"}
-       ErrNormOrder           = Error{"matrix: invalid norm order for matrix"}
-       ErrSingular            = Error{"matrix: matrix is singular"}
-       ErrShape               = Error{"matrix: dimension mismatch"}
-       ErrIllegalStride       = Error{"matrix: illegal stride"}
-       ErrPivot               = Error{"matrix: malformed pivot list"}
-       ErrTriangle            = Error{"matrix: triangular storage mismatch"}
-       ErrTriangleSet         = Error{"matrix: triangular set out of bounds"}
-       ErrBandSet             = Error{"matrix: band set out of bounds"}
-       ErrSliceLengthMismatch = Error{"matrix: input slice length mismatch"}
-       ErrNotPSD              = Error{"matrix: input not positive symmetric definite"}
-       ErrFailedEigen         = Error{"matrix: eigendecomposition not successful"}
-)
-
-// ErrorStack represents matrix handling errors that have been recovered by Maybe wrappers.
-type ErrorStack struct {
-       Err error
-
-       // StackTrace is the stack trace
-       // recovered by Maybe, MaybeFloat
-       // or MaybeComplex.
-       StackTrace string
-}
-
-func (err ErrorStack) Error() string { return err.Err.Error() }