Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
Var.h File Reference
#include "proteus/Error.h"
#include "proteus/Frontend/CodeBuilder.h"
#include "proteus/Frontend/TypeMap.h"
#include "proteus/Frontend/TypeTraits.h"
#include <string>
#include <type_traits>
#include <vector>
Include dependency graph for Var.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  proteus::Var< T, std::enable_if_t< is_scalar_arithmetic_v< T > > >
 
struct  proteus::Var< T, std::enable_if_t< std::is_array_v< T > > >
 
struct  proteus::Var< T, std::enable_if_t< is_pointer_unref_v< T > > >
 
struct  proteus::IntrinsicOperandConverter< T >
 

Namespaces

namespace  proteus
 
namespace  proteus::detail
 

Functions

template<typename T , typename U >
std::enable_if_t< std::is_arithmetic_v< T > &&std::is_arithmetic_v< U >, Var< std::common_type_t< T, U > > > proteus::operator+ (const T &ConstValue, const Var< U > &Var)
 
template<typename T , typename U >
std::enable_if_t< std::is_arithmetic_v< T > &&std::is_arithmetic_v< U >, Var< std::common_type_t< T, U > > > proteus::operator- (const T &ConstValue, const Var< U > &V)
 
template<typename T , typename U >
std::enable_if_t< std::is_arithmetic_v< T > &&std::is_arithmetic_v< U >, Var< std::common_type_t< T, U > > > proteus::operator* (const T &ConstValue, const Var< U > &V)
 
template<typename T , typename U >
std::enable_if_t< std::is_arithmetic_v< T > &&std::is_arithmetic_v< U >, Var< std::common_type_t< T, U > > > proteus::operator/ (const T &ConstValue, const Var< U > &V)
 
template<typename T , typename U >
std::enable_if_t< std::is_arithmetic_v< T > &&std::is_arithmetic_v< U >, Var< std::common_type_t< T, U > > > proteus::operator% (const T &ConstValue, const Var< U > &V)
 
template<typename FromT , typename ToT >
IRValueproteus::detail::convert (CodeBuilder &CB, IRValue *V)
 
template<typename T >
Var< T > proteus::declVar (CodeBuilder &CB, const std::string &Name="var")
 
template<typename T >
Var< T > proteus::defVar (CodeBuilder &CB, const T &Val, const std::string &Name="var")
 
template<typename T , typename U >
Var< std::common_type_t< remove_cvref_t< T >, remove_cvref_t< U > > > proteus::binOp (const Var< T > &L, const Var< U > &R, ArithOp Op)
 
template<typename T , typename U >
Var< T, std::enable_if_t< is_scalar_arithmetic_v< T > > > & proteus::compoundAssignConst (Var< T, std::enable_if_t< is_scalar_arithmetic_v< T > > > &LHS, const U &ConstValue, ArithOp Op)
 
template<typename T , typename U >
Var< bool > proteus::cmpOp (const Var< T > &L, const Var< U > &R, CmpOp Op)
 
template<typename T >
Var< float > proteus::powf (const Var< float > &L, const Var< T > &R)
 
template<typename T >
Var< float > proteus::sqrtf (const Var< T > &R)
 
template<typename T >
Var< float > proteus::expf (const Var< T > &R)
 
template<typename T >
Var< float > proteus::sinf (const Var< T > &R)
 
template<typename T >
Var< float > proteus::cosf (const Var< T > &R)
 
template<typename T >
Var< float > proteus::fabs (const Var< T > &R)
 
template<typename T >
Var< float > proteus::truncf (const Var< T > &R)
 
template<typename T >
Var< float > proteus::logf (const Var< T > &R)
 
template<typename T >
Var< float > proteus::absf (const Var< T > &R)
 
template<typename T >
std::enable_if_t< is_arithmetic_unref_v< T >, Var< remove_cvref_t< T > > > proteus::min (const Var< T > &L, const Var< T > &R)
 
template<typename T >
std::enable_if_t< is_arithmetic_unref_v< T >, Var< remove_cvref_t< T > > > proteus::max (const Var< T > &L, const Var< T > &R)