# tech.v3.datatype.reductions

High performance reductions based on tech.v3.datatype concepts as well as java stream concepts.

### commutative-binary-double

`(commutative-binary-double op options rdr)`

`(commutative-binary-double op rdr)`

Perform a commutative reduction using a binary operator to perform the reduction. The operator needs to be both commutative and associative.

### commutative-binary-long

`(commutative-binary-long op rdr)`

Perform a commutative reduction in int64 space using a binary operator. The operator needs to be both commutative and associative.

### double-summation

`(double-summation options rdr)`

`(double-summation rdr)`

Double sum of data using Kahan compensated summation.

### reducer-value->consumer-fn

`(reducer-value->consumer-fn reducer-value)`

Produce a consumer from a generic reducer value.

### staged-double-consumer-reduction

`(staged-double-consumer-reduction staged-consumer-fn options rdr)`

`(staged-double-consumer-reduction staged-consumer-fn rdr)`

A staged consumer is a consumer can be used in a map-reduce pathway where during the map portion .consume is called and then during produces a 'result' on which .combine is called during the reduce pathway.

See options for ham-fisted/preduce.

### unary-double-summation

`(unary-double-summation op options rdr)`

`(unary-double-summation op rdr)`

Perform a double summation using a unary operator to transform the input stream into a new double stream.