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;
}