fn sti_kernel(n: [usize; 3], vs: [f64; 3], bdir: (f64, f64, f64)) -> Vec<f64>Expand description
STI’s dipole kernel (calcD2Matrix) in unshifted order: D = 1/3 − (k·H)²/|k|², 0 at
k = 0, with k_d = f/(n_d·vs_d) for the signed frequency index f (−n/2 at Nyquist) and
H normalised.
It is dipole_kernel’s formula, but evaluated the
way STI does, bit for bit: k by division rather than by multiplying with 1/(n·vs). The
two differ in the last bit of k on anisotropic grids, which flips the sign of D at
k-space points exactly on the magic-angle cone, and the initial guess’s ±1/0.065 with it
(a 3e-6 relative change in χ on the 0.8×0.9×1.5 mm phantom).