fix Swift type-check complexity in LSV crossover detection
This commit is contained in:
parent
491befa8c6
commit
95997e4fd5
|
|
@ -79,9 +79,13 @@ func detectLsvPeaks(_ points: [LsvPoint]) -> [LsvPeak] {
|
|||
for i in 1..<smoothed.count {
|
||||
let prev = smoothed[i - 1]
|
||||
let curr = smoothed[i]
|
||||
if prev.sign != curr.sign && prev != 0 {
|
||||
let frac = abs(prev) / (abs(prev) + abs(curr))
|
||||
let vCross = vVals[i - 1] + frac * (vVals[i] - vVals[i - 1])
|
||||
let crossed = (prev > 0 && curr < 0) || (prev < 0 && curr > 0)
|
||||
if crossed {
|
||||
let aPrev = abs(prev)
|
||||
let aCurr = abs(curr)
|
||||
let frac = aPrev / (aPrev + aCurr)
|
||||
let dv = vVals[i] - vVals[i - 1]
|
||||
let vCross = vVals[i - 1] + frac * dv
|
||||
peaks.append(LsvPeak(vMv: vCross, iUa: 0, kind: .crossover))
|
||||
break
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue