[OTVar & Math]: approximating arbitrary function to OTVar masters.

Belleve InvisBelleve Invis Posts: 192
edited October 2016 in Technique and Theory
The situation is that, if, your point coordinate, or metric, is not manually maintained in a MM flavor, but calculated from something else, like a constraint solver, what is the best way to construct a “good” OTVar-flavor region-delta set, to approximate this quantity.


  • I guess you will need to instantiate masters so that when they are linearly interpolated, you get an approximation of the results of your solver - that is not dynamic, but variable. :)
  • edited December 2016
    You can approximate in the following way: 
    • Evaluate your solver for each single parameter (by setting others to zero), calculate deltas.  Calculate the delta value for combinations of two parameters, and subtract the deltas for the two single parameter values. Same for combinations of n = 3, 4, ... subtract all combinations of (1,.., n-1).
    • Ommit deltas below a threshold.
    • You can ommit combinations if you know that two values are not dependend.  This will avoid computations, since calculating all combinations is exponential in the number of parameters (2^number of parameters).  For example if you have x = (2*a + 3*b)/c, a and b are not dependend, but (a, c) and (b, c) are.   If there are other parameters than a, b, or c, they have to be set to 0 in the region.  For parameters (a, b, c, d) this gives regions (1, 0, 0, 0), (1, 0, 1, 0), (0, 1, 0, 0), (0, 1, 1, 0) and (0, 0, 1, 0)
    • If the intermediate steps are not linear, you can use more intermediate regions, but this may cause an explosion of regions.
    For my metafont implementation, I intend to solve the equations symbolically, and only use approximation for non-linear cases.
  • So let we consider a more clear situation: you have a f(S), the S is the normalized variation vector and f is a smooth function (on all the dimensions). We also have some S vectors (m1m2, ...) identified as "masters". For any S vector we can calculate the f(S) value, as well as the Jacobian J(S), how can we approximate f into OTV "delta plus range" mechanism?
Sign In or Register to comment.