));

function client_to_x(client_x){
    return (client_x - client_x_center) / client_x_step;
}

function client_to_y(client_y){
    return (client_y_center - client_y) / client_y_step;
}

function x_to_client(x){
    return x * client_x_step + client_x_center;
}

function y_to_client(y){
    return client_y_center - y * client_y_step;
}

function sign_0_positive(x){ // Math.sign like with no 0 option
    if(x >= 0)
        return 1.0;
    return -1.0;
}

function underflow_padded(x){
    if(Math.abs(x) < 1