AFIT/Source/scalable/scalable_power.mli

29 lines
996 B
OCaml

(** Power function implementations for bitarrays *)
(** Naive power function. Linear complexity
@param x base, a bitarray
@param n exponent, a non-negative bitarray
*)
val pow : int list -> int list -> int list
(** Fast bitarray exponentiation function. Logarithmic complexity.
@param x base, a bitarray
@param n exponent, a non-negative bitarray
*)
val power : int list -> int list -> int list
(** Fast modular exponentiation function. Logarithmic complexity.
@param x base, a bitarray
@param n exponent, a non-negative bitarray
@param m modular base, a positive bitarray
*)
val mod_power : int list -> int list -> int list -> int list
(** Fast modular exponentiation function mod prime. Logarithmic complexity.
It makes use of the Little Fermat Theorem.
@param x base, a bitarray
@param n exponent, a non-negative bitarray
@param p prime modular base, a positive bitarray
*)
val prime_mod_power : int list -> int list -> int list -> int list