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.