Caustic v0.1.2 Caustic.Field View Source
Methods for creation and manipulation of finite field element.
Examples
# Represents 1 which is a member of finite field of order 5
iex> Caustic.Field.make(1, 5)
{1, 5}
# Modulo addition 1 + 4 mod 5
iex> Caustic.Field.add({1, 5}, {4, 5})
{0, 5}
# Test for congruence 4 * 4 ≡ 1 (mod 5)
iex> Caustic.Field.mul({4, 5}, {4, 5}) |> Caustic.Field.eq?({1, 5})
true
Link to this section Summary
Link to this section Functions
Examples
iex> Caustic.Field.eq?({7, 13}, {7, 13})
true
iex> Caustic.Field.eq?({7, 13}, {6, 13})
false
iex> Caustic.Field.eq?({7, 13}, {7, 11})
false
Examples
iex> Caustic.Field.inverse({1, 71}) {1, 71} iex> Caustic.Field.inverse({51, 71}) {39, 71} iex> Caustic.Field.inverse({39, 71}) {51, 71} iex> Caustic.Field.mul({51, 71}, {39, 71}) {1, 71} iex> Caustic.Field.inverse({0, 71}) nil
Examples
iex> Caustic.Field.mul({5, 19}, {3, 19})
{15, 19}
iex> Caustic.Field.mul({8, 19}, {17, 19})
{3, 19}
Examples
iex> Caustic.Field.ne?({7, 13}, {7, 13})
false
iex> Caustic.Field.ne?({7, 13}, {6, 13})
true
iex> Caustic.Field.ne?({7, 13}, {7, 11})
true
Examples
iex> Caustic.Field.pow({7, 19}, {3, 19})
{1, 19}
iex> Caustic.Field.pow({9, 19}, {12, 19})
{7, 19}