def pexp
import bendtorch@1.3.0.0/main.bend as Bendtorchimport Base
1340# a[j] = exp(a[j] - m) for j = idx..idx + k, their sum added to acc in order
1341def pexp(k: Nat, +idx: U32, +m: F32, acc: F32, r: Array<F32> & F32) -> AS:
1342 match k r:
1343 case 0n Tuple{a, +x}:
1344 +e = F32.exp((x - m : F32))
1345 AS{Array.set(F32, a, idx, e), (acc + e : F32)}
1346 case 1n+q Tuple{a, +x}:
1347 +e = F32.exp((x - m : F32))
1348 pexp(q, (idx + 1 : U32), m, (acc + e : F32), Array.get(F32, Array.set(F32, a, idx, e), (idx + 1 : U32)))