File indexing completed on 2024-05-12 17:21:06
0001 // SPDX-FileCopyrightText: 2001-2013 Evan Teran <evan.teran@gmail.com> 0002 // SPDX-License-Identifier: GPL-2.0-or-later 0003 0004 #include <config-kcalc.h> 0005 #include "knumber_operators.h" 0006 #include "knumber.h" 0007 #include "knumber_base.h" 0008 0009 //------------------------------------------------------------------------------ 0010 // Name: 0011 //------------------------------------------------------------------------------ 0012 KNumber operator+(const KNumber &lhs, const KNumber &rhs) { 0013 KNumber x(lhs); 0014 x += rhs; 0015 return x; 0016 } 0017 0018 //------------------------------------------------------------------------------ 0019 // Name: 0020 //------------------------------------------------------------------------------ 0021 KNumber operator-(const KNumber &lhs, const KNumber &rhs) { 0022 KNumber x(lhs); 0023 x -= rhs; 0024 return x; 0025 } 0026 0027 //------------------------------------------------------------------------------ 0028 // Name: 0029 //------------------------------------------------------------------------------ 0030 KNumber operator*(const KNumber &lhs, const KNumber &rhs) { 0031 KNumber x(lhs); 0032 x *= rhs; 0033 return x; 0034 } 0035 0036 //------------------------------------------------------------------------------ 0037 // Name: 0038 //------------------------------------------------------------------------------ 0039 KNumber operator/(const KNumber &lhs, const KNumber &rhs) { 0040 KNumber x(lhs); 0041 x /= rhs; 0042 return x; 0043 } 0044 0045 //------------------------------------------------------------------------------ 0046 // Name: 0047 //------------------------------------------------------------------------------ 0048 KNumber operator%(const KNumber &lhs, const KNumber &rhs) { 0049 KNumber x(lhs); 0050 x %= rhs; 0051 return x; 0052 } 0053 0054 //------------------------------------------------------------------------------ 0055 // Name: 0056 //------------------------------------------------------------------------------ 0057 KNumber operator&(const KNumber &lhs, const KNumber &rhs) { 0058 KNumber x(lhs); 0059 x &= rhs; 0060 return x; 0061 } 0062 0063 //------------------------------------------------------------------------------ 0064 // Name: 0065 //------------------------------------------------------------------------------ 0066 KNumber operator|(const KNumber &lhs, const KNumber &rhs) { 0067 KNumber x(lhs); 0068 x |= rhs; 0069 return x; 0070 } 0071 0072 //------------------------------------------------------------------------------ 0073 // Name: 0074 //------------------------------------------------------------------------------ 0075 KNumber operator^(const KNumber &lhs, const KNumber &rhs) { 0076 KNumber x(lhs); 0077 x ^= rhs; 0078 return x; 0079 } 0080 0081 //------------------------------------------------------------------------------ 0082 // Name: 0083 //------------------------------------------------------------------------------ 0084 KNumber operator>>(const KNumber &lhs, const KNumber &rhs) { 0085 KNumber x(lhs); 0086 x >>= rhs; 0087 return x; 0088 } 0089 0090 //------------------------------------------------------------------------------ 0091 // Name: 0092 //------------------------------------------------------------------------------ 0093 KNumber operator<<(const KNumber &lhs, const KNumber &rhs) { 0094 KNumber x(lhs); 0095 x <<= rhs; 0096 return x; 0097 } 0098 0099 //------------------------------------------------------------------------------ 0100 // Name: 0101 //------------------------------------------------------------------------------ 0102 KNumber abs(const KNumber &x) { 0103 return x.abs(); 0104 } 0105 0106 //------------------------------------------------------------------------------ 0107 // Name: 0108 //------------------------------------------------------------------------------ 0109 KNumber cbrt(const KNumber &x) { 0110 return x.cbrt(); 0111 } 0112 0113 //------------------------------------------------------------------------------ 0114 // Name: 0115 //------------------------------------------------------------------------------ 0116 KNumber sqrt(const KNumber &x) { 0117 return x.sqrt(); 0118 } 0119 0120 //------------------------------------------------------------------------------ 0121 // Name: 0122 //------------------------------------------------------------------------------ 0123 KNumber sin(const KNumber &x) { 0124 return x.sin(); 0125 } 0126 0127 //------------------------------------------------------------------------------ 0128 // Name: 0129 //------------------------------------------------------------------------------ 0130 KNumber cos(const KNumber &x) { 0131 return x.cos(); 0132 } 0133 0134 //------------------------------------------------------------------------------ 0135 // Name: 0136 //------------------------------------------------------------------------------ 0137 KNumber tan(const KNumber &x) { 0138 return x.tan(); 0139 } 0140 0141 0142 //------------------------------------------------------------------------------ 0143 // Name: 0144 //------------------------------------------------------------------------------ 0145 KNumber asin(const KNumber &x) { 0146 return x.asin(); 0147 } 0148 0149 //------------------------------------------------------------------------------ 0150 // Name: 0151 //------------------------------------------------------------------------------ 0152 KNumber acos(const KNumber &x) { 0153 return x.acos(); 0154 } 0155 0156 //------------------------------------------------------------------------------ 0157 // Name: 0158 //------------------------------------------------------------------------------ 0159 KNumber tgamma(const KNumber &x) { 0160 return x.tgamma(); 0161 } 0162 0163 //------------------------------------------------------------------------------ 0164 // Name: 0165 //------------------------------------------------------------------------------ 0166 KNumber atan(const KNumber &x) { 0167 return x.atan(); 0168 } 0169 0170 //------------------------------------------------------------------------------ 0171 // Name: 0172 //------------------------------------------------------------------------------ 0173 KNumber pow(const KNumber &x, const KNumber &y) { 0174 return x.pow(y); 0175 } 0176 0177 //------------------------------------------------------------------------------ 0178 // Name: 0179 //------------------------------------------------------------------------------ 0180 KNumber factorial(const KNumber &x) { 0181 return x.factorial(); 0182 } 0183 0184 //------------------------------------------------------------------------------ 0185 // Name: 0186 //------------------------------------------------------------------------------ 0187 KNumber log2(const KNumber &x) { 0188 return x.log2(); 0189 } 0190 0191 //------------------------------------------------------------------------------ 0192 // Name: 0193 //------------------------------------------------------------------------------ 0194 KNumber floor(const KNumber &x) { 0195 return x.floor(); 0196 } 0197 0198 //------------------------------------------------------------------------------ 0199 // Name: 0200 //------------------------------------------------------------------------------ 0201 KNumber ceil(const KNumber &x) { 0202 return x.ceil(); 0203 } 0204 0205 //------------------------------------------------------------------------------ 0206 // Name: 0207 //------------------------------------------------------------------------------ 0208 KNumber log10(const KNumber &x) { 0209 return x.log10(); 0210 } 0211 0212 //------------------------------------------------------------------------------ 0213 // Name: 0214 //------------------------------------------------------------------------------ 0215 KNumber ln(const KNumber &x) { 0216 return x.ln(); 0217 } 0218 0219 //------------------------------------------------------------------------------ 0220 // Name: 0221 //------------------------------------------------------------------------------ 0222 KNumber exp2(const KNumber &x) { 0223 return x.exp2(); 0224 } 0225 0226 //------------------------------------------------------------------------------ 0227 // Name: 0228 //------------------------------------------------------------------------------ 0229 KNumber exp10(const KNumber &x) { 0230 return x.exp10(); 0231 } 0232 0233 //------------------------------------------------------------------------------ 0234 // Name: 0235 //------------------------------------------------------------------------------ 0236 KNumber exp(const KNumber &x) { 0237 return x.exp(); 0238 } 0239 0240 //------------------------------------------------------------------------------ 0241 // Name: 0242 //------------------------------------------------------------------------------ 0243 bool operator==(const KNumber &lhs, const KNumber &rhs) { 0244 return lhs.value_->compare(rhs.value_) == 0; 0245 } 0246 0247 //------------------------------------------------------------------------------ 0248 // Name: 0249 //------------------------------------------------------------------------------ 0250 bool operator!=(const KNumber &lhs, const KNumber &rhs) { 0251 return lhs.value_->compare(rhs.value_) != 0; 0252 } 0253 0254 //------------------------------------------------------------------------------ 0255 // Name: 0256 //------------------------------------------------------------------------------ 0257 bool operator>=(const KNumber &lhs, const KNumber &rhs) { 0258 return lhs.value_->compare(rhs.value_) >= 0; 0259 } 0260 0261 //------------------------------------------------------------------------------ 0262 // Name: 0263 //------------------------------------------------------------------------------ 0264 bool operator<=(const KNumber &lhs, const KNumber &rhs) { 0265 return lhs.value_->compare(rhs.value_) <= 0; 0266 } 0267 0268 //------------------------------------------------------------------------------ 0269 // Name: 0270 //------------------------------------------------------------------------------ 0271 bool operator>(const KNumber &lhs, const KNumber &rhs) { 0272 return lhs.value_->compare(rhs.value_) > 0; 0273 } 0274 0275 //------------------------------------------------------------------------------ 0276 // Name: 0277 //------------------------------------------------------------------------------ 0278 bool operator<(const KNumber &lhs, const KNumber &rhs) { 0279 return lhs.value_->compare(rhs.value_) < 0; 0280 }