Comment by AgentMatt

22 days ago

Great article!

I think there's a small problem with intermediate values in this code snippet:

  const maxValue = Math.max(...samplingVector)

  samplingVector = samplingVector.map((value) => {
    value = x / maxValue; // Normalize
    value = Math.pow(x, exponent);
    value = x * maxValue; // Denormalize
    return value;
  })

Replace x by value.

Just pushed a fix, should be live in a minute or two, thanks again!

  • This loop is similarly suspect:

      let maxValue = value;
      for (const externalIndex of AFFECTING_EXTERNAL_INDICES[i]) {
        maxValue = Math.max(value, externalSamplingVector[externalIndex]);
      }