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 }