|
Graph Framework
|
Class signature to implement compute backends. More...
#include <algorithm>#include <vector>#include <cmath>#include "special_functions.hpp"#include "register.hpp"Go to the source code of this file.
Classes | |
| class | backend::buffer< T > |
| Class representing a generic buffer. More... | |
Namespaces | |
| namespace | backend |
| Name space for backend buffers. | |
Macros | |
| #define | apply_op(op) |
| Applies an operation over all elements in the buffer. | |
| #define | row_op(opp, oppeq) |
| Applies an operator along a row. | |
| #define | col_op(opp, oppeq) |
| Applies an operator along a column. | |
| #define | row_fn(fn) |
| Applies a function along a row. | |
| #define | col_fn(fn) |
| Applies a function along a column. | |
| #define | logic_is(op) |
| Applies a logical is operator. | |
| #define | build_assoc_func(func) |
| Applies an associative function. | |
| #define | build_assoc_op(op) |
| Applies an associative operator. | |
| #define | build_non_assoc_op(op, opeq) |
| Applies a non-associative operator. | |
| #define | build_assoc_func(func) |
| Applies an associative function. | |
| #define | logic_op(op) |
| Applies a logical operator. | |
| #define | branch_fn(fn) |
| Applies a function with two operands. | |
Functions | |
| template<jit::float_scalar T> | |
| bool | backend::operator== (const buffer< T > &a, const buffer< T > &b) |
| Equal operation. | |
| template<jit::float_scalar T> | |
| buffer< T > | backend::max (buffer< T > &a, buffer< T > &b) |
| Max operation. | |
| template<jit::float_scalar T> | |
| buffer< T > | backend::min (buffer< T > &a, buffer< T > &b) |
| Min operation. | |
| template<jit::float_scalar T> | |
| buffer< T > | backend::operator+ (buffer< T > &a, buffer< T > &b) |
| Add operation. | |
| template<jit::float_scalar T> | |
| buffer< T > | backend::operator- (buffer< T > &a, buffer< T > &b) |
| Subtract operation. | |
| template<jit::float_scalar T> | |
| buffer< T > | backend::operator* (buffer< T > &a, buffer< T > &b) |
| Multiply operation. | |
| template<jit::float_scalar T> | |
| buffer< T > | backend::operator/ (buffer< T > &a, buffer< T > &b) |
| Divide operation. | |
| template<std::floating_point T> | |
| buffer< T > | backend::hypot (buffer< T > &a, buffer< T > &b) |
| hypot operation. | |
| template<jit::float_scalar T> | |
| buffer< T > | backend::fma (buffer< T > &a, buffer< T > &b, buffer< T > &c) |
| Fused multiply add operation. | |
| template<std::floating_point T> | |
| buffer< T > | backend::operator% (buffer< T > &a, buffer< T > &b) |
| Modulo operation. | |
| template<jit::float_scalar T> | |
| buffer< T > | backend::operator== (buffer< T > &a, buffer< T > &b) |
| Equal operation. | |
| template<jit::float_scalar T> | |
| buffer< T > | backend::operator!= (buffer< T > &a, buffer< T > &b) |
| Not equal operation. | |
| template<std::floating_point T> | |
| buffer< T > | backend::operator> (buffer< T > &a, buffer< T > &b) |
| Greater than operation. | |
| template<std::floating_point T> | |
| buffer< T > | backend::operator< (buffer< T > &a, buffer< T > &b) |
| Less than operation. | |
| template<std::floating_point T> | |
| buffer< T > | backend::operator>= (buffer< T > &a, buffer< T > &b) |
| Greater than equal operation. | |
| template<std::floating_point T> | |
| buffer< T > | backend::operator<= (buffer< T > &a, buffer< T > &b) |
| Less than equal operation. | |
| template<std::floating_point T> | |
| buffer< T > | backend::operator&& (buffer< T > &a, buffer< T > &b) |
| And operation. | |
| template<std::floating_point T> | |
| buffer< T > | backend::operator|| (buffer< T > &a, buffer< T > &b) |
| Or operation. | |
| template<jit::float_scalar T> | |
| buffer< T > | backend::pow (buffer< T > &base, buffer< T > &exponent) |
| Take the power. | |
| template<jit::float_scalar T> | |
| buffer< T > | backend::atan (buffer< T > &x, buffer< T > &y) |
| Take the inverse tangent. | |
| template<std::floating_point T> | |
| buffer< T > | backend::copysign (buffer< T > &x, buffer< T > &y) |
| Copy the sign of x and apply it to y. | |
Class signature to implement compute backends.
Defined the function interfaces to access compute resources.
| #define apply_op | ( | op | ) |
Applies an operation over all elements in the buffer.
| op | The operation to apply. |
| #define branch_fn | ( | fn | ) |
Applies a function with two operands.
| op | The operation to apply. |
| #define build_assoc_func | ( | func | ) |
Applies an associative function.
| op | The operation to apply. |
| func | The function to apply. |
| #define build_assoc_func | ( | func | ) |
Applies an associative function.
| op | The operation to apply. |
| func | The function to apply. |
| #define build_assoc_op | ( | op | ) |
Applies an associative operator.
| op | The operation to apply. |
| #define build_non_assoc_op | ( | op, | |
| opeq | |||
| ) |
Applies a non-associative operator.
| op | The operation to apply. |
| opeq | The assign operation to apply. |
| #define col_fn | ( | fn | ) |
Applies a function along a column.
| fn | The function to apply. |
| #define col_op | ( | opp, | |
| oppeq | |||
| ) |
Applies an operator along a column.
| opp | The operation to apply. |
| oppeq | The assignment operator to apply. |
| #define logic_is | ( | op | ) |
Applies a logical is operator.
| op | The operation to apply. |
| #define logic_op | ( | op | ) |
Applies a logical operator.
| op | The operation to apply. |
| #define row_fn | ( | fn | ) |
Applies a function along a row.
| fn | The function to apply. |
| #define row_op | ( | opp, | |
| oppeq | |||
| ) |
Applies an operator along a row.
| opp | The operation to apply. |
| oppeq | The assignment operator to apply. |