21 lines
579 B
Ruby
21 lines
579 B
Ruby
module Math
|
|
|
|
# Sign of `x`. This function returns `-1.0` if `x` is negative,
|
|
# `+1.0` if `x` is positive `x`, and `0.0` if `x = 0`.
|
|
def self.sign(x, zero=0.0)
|
|
(x > 0.0) ? 1.0 : ((x < 0.0) ? -1.0 : zero)
|
|
end
|
|
|
|
# Same as `Math.sign`.
|
|
def self.sgn(x, zero=0.0)
|
|
(x > 0.0) ? 1.0 : ((x < 0.0) ? -1.0 : zero)
|
|
end
|
|
|
|
# The *Heaviside step function*, also called the the *unit step function*.
|
|
# This functions works like `Math.sign` but by default returns `1.0` for zero.
|
|
def self.unit_step(x, zero=1.0)
|
|
(x > 0.0) ? 1.0 : ((x < 0.0) ? -1.0 : zero)
|
|
end
|
|
|
|
end
|