Skip to content

OmniTools.ForNumber

Exported

OmniTools.ForNumber.at_least_one Function
julia
at_least_one(num)

returns max(num, 1)

Examples

julia
julia> using OmniTools

julia> at_least_one(0.5)
1.0
Code
julia
function at_least_one(num)
    return max(num, one(num))
end
OmniTools.ForNumber.at_least_zero Function
julia
at_least_zero(num)

returns max(num, 0)

Examples

julia
julia> using OmniTools

julia> at_least_zero(-1.0)
0.0
Code
julia
function at_least_zero(num)
    return max(num, zero(num))
end
OmniTools.ForNumber.at_most_one Function
julia
at_most_one(num)

returns min(num, 1)

Examples

julia
julia> using OmniTools

julia> at_most_one(2.0)
1.0
Code
julia
function at_most_one(num)
    return min(num, one(num))
end
OmniTools.ForNumber.at_most_zero Function
julia
at_most_zero(num)

returns min(num, 0)

Examples

julia
julia> using OmniTools

julia> at_most_zero(1.0)
0.0
Code
julia
function at_most_zero(num)
    return min(num, zero(num))
end
OmniTools.ForNumber.clamp_zero_one Function
julia
clamp_zero_one(num)

returns max(min(num, 1), 0)

Examples

julia
julia> using OmniTools

julia> clamp_zero_one(2.0)
1.0

julia> clamp_zero_one(-0.5)
0.0
Code
julia
function clamp_zero_one(num)
    return clamp(num, zero(num), one(num))
end
OmniTools.ForNumber.cumulative_sum! Function
julia
cumulative_sum!(output::AbstractVector, input::AbstractVector)

fill out the output vector with the cumulative sum of elements from input vector

Examples

julia
julia> using OmniTools

julia> out = zeros(Int, 3);

julia> cumulative_sum!(out, [1, 2, 3])
3-element Vector{Int64}:
 1
 3
 6
Code
julia
function cumulative_sum!(output::AbstractVector, input::AbstractVector)
    for i  eachindex(input)
        output[i] = sum(input[1:i])
    end
    return output
end
OmniTools.ForNumber.is_invalid_number Function
julia
is_invalid_number(_data::Number)

Checks if a number is invalid (e.g., nothing, missing, NaN, or Inf).

Arguments:

  • _data: The input number.

Returns:

true if the number is invalid, otherwise false.

Examples

julia
julia> using OmniTools

julia> is_invalid_number(NaN)
true

julia> is_invalid_number(1.0)
false
Code
julia
function is_invalid_number(x)
    return isnothing(x) || ismissing(x) || isnan(x) || isinf(x)
end
OmniTools.ForNumber.replace_invalid_number Function
julia
replace_invalid_number(_data, _data_fill)

Replaces invalid numbers in the input with a specified fill value.

Arguments:

  • _data: The input number.

  • _data_fill: The value to replace invalid numbers with.

Returns:

The input number if valid, otherwise the fill value.

Examples

julia
julia> using OmniTools

julia> replace_invalid_number(NaN, 0.0)
0.0

julia> replace_invalid_number(2.0, 0.0)
2.0
Code
julia
function replace_invalid_number(x, fill_value)
    x = is_invalid_number(x) ? fill_value : x
    return x
end
OmniTools.ForNumber.safe_divide Function
julia
safe_divide(num, den)

return either a ratio or numerator depending on whether denomitor is a zero

Examples

julia
julia> using OmniTools

julia> safe_divide(1.0, 2.0)
0.5

julia> safe_divide(1.0, 0.0)
1.0
Code
julia
function safe_divide(numerator, denominator)
    if !iszero(denominator)
        ratio = numerator / denominator
    else
        ratio = numerator
    end
    return ratio
end

Internal

OmniTools.jl - Foundational utilities for Julia development