Logo Mibo

AdaptiveReduction Module

Combinators for building AdaptiveReduction values.

Functions and values

Function or value Description

count

Full Usage: count

Returns: AdaptiveReduction<'a, int, int>
Type parameters: 'a

Counts the elements (FDA AdaptiveReduction.count parity).

Returns: AdaptiveReduction<'a, int, int>

countNegative

Full Usage: countNegative

Returns: AdaptiveReduction<bool, int, int>

Counts the elements for which the mapped value is false.

Returns: AdaptiveReduction<bool, int, int>

countPositive

Full Usage: countPositive

Returns: AdaptiveReduction<bool, int, int>

Counts the elements for which the mapped value is true.

Returns: AdaptiveReduction<bool, int, int>

fold zero add

Full Usage: fold zero add

Parameters:
    zero : 's
    add : 's -> 'a -> 's

Returns: AdaptiveReduction<'a, 's, 's>
Modifiers: inline
Type parameters: 's, 'a

A reduction that recomputes the whole state on every removal.

zero : 's
add : 's -> 'a -> 's
Returns: AdaptiveReduction<'a, 's, 's>

group zero add subtract

Full Usage: group zero add subtract

Parameters:
    zero : 's
    add : 's -> 'a -> 's
    subtract : 's -> 'a -> 's

Returns: AdaptiveReduction<'a, 's, 's>
Modifiers: inline
Type parameters: 's, 'a

A reduction with an invertible subtract operation.

zero : 's
add : 's -> 'a -> 's
subtract : 's -> 'a -> 's
Returns: AdaptiveReduction<'a, 's, 's>

halfGroup zero add trySubtract

Full Usage: halfGroup zero add trySubtract

Parameters:
    zero : 's
    add : 's -> 'a -> 's
    trySubtract : 's -> 'a -> 's voption

Returns: AdaptiveReduction<'a, 's, 's>
Modifiers: inline
Type parameters: 's, 'a

A reduction whose subtract may fall back to a full recompute.

zero : 's
add : 's -> 'a -> 's
trySubtract : 's -> 'a -> 's voption
Returns: AdaptiveReduction<'a, 's, 's>

mapIn mapping reduction

Full Usage: mapIn mapping reduction

Parameters:
Returns: AdaptiveReduction<'a, 's, 'v>
Modifiers: inline
Type parameters: 'a, 'b, 's, 'v

Maps the element side of a reduction (FDA AdaptiveReduction.mapIn parity).

mapping : 'a -> 'b
reduction : AdaptiveReduction<'b, 's, 'v>
Returns: AdaptiveReduction<'a, 's, 'v>

mapOut mapping reduction

Full Usage: mapOut mapping reduction

Parameters:
Returns: AdaptiveReduction<'a, 's, 'w>
Modifiers: inline
Type parameters: 'v, 'w, 'a, 's

Maps the observed value of a reduction.

mapping : 'v -> 'w
reduction : AdaptiveReduction<'a, 's, 'v>
Returns: AdaptiveReduction<'a, 's, 'w>

par left right

Full Usage: par left right

Parameters:
Returns: AdaptiveReduction<'a, ('s * 't), ('v * 'w)>
Modifiers: inline
Type parameters: 'a, 's, 'v, 't, 'w

Composes two reductions over the same element in parallel (FDA AdaptiveReduction.par parity; tuple state). The subtract falls back to a full recompute when either side cannot invert.

left : AdaptiveReduction<'a, 's, 'v>
right : AdaptiveReduction<'a, 't, 'w>
Returns: AdaptiveReduction<'a, ('s * 't), ('v * 'w)>

structpar left right

Full Usage: structpar left right

Parameters:
Returns: AdaptiveReduction<'a, ('s * 't), ('v * 'w)>
Modifiers: inline
Type parameters: 'a, 's, 'v, 't, 'w

Composes two reductions over the same element in parallel (FDA AdaptiveReduction.structpar parity; struct state, no tuple allocation).

left : AdaptiveReduction<'a, 's, 'v>
right : AdaptiveReduction<'a, 't, 'w>
Returns: AdaptiveReduction<'a, ('s * 't), ('v * 'w)>

sum ()

Full Usage: sum ()

Parameters:
    () : unit

Returns: AdaptiveReduction<^a, ^a, ^a>
Modifiers: inline
Type parameters: ^a (requires (static member get_Zero : -> ^a) and (static member op_Addition : ^a * ^a -> ^a) and (static member op_Subtraction : ^a * ^a -> ^a))

Sums the mapped values. Needs an additive numeric type.

() : unit
Returns: AdaptiveReduction<^a, ^a, ^a>

tryMax ()

Full Usage: tryMax ()

Parameters:
    () : unit

Returns: AdaptiveReduction<'a, 'a voption, 'a voption>
Modifiers: inline
Type parameters: 'a (requires comparison)

The maximum of the mapped values, or ValueNone when empty. A removal recomputes.

() : unit
Returns: AdaptiveReduction<'a, 'a voption, 'a voption>

tryMin ()

Full Usage: tryMin ()

Parameters:
    () : unit

Returns: AdaptiveReduction<'a, 'a voption, 'a voption>
Modifiers: inline
Type parameters: 'a (requires comparison)

The minimum of the mapped values, or ValueNone when empty. A removal recomputes.

() : unit
Returns: AdaptiveReduction<'a, 'a voption, 'a voption>

Type something to start searching.