well a week of progress is great so far,
this version fixes the math in previous versions (which was an attempt to demonstrate an idea) with a bit more consistent math that actually works.
i was overcomplicating it.
it kinda ends up making each data point relationship into a vector, the magnitude of that vector defines its weight within the average. it is maturing quite a bit and finally giving good trim maps, making this an awesome linear analyzer that may end up being good at relating tons of different kinds of data to its target tuning cell.
so basically, the closer the data point (your trim vs rpm vs map) is to the target 'observer' point (the dead center of the ve table cell), the more effect it has on that observer. it uses a proper slope calculation with noise filter highpass (meaning data from too far away of cells has zero effect) and clipping at the top (meaning stuff close by is always 100%)
we don't have to worry about a hysteresis or anything near cell boundaries so data near a boundary will affect neighboring cells, since it doesn't care about literal cell boundaries, it just tries to gather surrounding data in a way which makes sense, and each data point can affect any cell 'within its reach' with varying effect.
it also has a visualizer now, so you can see how this interpolator is actually mapping its data points to cells,
i also fixed a one-off bug in the knock analyzer so the points are in the right spot... added a few other small tidbits.