mirror of
https://github.com/gonum/gonum.git
synced 2025-10-07 16:11:03 +08:00
optimized for row major iteration
This commit is contained in:

committed by
Vladimír Chalupecký

parent
e4cd817d22
commit
99dfbf7715
@@ -33,33 +33,30 @@ func (impl Implementation) Dlanhs(norm lapack.MatrixNorm, n int, a []float64, ld
|
||||
default:
|
||||
panic(badNorm)
|
||||
case lapack.MaxAbs:
|
||||
for j := 0; j < n; j++ {
|
||||
imax := min(n-1, j+1)
|
||||
for i := 0; i <= imax; i++ {
|
||||
for i := 0; i < n; i++ {
|
||||
for j := max(0, i-1); j < n; j++ {
|
||||
value = math.Max(value, math.Abs(a[i*lda+j]))
|
||||
}
|
||||
}
|
||||
case lapack.MaxColumnSum:
|
||||
for j := 0; j < n; j++ {
|
||||
sum := 0.0
|
||||
imax := min(n-1, j+1)
|
||||
for i := 0; i <= imax; i++ {
|
||||
sum += math.Abs(a[i*lda+j])
|
||||
}
|
||||
value = math.Max(value, sum)
|
||||
}
|
||||
case lapack.MaxRowSum:
|
||||
for i := 0; i < n; i++ {
|
||||
work[i] = 0
|
||||
}
|
||||
for j := 0; j < n; j++ {
|
||||
imax := min(n-1, j+1)
|
||||
for i := 0; i <= imax; i++ {
|
||||
work[i] += math.Abs(a[i*lda+j])
|
||||
}
|
||||
}
|
||||
for i := 0; i < n; i++ {
|
||||
value = math.Max(value, work[i])
|
||||
for j := max(0, i-1); j < n; j++ {
|
||||
work[j] += math.Abs(a[i*lda+j])
|
||||
}
|
||||
}
|
||||
for j := 0; j < n; j++ {
|
||||
value = math.Max(value, work[j])
|
||||
}
|
||||
case lapack.MaxRowSum:
|
||||
for i := 0; i < n; i++ {
|
||||
sum := 0.0
|
||||
for j := max(0, i-1); j < n; j++ {
|
||||
sum += math.Abs(a[i*lda+j])
|
||||
}
|
||||
value = math.Max(value, sum)
|
||||
}
|
||||
case lapack.Frobenius:
|
||||
scale := 0.0
|
||||
|
Reference in New Issue
Block a user