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

#include <pre_zlb.hpp>

Public Types

using this_type = PreZLB<VT>
 
using dual_type = PreZUB<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 = true
 
static constexpr const bool is_lower_bound = true
 
static constexpr const bool is_upper_bound = false
 
static constexpr const char * name = "ZLB"
 
static constexpr const bool is_arithmetic = true
 

Detailed Description

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

PreZLB is a pre-abstract universe \( \langle \{\infty, \ldots, 2, 1, 0, -1, -2, \ldots, -\infty\}, \geq \rangle \) totally ordered by the reversed natural arithmetic comparison operator. It is used to represent constraints of the form \( x \geq k \) where \( k \) is an integer.

Member Typedef Documentation

◆ this_type

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

◆ dual_type

template<class VT >
using lala::PreZLB< VT >::dual_type = PreZUB<VT>

◆ value_type

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

◆ lower_bound_type

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

◆ upper_bound_type

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

Member Function Documentation

◆ zero()

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

◆ one()

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

◆ interpret_tell()

template<class VT >
template<bool diagnose, class F >
static CUDA bool lala::PreZLB< 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::PreZLB< 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::PreZLB< VT >::interpret_type ( const F & f,
value_type & k,
IDiagnostics & diagnostics )
inlinestatic

◆ deinterpret()

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

◆ sig_order()

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

◆ sig_strict_order()

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

◆ bot()

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

◆ top()

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

◆ join()

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

◆ meet()

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

◆ order()

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

◆ strict_order()

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

◆ next()

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

◆ prev()

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

◆ project() [1/2]

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

◆ project() [2/2]

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

Member Data Documentation

◆ is_totally_ordered

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

◆ preserve_bot

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

◆ preserve_top

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

◆ preserve_join

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

◆ preserve_meet

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

◆ injective_concretization

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

◆ preserve_concrete_covers

template<class VT >
const bool lala::PreZLB< VT >::preserve_concrete_covers = true
staticconstexpr

◆ is_lower_bound

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

◆ is_upper_bound

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

◆ name

template<class VT >
const char* lala::PreZLB< VT >::name = "ZLB"
staticconstexpr

◆ is_arithmetic

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

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