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 }