Lattice Land Core Library
Loading...
Searching...
No Matches
lala::PreFLB< VT > Struct Template Reference

#include <pre_flb.hpp>

Public Types

using this_type = PreFLB<VT>
 
using dual_type = PreFUB<VT>
 
using value_type = VT
 
using lower_bound_type = this_type
 
using upper_bound_type = dual_type
 

Static Public Member Functions

CUDA static constexpr value_type zero ()
 
CUDA static constexpr value_type one ()
 
template<bool diagnose, class F >
static CUDA bool interpret_tell (const F &f, value_type &tell, IDiagnostics &diagnostics)
 
template<bool diagnose, class F >
static CUDA bool interpret_ask (const F &f, value_type &ask, IDiagnostics &diagnostics)
 
template<bool diagnose, class F >
static CUDA bool interpret_type (const F &f, value_type &k, IDiagnostics &diagnostics)
 
template<class F >
static CUDA F deinterpret (const value_type &v)
 
static CUDA constexpr Sig sig_order ()
 
static CUDA constexpr Sig sig_strict_order ()
 
static CUDA constexpr value_type bot ()
 
static CUDA constexpr value_type top ()
 
static CUDA constexpr value_type join (value_type x, value_type y)
 
static CUDA constexpr value_type meet (value_type x, value_type y)
 
static CUDA constexpr bool order (value_type x, value_type y)
 
static CUDA constexpr bool strict_order (value_type x, value_type y)
 
static CUDA constexpr value_type next (value_type x)
 
static CUDA constexpr value_type prev (value_type x)
 
static CUDA constexpr value_type project (Sig fun, value_type x)
 
static CUDA constexpr value_type project (Sig fun, value_type x, value_type y)
 

Static Public Attributes

static constexpr const bool is_totally_ordered = true
 
static constexpr const bool preserve_bot = true
 
static constexpr const bool preserve_top = true
 
static constexpr const bool preserve_join = true
 
static constexpr const bool preserve_meet = true
 
static constexpr const bool injective_concretization = true
 
static constexpr const bool preserve_concrete_covers = false
 
static constexpr const bool is_lower_bound = true
 
static constexpr const bool is_upper_bound = false
 
static constexpr const char * name = "FLB"
 
static constexpr const bool is_arithmetic = true
 

Detailed Description

template<class VT>
struct lala::PreFLB< VT >

PreFLB is a pre-abstract universe \( \langle \mathbb{F}\setminus\{NaN\}, \geq \rangle \) totally ordered by the reversed floating-point arithmetic comparison operator. We work on a subset of floating-point numbers without NaN. It is used to represent (and possibly approximate) constraints of the form \( x \geq k \) where \( k \) is a real number.

Member Typedef Documentation

◆ this_type

template<class VT >
using lala::PreFLB< VT >::this_type = PreFLB<VT>

◆ dual_type

template<class VT >
using lala::PreFLB< VT >::dual_type = PreFUB<VT>

◆ value_type

template<class VT >
using lala::PreFLB< VT >::value_type = VT

◆ lower_bound_type

template<class VT >
using lala::PreFLB< VT >::lower_bound_type = this_type

◆ upper_bound_type

template<class VT >
using lala::PreFLB< VT >::upper_bound_type = dual_type

Member Function Documentation

◆ zero()

template<class VT >
CUDA static constexpr value_type lala::PreFLB< VT >::zero ( )
inlinestaticconstexpr

◆ one()

template<class VT >
CUDA static constexpr value_type lala::PreFLB< VT >::one ( )
inlinestaticconstexpr

◆ interpret_tell()

template<class VT >
template<bool diagnose, class F >
static CUDA bool lala::PreFLB< VT >::interpret_tell ( const F & f,
value_type & tell,
IDiagnostics & diagnostics )
inlinestatic

◆ interpret_ask()

template<class VT >
template<bool diagnose, class F >
static CUDA bool lala::PreFLB< VT >::interpret_ask ( const F & f,
value_type & ask,
IDiagnostics & diagnostics )
inlinestatic

