Aerobus v1.2
Loading...
Searching...
No Matches
Classes | Public Types | Static Public Attributes | List of all members
aerobus::i64 Struct Reference

64 bits signed integers, seen as a algebraic ring with related operations More...

#include <aerobus.h>

Classes

struct  val
 values in i64 More...
 

Public Types

using inner_type = int64_t
 type of represented values
 
template<auto x>
using inject_constant_t = val< static_cast< int64_t >(x)>
 injects constant as an i64 value
 
template<typename v >
using inject_ring_t = v
 injects a value used for internal consistency and quotient rings implementations for example i64::inject_ring_t<i64::val<1>> -> i64::val<1>
 
using zero = val< 0 >
 constant zero
 
using one = val< 1 >
 constant one
 
template<typename v1 , typename v2 >
using add_t = typename add< v1, v2 >::type
 addition operator
 
template<typename v1 , typename v2 >
using sub_t = typename sub< v1, v2 >::type
 substraction operator
 
template<typename v1 , typename v2 >
using mul_t = typename mul< v1, v2 >::type
 multiplication operator
 
template<typename v1 , typename v2 >
using div_t = typename div< v1, v2 >::type
 division operator integer division
 
template<typename v1 , typename v2 >
using mod_t = typename remainder< v1, v2 >::type
 modulus operator
 
template<typename v1 , typename v2 >
using gt_t = typename gt< v1, v2 >::type
 strictly greater operator yields v1 > v2 as std::true_type or std::false_type
 
template<typename v1 , typename v2 >
using lt_t = typename lt< v1, v2 >::type
 strict less operator yields v1 < v2 as std::true_type or std::false_type
 
template<typename v1 , typename v2 >
using eq_t = typename eq< v1, v2 >::type
 equality operator yields v1 == v2 as std::true_type or std::false_type
 
template<typename v1 , typename v2 >
using gcd_t = gcd_t< i64, v1, v2 >
 greatest common divisor yields GCD(v1, v2) as instanciation of i64::val
 
template<typename v >
using pos_t = typename pos< v >::type
 is v posititive yields v > 0 as std::true_type or std::false_type
 

Static Public Attributes

static constexpr bool is_field = false
 integers are not a field
 
static constexpr bool is_euclidean_domain = true
 integers are an euclidean domain
 
template<typename v1 , typename v2 >
static constexpr bool gt_v = gt_t<v1, v2>::value
 strictly greater operator yields v1 > v2 as boolean value
 
template<typename v1 , typename v2 >
static constexpr bool lt_v = lt_t<v1, v2>::value
 strictly smaller operator yields v1 < v2 as boolean value
 
template<typename v1 , typename v2 >
static constexpr bool eq_v = eq_t<v1, v2>::value
 equality operator yields v1 == v2 as boolean value
 
template<typename v >
static constexpr bool pos_v = pos_t<v>::value
 positivity yields v > 0 as boolean value
 

Detailed Description

64 bits signed integers, seen as a algebraic ring with related operations

Member Typedef Documentation

◆ add_t

template<typename v1 , typename v2 >
using aerobus::i64::add_t = typename add<v1, v2>::type

addition operator

Template Parameters
v1: an element of aerobus::i64::val
v2: an element of aerobus::i64::val

◆ div_t

template<typename v1 , typename v2 >
using aerobus::i64::div_t = typename div<v1, v2>::type

division operator integer division

Template Parameters
v1: an element of aerobus::i64::val
v2: an element of aerobus::i64::val

◆ eq_t

template<typename v1 , typename v2 >
using aerobus::i64::eq_t = typename eq<v1, v2>::type

equality operator yields v1 == v2 as std::true_type or std::false_type

Template Parameters
v1: an element of aerobus::i64::val
v2: an element of aerobus::i64::val

◆ gcd_t

template<typename v1 , typename v2 >
using aerobus::i64::gcd_t = gcd_t<i64, v1, v2>

greatest common divisor yields GCD(v1, v2) as instanciation of i64::val

Template Parameters
v1: an element of aerobus::i64::val
v2: an element of aerobus::i64::val

◆ gt_t

template<typename v1 , typename v2 >
using aerobus::i64::gt_t = typename gt<v1, v2>::type

strictly greater operator yields v1 > v2 as std::true_type or std::false_type

Template Parameters
v1: an element of aerobus::i64::val
v2: an element of aerobus::i64::val

◆ inject_constant_t

template<auto x>
using aerobus::i64::inject_constant_t = val<static_cast<int64_t>(x)>

injects constant as an i64 value

Template Parameters
x

◆ inject_ring_t

template<typename v >
using aerobus::i64::inject_ring_t = v

injects a value used for internal consistency and quotient rings implementations for example i64::inject_ring_t<i64::val<1>> -> i64::val<1>

Template Parameters
va value in i64

◆ inner_type

using aerobus::i64::inner_type = int64_t

type of represented values

◆ lt_t

template<typename v1 , typename v2 >
using aerobus::i64::lt_t = typename lt<v1, v2>::type

strict less operator yields v1 < v2 as std::true_type or std::false_type

Template Parameters
v1: an element of aerobus::i64::val
v2: an element of aerobus::i64::val

◆ mod_t

template<typename v1 , typename v2 >
using aerobus::i64::mod_t = typename remainder<v1, v2>::type

modulus operator

Template Parameters
v1: an element of aerobus::i64::val
v2: an element of aerobus::i64::val

◆ mul_t

template<typename v1 , typename v2 >
using aerobus::i64::mul_t = typename mul<v1, v2>::type

multiplication operator

Template Parameters
v1: an element of aerobus::i64::val
v2: an element of aerobus::i64::val

◆ one

using aerobus::i64::one = val<1>

constant one

◆ pos_t

template<typename v >
using aerobus::i64::pos_t = typename pos<v>::type

is v posititive yields v > 0 as std::true_type or std::false_type

Template Parameters
v1: an element of aerobus::i64::val

◆ sub_t

template<typename v1 , typename v2 >
using aerobus::i64::sub_t = typename sub<v1, v2>::type

substraction operator

Template Parameters
v1: an element of aerobus::i64::val
v2: an element of aerobus::i64::val

◆ zero

using aerobus::i64::zero = val<0>

constant zero

Member Data Documentation

◆ eq_v

template<typename v1 , typename v2 >
constexpr bool aerobus::i64::eq_v = eq_t<v1, v2>::value
staticconstexpr

equality operator yields v1 == v2 as boolean value

Template Parameters
v1: an element of aerobus::i64::val
v2: an element of aerobus::i64::val

◆ gt_v

template<typename v1 , typename v2 >
constexpr bool aerobus::i64::gt_v = gt_t<v1, v2>::value
staticconstexpr

strictly greater operator yields v1 > v2 as boolean value

Template Parameters
v1: an element of aerobus::i64::val
v2: an element of aerobus::i64::val

◆ is_euclidean_domain

constexpr bool aerobus::i64::is_euclidean_domain = true
staticconstexpr

integers are an euclidean domain

◆ is_field

constexpr bool aerobus::i64::is_field = false
staticconstexpr

integers are not a field

◆ lt_v

template<typename v1 , typename v2 >
constexpr bool aerobus::i64::lt_v = lt_t<v1, v2>::value
staticconstexpr

strictly smaller operator yields v1 < v2 as boolean value

Template Parameters
v1: an element of aerobus::i64::val
v2: an element of aerobus::i64::val

◆ pos_v

template<typename v >
constexpr bool aerobus::i64::pos_v = pos_t<v>::value
staticconstexpr

positivity yields v > 0 as boolean value

Template Parameters
v: an element of aerobus::i64::val

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