mirror of
https://github.com/gonum/gonum.git
synced 2025-10-15 03:30:39 +08:00
Make BLAS calls more diff friendly
These are not broken into one-param per line, but semantic blocks.
This commit is contained in:
26
mat64/lq.go
26
mat64/lq.go
@@ -115,8 +115,13 @@ func (f LQFactor) ApplyQ(x *Dense, trans bool) {
|
|||||||
|
|
||||||
sub.View(k, 0, m-k, n)
|
sub.View(k, 0, m-k, n)
|
||||||
|
|
||||||
blasEngine.Dgemv(blas.ColMajor, blas.NoTrans, n, m-k, 1,
|
blasEngine.Dgemv(
|
||||||
sub.mat.Data, sub.mat.Stride, hh, 1, 0, proj, 1)
|
blas.ColMajor, blas.NoTrans,
|
||||||
|
n, m-k,
|
||||||
|
1, sub.mat.Data, sub.mat.Stride,
|
||||||
|
hh, 1,
|
||||||
|
0, proj, 1,
|
||||||
|
)
|
||||||
for i := k; i < m; i++ {
|
for i := k; i < m; i++ {
|
||||||
row := x.RowView(i)
|
row := x.RowView(i)
|
||||||
blasEngine.Daxpy(n, -hh[i-k], proj, 1, row, 1)
|
blasEngine.Daxpy(n, -hh[i-k], proj, 1, row, 1)
|
||||||
@@ -130,8 +135,13 @@ func (f LQFactor) ApplyQ(x *Dense, trans bool) {
|
|||||||
|
|
||||||
sub.View(k, 0, m-k, n)
|
sub.View(k, 0, m-k, n)
|
||||||
|
|
||||||
blasEngine.Dgemv(blas.ColMajor, blas.NoTrans, n, m-k, 1,
|
blasEngine.Dgemv(
|
||||||
sub.mat.Data, sub.mat.Stride, hh, 1, 0, proj, 1)
|
blas.ColMajor, blas.NoTrans,
|
||||||
|
n, m-k,
|
||||||
|
1, sub.mat.Data, sub.mat.Stride,
|
||||||
|
hh, 1,
|
||||||
|
0, proj, 1,
|
||||||
|
)
|
||||||
for i := k; i < m; i++ {
|
for i := k; i < m; i++ {
|
||||||
row := x.RowView(i)
|
row := x.RowView(i)
|
||||||
blasEngine.Daxpy(n, -hh[i-k], proj, 1, row, 1)
|
blasEngine.Daxpy(n, -hh[i-k], proj, 1, row, 1)
|
||||||
@@ -166,8 +176,12 @@ func (f LQFactor) Solve(b *Dense) (x *Dense) {
|
|||||||
tau[i] = lq.At(i, i)
|
tau[i] = lq.At(i, i)
|
||||||
lq.Set(i, i, lDiag[i])
|
lq.Set(i, i, lDiag[i])
|
||||||
}
|
}
|
||||||
blasEngine.Dtrsm(blas.RowMajor, blas.Left, blas.Lower, blas.NoTrans, blas.NonUnit,
|
blasEngine.Dtrsm(
|
||||||
bm, bn, 1, lq.mat.Data, lq.mat.Stride, x.mat.Data, x.mat.Stride)
|
blas.RowMajor, blas.Left, blas.Lower, blas.NoTrans, blas.NonUnit,
|
||||||
|
bm, bn,
|
||||||
|
1, lq.mat.Data, lq.mat.Stride,
|
||||||
|
x.mat.Data, x.mat.Stride,
|
||||||
|
)
|
||||||
|
|
||||||
for i := range tau {
|
for i := range tau {
|
||||||
lq.Set(i, i, tau[i])
|
lq.Set(i, i, tau[i])
|
||||||
|
Reference in New Issue
Block a user