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