function diminishing_returns(val, scale) { if(val < 0) return -diminishing_returns(-val, scale); var mult = val / scale; var trinum = (Math.sqrt(8.0 * mult + 1.0) - 1.0) / 2.0; return trinum * scale; }