mirror of
https://github.com/gonum/gonum.git
synced 2025-10-05 15:16:59 +08:00
156 lines
3.6 KiB
Go
156 lines
3.6 KiB
Go
// 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 cblas128
|
|
|
|
import "gonum.org/v1/gonum/blas"
|
|
|
|
// HermitianCols represents a matrix using the conventional column-major storage scheme.
|
|
type HermitianCols Hermitian
|
|
|
|
// 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 HermitianCols) From(a Hermitian) {
|
|
if t.N != a.N {
|
|
panic("cblas128: mismatched dimension")
|
|
}
|
|
if t.Uplo != a.Uplo {
|
|
panic("cblas128: mismatched BLAS uplo")
|
|
}
|
|
switch a.Uplo {
|
|
default:
|
|
panic("cblas128: 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 Hermitian) From(a HermitianCols) {
|
|
if t.N != a.N {
|
|
panic("cblas128: mismatched dimension")
|
|
}
|
|
if t.Uplo != a.Uplo {
|
|
panic("cblas128: mismatched BLAS uplo")
|
|
}
|
|
switch a.Uplo {
|
|
default:
|
|
panic("cblas128: 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]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// HermitianBandCols represents an Hermitian matrix using the band column-major storage scheme.
|
|
type HermitianBandCols HermitianBand
|
|
|
|
// 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 HermitianBandCols) From(a HermitianBand) {
|
|
if t.N != a.N {
|
|
panic("cblas128: mismatched dimension")
|
|
}
|
|
if t.K != a.K {
|
|
panic("cblas128: mismatched bandwidth")
|
|
}
|
|
if a.Stride < a.K+1 {
|
|
panic("cblas128: short stride for source")
|
|
}
|
|
if t.Stride < t.K+1 {
|
|
panic("cblas128: short stride for destination")
|
|
}
|
|
if t.Uplo != a.Uplo {
|
|
panic("cblas128: 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("cblas128: 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 HermitianBand) From(a HermitianBandCols) {
|
|
if t.N != a.N {
|
|
panic("cblas128: mismatched dimension")
|
|
}
|
|
if t.K != a.K {
|
|
panic("cblas128: mismatched bandwidth")
|
|
}
|
|
if a.Stride < a.K+1 {
|
|
panic("cblas128: short stride for source")
|
|
}
|
|
if t.Stride < t.K+1 {
|
|
panic("cblas128: short stride for destination")
|
|
}
|
|
if t.Uplo != a.Uplo {
|
|
panic("cblas128: 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("cblas128: 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)
|
|
}
|