Lattice land propagators completion library
Loading...
Searching...
No Matches
lala::pc::Binary< AD, Group, Allocator > Class Template Reference

#include <terms.hpp>

Public Types

using A = AD
 
using allocator_type = Allocator
 
using U = typename Group::U
 
using G = Group
 
using this_type = Binary<A, G, allocator_type>
 
using sub_type = Term<A, allocator_type>
 
using sub_ptr = battery::unique_ptr<sub_type, allocator_type>
 

Public Member Functions

CUDA Binary (sub_ptr &&x_term, sub_ptr &&y_term)
 
CUDA Binary (this_type &&other)
 
template<class A2 , class Group2 , class Alloc2 >
CUDA Binary (const Binary< A2, Group2, Alloc2 > &other, const allocator_type &allocator)
 
CUDA bool embed (A &a, const U &u) const
 
CUDA void project (const A &a, U &r) const
 
CUDA NI void print (const A &a) const
 
template<class Env , class Allocator2 = typename Env::allocator_type>
CUDA NI TFormula< Allocator2 > deinterpret (const A &a, const Env &env, AType apc, Allocator2 allocator=Allocator2()) const
 
CUDA size_t length () const
 

Friends

template<class A2 , class Group2 , class Alloc2 >
class Binary
 

Member Typedef Documentation

◆ A

template<class AD , class Group , class Allocator >
using lala::pc::Binary< AD, Group, Allocator >::A = AD

◆ allocator_type

template<class AD , class Group , class Allocator >
using lala::pc::Binary< AD, Group, Allocator >::allocator_type = Allocator

◆ U

template<class AD , class Group , class Allocator >
using lala::pc::Binary< AD, Group, Allocator >::U = typename Group::U

◆ G

template<class AD , class Group , class Allocator >
using lala::pc::Binary< AD, Group, Allocator >::G = Group

◆ this_type

template<class AD , class Group , class Allocator >
using lala::pc::Binary< AD, Group, Allocator >::this_type = Binary<A, G, allocator_type>

◆ sub_type

template<class AD , class Group , class Allocator >
using lala::pc::Binary< AD, Group, Allocator >::sub_type = Term<A, allocator_type>

◆ sub_ptr

template<class AD , class Group , class Allocator >
using lala::pc::Binary< AD, Group, Allocator >::sub_ptr = battery::unique_ptr<sub_type, allocator_type>

Constructor & Destructor Documentation

◆ Binary() [1/3]

template<class AD , class Group , class Allocator >
CUDA lala::pc::Binary< AD, Group, Allocator >::Binary ( sub_ptr && x_term,
sub_ptr && y_term )
inline

◆ Binary() [2/3]

template<class AD , class Group , class Allocator >
CUDA lala::pc::Binary< AD, Group, Allocator >::Binary ( this_type && other)
inline

◆ Binary() [3/3]

template<class AD , class Group , class Allocator >
template<class A2 , class Group2 , class Alloc2 >
CUDA lala::pc::Binary< AD, Group, Allocator >::Binary ( const Binary< A2, Group2, Alloc2 > & other,
const allocator_type & allocator )
inline

Member Function Documentation

◆ embed()

template<class AD , class Group , class Allocator >
CUDA bool lala::pc::Binary< AD, Group, Allocator >::embed ( A & a,
const U & u ) const
inline

Enforce x <op> y <= u where <= is the lattice order of the underlying abstract universe. For instance, over the interval abstract universe, x + y <= [2..5] will ensure that x + y is eventually at least 2 and at most 5.

◆ project()

template<class AD , class Group , class Allocator >
CUDA void lala::pc::Binary< AD, Group, Allocator >::project ( const A & a,
U & r ) const
inline

◆ print()

template<class AD , class Group , class Allocator >
CUDA NI void lala::pc::Binary< AD, Group, Allocator >::print ( const A & a) const
inline

◆ deinterpret()

template<class AD , class Group , class Allocator >
template<class Env , class Allocator2 = typename Env::allocator_type>
CUDA NI TFormula< Allocator2 > lala::pc::Binary< AD, Group, Allocator >::deinterpret ( const A & a,
const Env & env,
AType apc,
Allocator2 allocator = Allocator2() ) const
inline

◆ length()

template<class AD , class Group , class Allocator >
CUDA size_t lala::pc::Binary< AD, Group, Allocator >::length ( ) const
inline

Friends And Related Symbol Documentation

◆ Binary

template<class AD , class Group , class Allocator >
template<class A2 , class Group2 , class Alloc2 >
friend class Binary
friend

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