1#ifndef TATAMI_ISOMETRIC_UNARY_COMPARE_HELPERS_H
2#define TATAMI_ISOMETRIC_UNARY_COMPARE_HELPERS_H
4#include "../compare_utils.hpp"
19template<CompareOperation op_,
typename InputValue_,
typename Index_,
typename OutputValue_>
22 if constexpr(std::is_same<InputValue_, OutputValue_>::value) {
31template<CompareOperation op_,
typename InputValue_>
49template<CompareOperation op_,
typename InputValue_>
68 static constexpr bool is_basic =
false;
70 bool is_sparse()
const {
81 template<
typename Index_,
typename OutputValue_>
86 template<
typename Index_,
typename OutputValue_>
91 template<
typename Index_,
typename OutputValue_>
96 template<
typename OutputValue_,
typename,
typename Index_>
116template<CompareOperation op_,
typename InputValue_,
typename Vector_>
128 for (
auto x : my_vector) {
139 bool my_sparse =
true;
145 static constexpr bool is_basic =
false;
147 bool zero_depends_on_row()
const {
151 bool zero_depends_on_column()
const {
155 bool non_zero_depends_on_row()
const {
159 bool non_zero_depends_on_column()
const {
163 bool is_sparse()
const {
174 template<
typename Index_,
typename OutputValue_>
176 if (
row == my_by_row) {
180 if constexpr(std::is_same<InputValue_, OutputValue_>::value) {
190 template<
typename Index_,
typename OutputValue_>
192 if (
row == my_by_row) {
197 if constexpr(std::is_same<InputValue_, OutputValue_>::value) {
207 template<
typename Index_,
typename OutputValue_>
209 if (
row == my_by_row) {
213 if constexpr(std::is_same<InputValue_, OutputValue_>::value) {
223 template<
typename OutputValue_,
typename,
typename Index_>
225 if (
row == my_by_row) {
244template<
typename InputValue_ =
double>
255template<
typename InputValue_ =
double>
266template<
typename InputValue_ =
double>
277template<
typename InputValue_ =
double>
288template<
typename InputValue_ =
double>
299template<
typename InputValue_ =
double>
312template<
typename InputValue_ =
double,
typename Vector_>
325template<
typename InputValue_ =
double,
typename Vector_>
338template<
typename InputValue_ =
double,
typename Vector_>
351template<
typename InputValue_ =
double,
typename Vector_>
364template<
typename InputValue_ =
double,
typename Vector_>
377template<
typename InputValue_ =
double,
typename Vector_>
385template<SpecialCompareOperation op_,
bool pass_,
typename InputValue_,
typename Index_>
393template<SpecialCompareOperation op_,
bool pass_,
typename InputValue_,
typename Index_,
typename OutputValue_>
400template<SpecialCompareOperation op_,
bool pass_,
typename InputValue_>
419template<SpecialCompareOperation op_,
bool pass_,
typename InputValue_>
433 static constexpr bool is_basic =
false;
435 bool is_sparse()
const {
446 template<
typename Index_>
451 template<
typename Index_,
typename OutputValue_>
456 template<
typename Index_>
461 template<
typename Index_,
typename OutputValue_>
466 template<
typename Index_>
471 template<
typename Index_,
typename OutputValue_>
476 template<
typename OutputValue_,
typename,
typename Index_>
491template<
bool pass_ = true,
typename InputValue_ =
double>
502template<
bool pass_ = true,
typename InputValue_ =
double>
513template<
bool pass_ = true,
typename InputValue_ =
double>
Delayed scalar comparison.
Definition compare_helpers.hpp:50
DelayedUnaryIsometricCompareScalar(InputValue_ scalar)
Definition compare_helpers.hpp:56
Delayed vector comparisons.
Definition compare_helpers.hpp:117
DelayedUnaryIsometricCompareVector(Vector_ vector, bool by_row)
Definition compare_helpers.hpp:127
Delayed special value comparison.
Definition compare_helpers.hpp:420
Flexible representations for matrix data.
Definition Extractor.hpp:15
DelayedUnaryIsometricCompareScalar< CompareOperation::LESS_THAN, InputValue_ > make_DelayedUnaryIsometricLessThanScalar(InputValue_ scalar)
Definition compare_helpers.hpp:267
DelayedUnaryIsometricCompareVector< CompareOperation::NOT_EQUAL, InputValue_, Vector_ > make_DelayedUnaryIsometricNotEqualVector(Vector_ vector, bool by_row)
Definition compare_helpers.hpp:378
DelayedUnaryIsometricCompareVector< CompareOperation::LESS_THAN, InputValue_, Vector_ > make_DelayedUnaryIsometricLessThanVector(Vector_ vector, bool by_row)
Definition compare_helpers.hpp:339
DelayedUnaryIsometricSpecialCompare< SpecialCompareOperation::ISINF, pass_, InputValue_ > make_DelayedUnaryIsometricIsinf()
Definition compare_helpers.hpp:503
DelayedUnaryIsometricSpecialCompare< SpecialCompareOperation::ISFINITE, pass_, InputValue_ > make_DelayedUnaryIsometricIsfinite()
Definition compare_helpers.hpp:514
DelayedUnaryIsometricCompareScalar< CompareOperation::NOT_EQUAL, InputValue_ > make_DelayedUnaryIsometricNotEqualScalar(InputValue_ scalar)
Definition compare_helpers.hpp:300
DelayedUnaryIsometricSpecialCompare< SpecialCompareOperation::ISNAN, pass_, InputValue_ > make_DelayedUnaryIsometricIsnan()
Definition compare_helpers.hpp:492
DelayedUnaryIsometricCompareVector< CompareOperation::EQUAL, InputValue_, Vector_ > make_DelayedUnaryIsometricEqualVector(Vector_ vector, bool by_row)
Definition compare_helpers.hpp:313
DelayedUnaryIsometricCompareScalar< CompareOperation::GREATER_THAN_OR_EQUAL, InputValue_ > make_DelayedUnaryIsometricGreaterThanOrEqualScalar(InputValue_ scalar)
Definition compare_helpers.hpp:278
DelayedUnaryIsometricCompareScalar< CompareOperation::GREATER_THAN, InputValue_ > make_DelayedUnaryIsometricGreaterThanScalar(InputValue_ scalar)
Definition compare_helpers.hpp:256
DelayedUnaryIsometricCompareScalar< CompareOperation::EQUAL, InputValue_ > make_DelayedUnaryIsometricEqualScalar(InputValue_ scalar)
Definition compare_helpers.hpp:245
DelayedUnaryIsometricCompareVector< CompareOperation::LESS_THAN_OR_EQUAL, InputValue_, Vector_ > make_DelayedUnaryIsometricLessThanOrEqualVector(Vector_ vector, bool by_row)
Definition compare_helpers.hpp:365
DelayedUnaryIsometricCompareScalar< CompareOperation::LESS_THAN_OR_EQUAL, InputValue_ > make_DelayedUnaryIsometricLessThanOrEqualScalar(InputValue_ scalar)
Definition compare_helpers.hpp:289
DelayedUnaryIsometricCompareVector< CompareOperation::GREATER_THAN_OR_EQUAL, InputValue_, Vector_ > make_DelayedUnaryIsometricGreaterThanOrEqualVector(Vector_ vector, bool by_row)
Definition compare_helpers.hpp:352
auto consecutive_extractor(const Matrix< Value_, Index_ > *mat, bool row, Index_ iter_start, Index_ iter_length, Args_ &&... args)
Definition consecutive_extractor.hpp:35
DelayedUnaryIsometricCompareVector< CompareOperation::GREATER_THAN, InputValue_, Vector_ > make_DelayedUnaryIsometricGreaterThanVector(Vector_ vector, bool by_row)
Definition compare_helpers.hpp:326