cMHN 1.2
C++ library for learning MHNs with pRC
Loading...
Searching...
No Matches
not_equal.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSD-2-Clause
2
3#ifndef pRC_CORE_BASIC_FUNCTIONS_NOT_EQUAL_H
4#define pRC_CORE_BASIC_FUNCTIONS_NOT_EQUAL_H
5
10
11namespace pRC
12{
13 template<class X, template<class> class T>
14 requires IsSame<T<Void>, Identity<>> || IsSame<T<Void>, Unit<>> ||
15 IsSame<T<Void>, Zero<>>
16 static inline constexpr auto operator!=(X &&a, T<Void> const)
17 {
18 return forward<X>(a) != T<RemoveReference<X>>()();
19 }
20
21 template<class X, template<class> class T>
22 requires IsSame<T<Void>, Identity<>> || IsSame<T<Void>, Unit<>> ||
23 IsSame<T<Void>, Zero<>>
24 static inline constexpr auto operator!=(T<Void> const, X &&b)
25 {
26 return T<RemoveReference<X>>()() != forward<X>(b);
27 }
28
29 template<template<class> class TA, template<class> class TB>
30 requires((IsSame<TA<Void>, Identity<>> || IsSame<TA<Void>, Unit<>> ||
31 IsSame<TA<Void>, Zero<>>) &&
32 (IsSame<TB<Void>, Identity<>> || IsSame<TB<Void>, Unit<>> ||
33 IsSame<TB<Void>, Zero<>>))
34 static inline constexpr auto operator!=(TA<Void> const, TB<Void> const)
35 {
36 return TA<Size>()() != TB<Size>()();
37 }
38}
39#endif // pRC_CORE_BASIC_FUNCTIONS_NOT_EQUAL_H
Definition value.hpp:12
Definition cholesky.hpp:10
static constexpr auto operator!=(JacobiRotation< TA > const &a, JacobiRotation< TB > const &b)
Definition jacobi_rotation.hpp:291