The PRIMITIVES signature

« 210 Library Documentation

Overview

The PRIMITIVES signature provides a few “primitive” operations for parallel evalution.

Interface

val par : (unit → 'a) * (unit → 'b) → ('a * 'b)
val par3 : (unit → 'a) * (unit → 'b) * (unit → 'c) → ('a * 'b * 'c)
val par4 : (unit → 'a) * (unit → 'b) * (unit → 'c) * (unit → 'd) → ('a * 'b * 'c * 'd)
val parTab : int * (int → 'a) → (int → 'a)

Values

val par : (unit → 'a) * (unit → 'b) → ('a * 'b)
par (f, g) evaluates $f$ and $g$ in parallel. It is logically equivalent to $(f(), g())$.
val par3 : (unit → 'a) * (unit → 'b) * (unit → 'c) → ('a * 'b * 'c)
par3 (f, g, h) evaluates $f$, $g$, and $h$ in parallel. It is logically equivalent to $(f(), g(), h())$.
val par4 : (unit → 'a) * (unit → 'b) * (unit → 'c) * (unit → 'd) → ('a * 'b * 'c * 'd)
par4 (f, g, h, i) evaluates $f$, $g$, $h$, and $i$ in parallel. It is logically equivalent to $(f(), g(), h(), i())$.
val parTab : int * (int → 'a) → (int → 'a)
parTab (n, f) evaluates $f(i)$ for every $0 \leq i < n$ in parallel. It is logically equivalent to $f$.