OSDN Git Service

Hulk did something
[bytom/vapor.git] / vendor / gonum.org / v1 / gonum / blas / blas32 / conv_symmetric.go
diff --git a/vendor/gonum.org/v1/gonum/blas/blas32/conv_symmetric.go b/vendor/gonum.org/v1/gonum/blas/blas32/conv_symmetric.go
new file mode 100644 (file)
index 0000000..162f3fc
--- /dev/null
@@ -0,0 +1,155 @@
+// Code generated by "go generate gonum.org/v1/gonum/blas”; DO NOT EDIT.
+
+// 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 blas32
+
+import "gonum.org/v1/gonum/blas"
+
+// SymmetricCols represents a matrix using the conventional column-major storage scheme.
+type SymmetricCols Symmetric
+
+// From fills the receiver with elements from a. The receiver
+// must have the same dimensions and uplo as a and have adequate
+// backing data storage.
+func (t SymmetricCols) From(a Symmetric) {
+       if t.N != a.N {
+               panic("blas32: mismatched dimension")
+       }
+       if t.Uplo != a.Uplo {
+               panic("blas32: mismatched BLAS uplo")
+       }
+       switch a.Uplo {
+       default:
+               panic("blas32: bad BLAS uplo")
+       case blas.Upper:
+               for i := 0; i < a.N; i++ {
+                       for j := i; j < a.N; j++ {
+                               t.Data[i+j*t.Stride] = a.Data[i*a.Stride+j]
+                       }
+               }
+       case blas.Lower:
+               for i := 0; i < a.N; i++ {
+                       for j := 0; j <= i; j++ {
+                               t.Data[i+j*t.Stride] = a.Data[i*a.Stride+j]
+                       }
+               }
+       }
+}
+
+// From fills the receiver with elements from a. The receiver
+// must have the same dimensions and uplo as a and have adequate
+// backing data storage.
+func (t Symmetric) From(a SymmetricCols) {
+       if t.N != a.N {
+               panic("blas32: mismatched dimension")
+       }
+       if t.Uplo != a.Uplo {
+               panic("blas32: mismatched BLAS uplo")
+       }
+       switch a.Uplo {
+       default:
+               panic("blas32: bad BLAS uplo")
+       case blas.Upper:
+               for i := 0; i < a.N; i++ {
+                       for j := i; j < a.N; j++ {
+                               t.Data[i*t.Stride+j] = a.Data[i+j*a.Stride]
+                       }
+               }
+       case blas.Lower:
+               for i := 0; i < a.N; i++ {
+                       for j := 0; j <= i; j++ {
+                               t.Data[i*t.Stride+j] = a.Data[i+j*a.Stride]
+                       }
+               }
+       }
+}
+
+// SymmetricBandCols represents a symmetric matrix using the band column-major storage scheme.
+type SymmetricBandCols SymmetricBand
+
+// From fills the receiver with elements from a. The receiver
+// must have the same dimensions, bandwidth and uplo as a and
+// have adequate backing data storage.
+func (t SymmetricBandCols) From(a SymmetricBand) {
+       if t.N != a.N {
+               panic("blas32: mismatched dimension")
+       }
+       if t.K != a.K {
+               panic("blas32: mismatched bandwidth")
+       }
+       if a.Stride < a.K+1 {
+               panic("blas32: short stride for source")
+       }
+       if t.Stride < t.K+1 {
+               panic("blas32: short stride for destination")
+       }
+       if t.Uplo != a.Uplo {
+               panic("blas32: mismatched BLAS uplo")
+       }
+       dst := BandCols{
+               Rows: t.N, Cols: t.N,
+               Stride: t.Stride,
+               Data:   t.Data,
+       }
+       src := Band{
+               Rows: a.N, Cols: a.N,
+               Stride: a.Stride,
+               Data:   a.Data,
+       }
+       switch a.Uplo {
+       default:
+               panic("blas32: bad BLAS uplo")
+       case blas.Upper:
+               dst.KU = t.K
+               src.KU = a.K
+       case blas.Lower:
+               dst.KL = t.K
+               src.KL = a.K
+       }
+       dst.From(src)
+}
+
+// From fills the receiver with elements from a. The receiver
+// must have the same dimensions, bandwidth and uplo as a and
+// have adequate backing data storage.
+func (t SymmetricBand) From(a SymmetricBandCols) {
+       if t.N != a.N {
+               panic("blas32: mismatched dimension")
+       }
+       if t.K != a.K {
+               panic("blas32: mismatched bandwidth")
+       }
+       if a.Stride < a.K+1 {
+               panic("blas32: short stride for source")
+       }
+       if t.Stride < t.K+1 {
+               panic("blas32: short stride for destination")
+       }
+       if t.Uplo != a.Uplo {
+               panic("blas32: mismatched BLAS uplo")
+       }
+       dst := Band{
+               Rows: t.N, Cols: t.N,
+               Stride: t.Stride,
+               Data:   t.Data,
+       }
+       src := BandCols{
+               Rows: a.N, Cols: a.N,
+               Stride: a.Stride,
+               Data:   a.Data,
+       }
+       switch a.Uplo {
+       default:
+               panic("blas32: bad BLAS uplo")
+       case blas.Upper:
+               dst.KU = t.K
+               src.KU = a.K
+       case blas.Lower:
+               dst.KL = t.K
+               src.KL = a.K
+       }
+       dst.From(src)
+}