manual generalised dot-product shit
chordal inner product
memoized inner product
better naming
vectorized version
note cache
vectorized version
ditch note-based cache