◆ interpret_type()

template<class VT >
template<bool diagnose, class F >
static CUDA bool lala::PreFLB< VT >::interpret_type ( const F & f,
value_type & k,
IDiagnostics & diagnostics )
inlinestatic

◆ deinterpret()

template<class VT >
template<class F >
static CUDA F lala::PreFLB< VT >::deinterpret ( const value_type & v)
inlinestatic

◆ sig_order()

template<class VT >
static CUDA constexpr Sig lala::PreFLB< VT >::sig_order ( )
inlinestaticconstexpr

◆ sig_strict_order()

template<class VT >
static CUDA constexpr Sig lala::PreFLB< VT >::sig_strict_order ( )
inlinestaticconstexpr

◆ bot()

template<class VT >
static CUDA constexpr value_type lala::PreFLB< VT >::bot ( )
inlinestaticconstexpr

◆ top()

template<class VT >
static CUDA constexpr value_type lala::PreFLB< VT >::top ( )
inlinestaticconstexpr

◆ join()

template<class VT >
static CUDA constexpr value_type lala::PreFLB< VT >::join ( value_type x,
value_type y )
inlinestaticconstexpr

◆ meet()

template<class VT >
static CUDA constexpr value_type lala::PreFLB< VT >::meet ( value_type x,
value_type y )
inlinestaticconstexpr

◆ order()

template<class VT >
static CUDA constexpr bool lala::PreFLB< VT >::order ( value_type x,
value_type y )
inlinestaticconstexpr

◆ strict_order()

template<class VT >
static CUDA constexpr bool lala::PreFLB< VT >::strict_order ( value_type x,
value_type y )
inlinestaticconstexpr

◆ next()

template<class VT >
static CUDA constexpr value_type lala::PreFLB< VT >::next ( value_type x)
inlinestaticconstexpr

◆ prev()

template<class VT >
static CUDA constexpr value_type lala::PreFLB< VT >::prev ( value_type x)
inlinestaticconstexpr

◆ project() [1/2]

template<class VT >
static CUDA constexpr value_type lala::PreFLB< VT >::project ( Sig fun,
value_type x )
inlinestaticconstexpr

◆ project() [2/2]

template<class VT >
static CUDA constexpr value_type lala::PreFLB< VT >::project ( Sig fun,
value_type x,
value_type y )
inlinestaticconstexpr

Member Data Documentation

◆ is_totally_ordered

template<class VT >
const bool lala::PreFLB< VT >::is_totally_ordered = true
staticconstexpr

◆ preserve_bot

template<class VT >
const bool lala::PreFLB< VT >::preserve_bot = true
staticconstexpr

◆ preserve_top

template<class VT >
const bool lala::PreFLB< VT >::preserve_top = true
staticconstexpr

◆ preserve_join

template<class VT >
const bool lala::PreFLB< VT >::preserve_join = true
staticconstexpr

◆ preserve_meet

template<class VT >
const bool lala::PreFLB< VT >::preserve_meet = true
staticconstexpr

◆ injective_concretization

template<class VT >
const bool lala::PreFLB< VT >::injective_concretization = true
staticconstexpr

Note that -0 and +0 are treated as the same element.

◆ preserve_concrete_covers

template<class VT >
const bool lala::PreFLB< VT >::preserve_concrete_covers = false
staticconstexpr

◆ is_lower_bound

template<class VT >
const bool lala::PreFLB< VT >::is_lower_bound = true
staticconstexpr

◆ is_upper_bound

template<class VT >
const bool lala::PreFLB< VT >::is_upper_bound = false
staticconstexpr

◆ name

template<class VT >
const char* lala::PreFLB< VT >::name = "FLB"
staticconstexpr

◆ is_arithmetic

template<class VT >
const bool lala::PreFLB< VT >::is_arithmetic = true
staticconstexpr

The documentation for this struct was generated from the following files: