Thorin 1.9.0
The Higher ORder INtermediate representation
Loading...
Searching...
No Matches
math.h File Reference
#include <thorin/axiom.h>
#include <thorin/world.h>
#include "thorin/plug/math/autogen.h"
Include dependency graph for math.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  thorin
 
namespace  thorin::plug
 
namespace  thorin::plug::math
 The math Plugin
 

Functions

%math.F
Ref thorin::plug::math::type_f (Ref pe)
 
Ref thorin::plug::math::type_f (World &w, nat_t p, nat_t e)
 
template<nat_t P, nat_t E>
auto thorin::plug::math::match_f (Ref def)
 
auto thorin::plug::math::match_f16 (Ref def)
 
auto thorin::plug::math::match_f32 (Ref def)
 
auto thorin::plug::math::match_f64 (Ref def)
 
std::optional< nat_tthorin::plug::math::isa_f (Ref def)
 
template<class R >
const Litthorin::plug::math::lit_f (World &w, R val)
 
const Litthorin::plug::math::lit_f (World &w, nat_t width, thorin::f64 val)
 
%math.arith
Ref thorin::plug::math::op_rminus (VMode m, Ref a)
 
is_commutative/is_associative
constexpr bool thorin::is_commutative (plug::math::extrema)
 
constexpr bool thorin::is_commutative (plug::math::arith id)
 
constexpr bool thorin::is_commutative (plug::math::cmp id)
 
constexpr bool thorin::is_associative (plug::math::arith id)
 

Mode

enum class  thorin::plug::math::Mode : nat_t {
  thorin::plug::math::top = 0 ,
  thorin::plug::math::none = top ,
  thorin::plug::math::nnan = 1 << 0 ,
  thorin::plug::math::ninf = 1 << 1 ,
  thorin::plug::math::nsz = 1 << 2 ,
  thorin::plug::math::arcp = 1 << 3 ,
  thorin::plug::math::contract = 1 << 4 ,
  thorin::plug::math::afn = 1 << 5 ,
  thorin::plug::math::reassoc = 1 << 6 ,
  thorin::plug::math::finite = nnan | ninf ,
  thorin::plug::math::unsafe = nsz | arcp | reassoc ,
  thorin::plug::math::fast ,
  thorin::plug::math::bot = fast
}
 Allowed optimizations for a specific operation. More...
 
using thorin::plug::math::VMode = std::variant< Mode, nat_t, Ref >
 Give Mode as thorin::plug::math::Mode, thorin::nat_t or Ref.
 
Ref thorin::plug::math::mode (World &w, VMode m)
 thorin::plug::math::VMode -> Ref.