mirror of
https://github.com/gonum/gonum.git
synced 2025-10-14 03:13:46 +08:00
asm/f64: Update guardIncVector to allow negative increments.
This commit is contained in:
@@ -33,19 +33,17 @@ func isValidGuard(v []float64, g float64, g_ln int) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func guardIncVector(vec []float64, guard_val float64, inc, guard_len int) (guarded []float64) {
|
func guardIncVector(vec []float64, gdVal float64, inc, gdLen int) (guarded []float64) {
|
||||||
s_ln := len(vec) * inc
|
if inc < 0 {
|
||||||
guarded = make([]float64, s_ln+guard_len*2)
|
inc = -inc
|
||||||
for i, j := 0, 0; i < len(guarded); i++ {
|
}
|
||||||
switch {
|
inrLen := len(vec) * inc
|
||||||
case i < guard_len, guard_len+s_ln < i:
|
guarded = make([]float64, inrLen+gdLen*2)
|
||||||
guarded[i] = guard_val
|
for i := range guarded {
|
||||||
case (i-guard_len)%(inc) == 0 && j < len(vec):
|
guarded[i] = gdVal
|
||||||
guarded[i] = vec[j]
|
}
|
||||||
j++
|
for i, v := range vec {
|
||||||
default:
|
guarded[gdLen+i*inc] = v
|
||||||
guarded[i] = guard_val
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return guarded
|
return guarded
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user