Module Hardcaml_circuits.Prefix_sum

Parallel prefix networks. See https://en.wikipedia.org/wiki/Prefix_sum.

These require an associative operator, but do not depend on commutativity.

module Config : sig ... end
val eval : config:Config.t -> operator:( 'a -> 'a -> 'a ) -> 'a list -> 'a list
val create : (module Hardcaml.Comb.S with type t = 'a) -> config:Config.t -> input1:'a -> input2:'a -> carry_in:'a -> 'a

Parallel prefix adder.