def coul_row_excl
bend-prot@0.1.0.0 · bonded.bend:200
import bend-prot@0.1.0.0/bonded.bend as Bonded
import Base
import bend-prot@0.1.0.0/geom.bend as G
import bend-prot@0.1.0.0/protein.bend as P
import bend-prot@0.1.0.0/force.bend as F
200def coul_row_excl(+si: U32, +pi: G.Vec3, +qi: F32, +ke: F32, +c2: F32, ys: List<&2, P.Atom>, qs: List<&2, F32>, +bonds: List<&2, U32>) -> F32:
201 match ys qs:
202 case Nil{} Nil{}:
203 0.0
204 case Nil{} qh <> qt:
205 0.0
206 case h <> t Nil{}:
207 0.0
208 case h <> t qh <> qt:
209 +h2 = h
210 (Bool.pick(F32, excluded(si, P.Atom.serial(h2), bonds), 0.0, F.coul_at(pi, P.Atom.pos(h2), (qi * qh : F32), ke, c2)) + coul_row_excl(si, pi, qi, ke, c2, t, qt, bonds) : F32)