code: function lerpW(a, wa, b, wb) {
    var d = wb - wa
    var t = -wa / d
    if(t < 0.0) {
      t = 0.0
    } else if(t > 1.0) {
      t = 1.0
    }
    var ti = 1.0 - t
    var n = a.length
    var r = new Array(n)
    for(var i=0; i<n; ++i) {
      r[i] = t * a[i] + ti * b[i]
    }
    return r
  }
docs: Can't do this exactly and emit a floating point result