18#ifndef COMPARISONS_HPP
19#define COMPARISONS_HPP
83template<
class Criteria, Expression First, Expression Second>
102 throw Exception(
"Cannot compare tensors of different shape");
117 constexpr std::ptrdiff_t
offset()
const {
122 Tensor result(
boolean, shape_, strides_, 0);
158template<Expression First, Expression Second>
163template<Expression First, Expression Second>
168template<Expression First, Expression Second>
173template<Expression First, Expression Second>
178template<Expression First, Expression Second>
183template<Expression First, Expression Second>
213using expression::operator==;
214using expression::operator!=;
215using expression::operator<;
216using expression::operator<=;
217using expression::operator>;
218using expression::operator>=;
A simple generic exception type for the Tannic Tensor Library.
Definition: exceptions.hpp:44
Represents the shape (dimensions) of an tensor-like expression.
Definition: shape.hpp:79
Represents the memory strides associated with a tensor shape.
Definition: strides.hpp:87
A multidimensional, strided tensor data structure.
Definition: tensor.hpp:99
Expression template for element-wise tensor comparisons.
Definition: comparisons.hpp:84
constexpr Strides const & strides() const
Definition: comparisons.hpp:113
Tensor forward() const
Definition: comparisons.hpp:121
constexpr type dtype() const
Definition: comparisons.hpp:105
Trait< First >::Reference first
Definition: comparisons.hpp:87
constexpr std::ptrdiff_t offset() const
Definition: comparisons.hpp:117
Criteria criteria
Definition: comparisons.hpp:86
constexpr Shape const & shape() const
Definition: comparisons.hpp:109
constexpr Comparison(Criteria criteria, typename Trait< First >::Reference first, typename Trait< Second >::Reference second)
Constructs a comparison expression.
Definition: comparisons.hpp:94
Trait< Second >::Reference second
Definition: comparisons.hpp:88
Definition: comparisons.hpp:69
constexpr auto operator==(First &&lhs, Second &&rhs)
Definition: comparisons.hpp:159
constexpr auto operator>=(First &&lhs, Second &&rhs)
Definition: comparisons.hpp:184
constexpr auto operator!=(First &&lhs, Second &&rhs)
Definition: comparisons.hpp:164
constexpr auto operator>(First &&lhs, Second &&rhs)
Definition: comparisons.hpp:179
constexpr auto operator<=(First &&lhs, Second &&rhs)
Definition: comparisons.hpp:174
bool allclose(Tensor const &first, Tensor const &second, double rtol=1e-5f, double atol=1e-8f)
Determine whether two tensors are element-wise equal within a tolerance.
constexpr auto operator<(First &&lhs, Second &&rhs)
Definition: comparisons.hpp:169
Definition: buffer.hpp:41
std::decay_t< T > Reference
Definition: traits.hpp:28
Definition: comparisons.hpp:134
void forward(Tensor const &, Tensor const &, Tensor &) const
Definition: comparisons.hpp:146
void forward(Tensor const &, Tensor const &, Tensor &) const
Definition: comparisons.hpp:142
void forward(Tensor const &, Tensor const &, Tensor &) const
Definition: comparisons.hpp:154
void forward(Tensor const &, Tensor const &, Tensor &) const
Definition: comparisons.hpp:150
void forward(Tensor const &, Tensor const &, Tensor &) const
Definition: comparisons.hpp:138
void forward(Tensor const &, Tensor const &, Tensor &) const