Current section
Files
Jump to
Current section
Files
lib/apa_comp.ex
defmodule ApaComp do
@moduledoc """
APA : Arbitrary Precision Arithmetic - Comparision - ApaComp.
"""
# import ApaNumber
@doc """
Comparison - internal function - please call Apa.comp(left, right)
In reference to bcmath I call this functions bc_comp
"""
def bc_comp(left, right) when is_binary(left) and is_binary(right) do
compare_with_different_signs(left, right)
end
def bc_comp(left, right) do
raise(ArgumentError, "No string input.\n
left: #{inspect(left)}
right: #{inspect(right)}
")
end
defp compare_with_different_signs(left, right) do
cond do
ApaNumber.from_string(Apa.sub(left, right)) == {0, 0} -> 0
String.first(Apa.sub(left, right)) == "-" -> -1
true -> 1
end
end
end