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

#include <pre_fdec.hpp>

Public Types

using this_type = PreFDec<VT>
 
using dual_type = PreFInc<VT>
 
using value_type = VT
 
using increasing_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 bool is_supported_fun (Sig sig)
 
template<Sig sig>
static CUDA constexpr value_type fun (value_type x)
 
template<Sig sig>
static CUDA constexpr value_type 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 complemented = false
 
static constexpr const bool increasing = false
 
static constexpr const char * name = "FDec"
 
static constexpr const bool is_arithmetic = true
 

Detailed Description

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

PreFDec is a pre-abstract universe \( \langle \mathbb{F}\setminus\{NaN\}, \leq \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 \leq k \) where \( k \) is a real number.

Member Typedef Documentation

◆ this_type

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

◆ dual_type

template<class VT >
using lala::PreFDec< VT >::dual_type = PreFInc<VT>

◆ value_type

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

◆ increasing_type

template<class VT >
using lala::PreFDec< VT >::increasing_type = dual_type

Member Function Documentation

◆ zero()

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

◆ one()

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

◆ interpret_tell()

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

◆ deinterpret()

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

◆ sig_order()

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

◆ sig_strict_order()

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

◆ bot()

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

◆ top()

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

◆ join()

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

◆ meet()

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

◆ order()

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

◆ strict_order()

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

◆ next()

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

◆ prev()

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

◆ is_supported_fun()

template<class VT >
static CUDA constexpr bool lala::PreFDec< VT >::is_supported_fun ( Sig sig)
inlinestaticconstexpr

◆ fun() [1/2]

template<class VT >
template<Sig sig>
static CUDA constexpr value_type lala::PreFDec< VT >::fun ( value_type x)
inlinestaticconstexpr

◆ fun() [2/2]

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

Member Data Documentation

◆ is_totally_ordered

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

◆ preserve_bot

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

◆ preserve_top

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

◆ preserve_join

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

◆ preserve_meet

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

◆ injective_concretization

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

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

◆ preserve_concrete_covers

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

◆ complemented

template<class VT >
constexpr const bool lala::PreFDec< VT >::complemented = false
staticconstexpr

◆ increasing

template<class VT >
constexpr const bool lala::PreFDec< VT >::increasing = false
staticconstexpr

◆ name

template<class VT >
constexpr const char* lala::PreFDec< VT >::name = "FDec"
staticconstexpr

◆ is_arithmetic

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

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