Packages

Color space conversion

Current section

Files

Jump to
lumi src util.erl
Raw

src/util.erl

-module(util).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([fmod/2, wrap_to_range/3, pi/0, degrees_to_radians/1, radians_to_degrees/1, sin/1, cos/1, atan/1, atan2/2]).
-spec fmod(float(), float()) -> float().
fmod(X, Y) ->
math:fmod(X, Y).
-spec wrap_to_range(float(), float(), float()) -> float().
wrap_to_range(X, Min, Max) ->
V = math:fmod(X - Min, Max - Min) + Min,
case V =< +0.0 of
true ->
V + Max;
false ->
V
end.
-spec pi() -> float().
pi() ->
math:pi().
-spec degrees_to_radians(float()) -> float().
degrees_to_radians(Degrees) ->
(Degrees / 180.0) * math:pi().
-spec radians_to_degrees(float()) -> float().
radians_to_degrees(Radians) ->
case math:pi() of
+0.0 -> +0.0;
-0.0 -> -0.0;
Gleam@denominator -> Radians * 180.0 / Gleam@denominator
end.
-spec sin(float()) -> float().
sin(X) ->
math:sin(X).
-spec cos(float()) -> float().
cos(X) ->
math:cos(X).
-spec atan(float()) -> float().
atan(X) ->
math:atan(X).
-spec atan2(float(), float()) -> float().
atan2(Y, X) ->
math:atan2(Y, X).