Aerobus v1.2
|
32 bits signed integers, seen as a algebraic ring with related operations More...
#include <aerobus.h>
Classes | |
struct | val |
values in i32, again represented as types More... | |
Public Types | |
using | inner_type = int32_t |
using | zero = val< 0 > |
constant zero | |
using | one = val< 1 > |
constant one | |
template<auto x> | |
using | inject_constant_t = val< static_cast< int32_t >(x)> |
inject a native constant | |
template<typename v > | |
using | inject_ring_t = v |
template<typename v1 , typename v2 > | |
using | add_t = typename add< v1, v2 >::type |
addition operator yields v1 + v2 | |
template<typename v1 , typename v2 > | |
using | sub_t = typename sub< v1, v2 >::type |
substraction operator yields v1 - v2 | |
template<typename v1 , typename v2 > | |
using | mul_t = typename mul< v1, v2 >::type |
multiplication operator yields v1 * v2 | |
template<typename v1 , typename v2 > | |
using | div_t = typename div< v1, v2 >::type |
division operator yields v1 / v2 | |
template<typename v1 , typename v2 > | |
using | mod_t = typename remainder< v1, v2 >::type |
modulus operator yields v1 % v2 | |
template<typename v1 , typename v2 > | |
using | gt_t = typename gt< v1, v2 >::type |
strictly greater operator (v1 > v2) yields v1 > v2 | |
template<typename v1 , typename v2 > | |
using | lt_t = typename lt< v1, v2 >::type |
strict less operator (v1 < v2) yields v1 < v2 | |
template<typename v1 , typename v2 > | |
using | eq_t = typename eq< v1, v2 >::type |
equality operator (type) yields v1 == v2 as std::integral_constant<bool> | |
template<typename v1 , typename v2 > | |
using | gcd_t = gcd_t< i32, v1, v2 > |
greatest common divisor yields GCD(v1, v2) | |
template<typename v > | |
using | pos_t = typename pos< v >::type |
positivity operator 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 | eq_v = eq_t<v1, v2>::value |
equality operator (boolean value) | |
template<typename v > | |
static constexpr bool | pos_v = pos_t<v>::value |
positivity (boolean value) yields v > 0 as boolean value | |
32 bits signed integers, seen as a algebraic ring with related operations
using aerobus::i32::add_t = typename add<v1, v2>::type |
using aerobus::i32::div_t = typename div<v1, v2>::type |
using aerobus::i32::eq_t = typename eq<v1, v2>::type |
using aerobus::i32::gcd_t = gcd_t<i32, v1, v2> |
using aerobus::i32::gt_t = typename gt<v1, v2>::type |
using aerobus::i32::inject_constant_t = val<static_cast<int32_t>(x)> |
inject a native constant
x |
using aerobus::i32::inject_ring_t = v |
using aerobus::i32::inner_type = int32_t |
using aerobus::i32::lt_t = typename lt<v1, v2>::type |
using aerobus::i32::mod_t = typename remainder<v1, v2>::type |
using aerobus::i32::mul_t = typename mul<v1, v2>::type |
using aerobus::i32::one = val<1> |
constant one
using aerobus::i32::pos_t = typename pos<v>::type |
positivity operator yields v > 0 as std::true_type or std::false_type
v | a value in i32 |
using aerobus::i32::sub_t = typename sub<v1, v2>::type |
using aerobus::i32::zero = val<0> |
constant zero
|
staticconstexpr |
equality operator (boolean value)
v1 | |
v2 |
|
staticconstexpr |
integers are an euclidean domain
|
staticconstexpr |
integers are not a field
|
staticconstexpr |
positivity (boolean value) yields v > 0 as boolean value
v | a value in i32 |