Lattice Land Core Library
|
#include <fixpoint.hpp>
Public Member Functions | |
CUDA void | barrier () |
template<class F > | |
CUDA local::B | iterate (size_t n, const F &f) const |
template<class F , class StopFun , class M > | |
CUDA size_t | fixpoint (size_t n, const F &f, const StopFun &must_stop, B< M > &has_changed) |
template<class F , class StopFun > | |
CUDA size_t | fixpoint (size_t n, const F &f, const StopFun &must_stop) |
template<class F , class M > | |
CUDA size_t | fixpoint (size_t n, const F &f, B< M > &has_changed) |
template<class F > | |
CUDA size_t | fixpoint (size_t n, const F &f) |
A simple form of sequential fixpoint computation based on Kleene fixpoint. At each iteration, the deduction operations \( f_1, \ldots, f_n \) are simply composed by functional composition \( f = f_n \circ \ldots \circ f_1 \). This strategy basically corresponds to the Gauss-Seidel iteration method.
|
inline |
|
inline |
We iterate the function f
n
times: \( f(0); f(1); \ldots ; f(n); \)
`n` | the number of call to f . |
`bool | f(size_t i)returns trueif something has changed for i. \return trueif for some i, f(i)returned true, false` otherwise. |
|
inline |
We execute iterate(n, f)
until we reach a fixpoint or must_stop()
returns true
.
`n` | the number of call to f . |
`bool | f(size_t i)returns trueif something has changed for i. \param bool must_stop()returns trueif we must stop early the fixpoint computation. \param has_changedis set to trueif we were not yet in a fixpoint. \return The number of iterations required to reach a fixpoint or until must_stop()returns true`. |
|
inline |
Same as fixpoint
above without has_changed
.
|
inline |
Same as fixpoint
above with must_stop
always returning false
.
|
inline |
Same as fixpoint
above without has_changed
and with must_stop
always returning false
.