def lnb_w

bendtorch@1.3.0.0 · main.bend:1777

import bendtorch@1.3.0.0/main.bend as Bendtorch
import Base

1777# dx[off + j] = (((dxh - ma) - xh * mb) * r), dg[j] += dy * xh, db[j] += dy, j = jj..jj + k (ma, mb the two means)
1778def lnb_w(k: Nat, +j: U32, +off: U32, +mu: F32, +r: F32, +ma: F32, +mb: F32, dx: Array<F32>, w: A2, rx: Array<F32> & F32, rd: Array<F32> & F32, rg: Array<F32> & F32) -> R4B:
1779  match k rx rd rg:
1780    case 0n Tuple{x, +a} Tuple{dy, +b} Tuple{g, +c}:
1781      +xh = ((a - mu : F32) * r : F32)
1782      R4B{x, dy, g, Array.set(F32, dx, (off + j : U32), ((((b * c : F32) - ma : F32) - (xh * mb : F32) : F32) * r : F32)), ln_dw(j, (b * xh : F32), b, w)}
1783    case 1n+q Tuple{x, +a} Tuple{dy, +b} Tuple{g, +c}:
1784      +xh = ((a - mu : F32) * r : F32)
1785      lnb_w(q, (j + 1 : U32), off, mu, r, ma, mb, Array.set(F32, dx, (off + j : U32), ((((b * c : F32) - ma : F32) - (xh * mb : F32) : F32) * r : F32)), ln_dw(j, (b * xh : F32), b, w), Array.get(F32, x, ((off + j : U32) + 1 : U32)), Array.get(F32, dy, ((off + j : U32) + 1 : U32)), Array.get(F32, g, (j + 1 : U32)))

Uses (14)

Used by (2)