def rmsb_dot

bendtorch@1.3.0.0 · main.bend:1626

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

1626# acc + dxh[j]·xh[j] + ..., in order; rx, rd, rg hold x[off + jj], dy[off + jj], g[jj]
1627def rmsb_dot(k: Nat, +j: U32, +off: U32, +r: F32, acc: F32, rx: Array<F32> & F32, rd: Array<F32> & F32, rg: Array<F32> & F32) -> R3S:
1628  match k rx rd rg:
1629    case 0n Tuple{x, +a} Tuple{dy, +b} Tuple{g, +c}:
1630      R3S{x, dy, g, (acc + ((b * c : F32) * (a * r : F32) : F32) : F32)}
1631    case 1n+p Tuple{x, +a} Tuple{dy, +b} Tuple{g, +c}:
1632      rmsb_dot(p, (j + 1 : U32), off, r, (acc + ((b * c : F32) * (a * r : F32) : F32) : F32), 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 (11)

Used by (2)