MyraMath
logical.h
Go to the documentation of this file.
1 // This file is part of MyraMath, copyright (c) 2014-2019 by Ryan A Chilton //
2 // and distributed by MyraCore, LLC. See LICENSE.txt for license terms. //
3 // ========================================================================= //
4 
5 #ifndef MYRAMATH_EXPRESSION_LOGICAL_H
6 #define MYRAMATH_EXPRESSION_LOGICAL_H
7 
13 #include <myramath/MYRAMATH_EXPORT.h>
15 
16 namespace myra {
17 
18 // Forward declarations.
19 template<int Arity, class Number> class Expression;
20 
21 // ---------------------------------- operator<
22 
24 MYRAMATH_EXPORT Expression<1,bool> operator< (const Expression<1,NumberS>& A, const Expression<1,NumberS>& B);
26 MYRAMATH_EXPORT Expression<1,bool> operator< (const Expression<1,NumberD>& A, const Expression<1,NumberD>& B);
27 MYRAMATH_EXPORT Expression<2,bool> operator< (const Expression<2,NumberS>& A, const Expression<2,NumberS>& B);
28 MYRAMATH_EXPORT Expression<2,bool> operator< (const Expression<2,NumberD>& A, const Expression<2,NumberD>& B);
30 
32 MYRAMATH_EXPORT Expression<1,bool> operator< (const Expression<1,NumberS>& A, NumberS b);
34 MYRAMATH_EXPORT Expression<1,bool> operator< (const Expression<1,NumberD>& A, NumberD b);
35 MYRAMATH_EXPORT Expression<2,bool> operator< (const Expression<2,NumberS>& A, NumberS b);
36 MYRAMATH_EXPORT Expression<2,bool> operator< (const Expression<2,NumberD>& A, NumberD b);
38 
40 MYRAMATH_EXPORT Expression<1,bool> operator< (NumberS a, const Expression<1,NumberS>& B);
42 MYRAMATH_EXPORT Expression<1,bool> operator< (NumberD a, const Expression<1,NumberD>& B);
43 MYRAMATH_EXPORT Expression<2,bool> operator< (NumberS a, const Expression<2,NumberS>& B);
44 MYRAMATH_EXPORT Expression<2,bool> operator< (NumberD a, const Expression<2,NumberD>& B);
46 
47 // ---------------------------------- operator>
48 
50 MYRAMATH_EXPORT Expression<1,bool> operator> (const Expression<1,NumberS>& A, const Expression<1,NumberS>& B);
52 MYRAMATH_EXPORT Expression<1,bool> operator> (const Expression<1,NumberD>& A, const Expression<1,NumberD>& B);
53 MYRAMATH_EXPORT Expression<2,bool> operator> (const Expression<2,NumberS>& A, const Expression<2,NumberS>& B);
54 MYRAMATH_EXPORT Expression<2,bool> operator> (const Expression<2,NumberD>& A, const Expression<2,NumberD>& B);
56 
58 MYRAMATH_EXPORT Expression<1,bool> operator> (const Expression<1,NumberS>& A, NumberS b);
60 MYRAMATH_EXPORT Expression<1,bool> operator> (const Expression<1,NumberD>& A, NumberD b);
61 MYRAMATH_EXPORT Expression<2,bool> operator> (const Expression<2,NumberS>& A, NumberS b);
62 MYRAMATH_EXPORT Expression<2,bool> operator> (const Expression<2,NumberD>& A, NumberD b);
64 
66 MYRAMATH_EXPORT Expression<1,bool> operator> (NumberS a, const Expression<1,NumberS>& B);
68 MYRAMATH_EXPORT Expression<1,bool> operator> (NumberD a, const Expression<1,NumberD>& B);
69 MYRAMATH_EXPORT Expression<2,bool> operator> (NumberS a, const Expression<2,NumberS>& B);
70 MYRAMATH_EXPORT Expression<2,bool> operator> (NumberD a, const Expression<2,NumberD>& B);
72 
73 // ---------------------------------- operator&&
74 
76 MYRAMATH_EXPORT Expression<1,bool> operator&& (const Expression<1,bool>& A, const Expression<1,bool>& B);
78 MYRAMATH_EXPORT Expression<2,bool> operator&& (const Expression<2,bool>& A, const Expression<2,bool>& B);
80 
81 // ---------------------------------- operator||
82 
84 MYRAMATH_EXPORT Expression<1,bool> operator|| (const Expression<1,bool>& A, const Expression<1,bool>& B);
86 MYRAMATH_EXPORT Expression<2,bool> operator|| (const Expression<2,bool>& A, const Expression<2,bool>& B);
88 
89 // ---------------------------------- operator!
90 
92 MYRAMATH_EXPORT Expression<1,bool> operator! (const Expression<1,bool>& A);
94 MYRAMATH_EXPORT Expression<2,bool> operator! (const Expression<2,bool>& A);
96 
97 // ---------------------------------- ternary function
98 
100 MYRAMATH_EXPORT Expression<1,NumberS> ternary (const Expression<1,bool>& A, const Expression<1,NumberS>& B, const Expression<1,NumberS>& C);
102 MYRAMATH_EXPORT Expression<1,NumberD> ternary (const Expression<1,bool>& A, const Expression<1,NumberD>& B, const Expression<1,NumberD>& C);
103 MYRAMATH_EXPORT Expression<1,NumberC> ternary (const Expression<1,bool>& A, const Expression<1,NumberC>& B, const Expression<1,NumberC>& C);
104 MYRAMATH_EXPORT Expression<1,NumberZ> ternary (const Expression<1,bool>& A, const Expression<1,NumberZ>& B, const Expression<1,NumberZ>& C);
105 MYRAMATH_EXPORT Expression<2,NumberS> ternary (const Expression<2,bool>& A, const Expression<2,NumberS>& B, const Expression<2,NumberS>& C);
106 MYRAMATH_EXPORT Expression<2,NumberD> ternary (const Expression<2,bool>& A, const Expression<2,NumberD>& B, const Expression<2,NumberD>& C);
107 MYRAMATH_EXPORT Expression<2,NumberC> ternary (const Expression<2,bool>& A, const Expression<2,NumberC>& B, const Expression<2,NumberC>& C);
108 MYRAMATH_EXPORT Expression<2,NumberZ> ternary (const Expression<2,bool>& A, const Expression<2,NumberZ>& B, const Expression<2,NumberZ>& C);
110 
111 // ---------------------------------- equals function
112 
114 MYRAMATH_EXPORT bool equals(const Expression<1,bool>& A, const Expression<1,bool>& B);
116 MYRAMATH_EXPORT bool equals(const Expression<2,bool>& A, const Expression<2,bool>& B);
118 
119 } // namespace myra
120 
121 #endif
Definition: syntax.dox:1
Various utility functions/classes related to scalar Number types.