Warning, file /maui/brun/knumber/knumber_operators.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002 Copyright (C) 2001 - 2013 Evan Teran
0003                           evan.teran@gmail.com
0004 
0005 This program is free software: you can redistribute it and/or modify
0006 it under the terms of the GNU General Public License as published by
0007 the Free Software Foundation, either version 2 of the License, or
0008 (at your option) any later version.
0009 
0010 This program is distributed in the hope that it will be useful,
0011 but WITHOUT ANY WARRANTY; without even the implied warranty of
0012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0013 GNU General Public License for more details.
0014 
0015 You should have received a copy of the GNU General Public License
0016 along with this program.  If not, see <http://www.gnu.org/licenses/>.
0017 */
0018 
0019 #include <config-kcalc.h>
0020 #include "knumber_operators.h"
0021 #include "knumber.h"
0022 #include "knumber_base.h"
0023 
0024 //------------------------------------------------------------------------------
0025 // Name:
0026 //------------------------------------------------------------------------------
0027 KNumber operator+(const KNumber &lhs, const KNumber &rhs) {
0028     KNumber x(lhs);
0029     x += rhs;
0030     return x;
0031 }
0032 
0033 //------------------------------------------------------------------------------
0034 // Name:
0035 //------------------------------------------------------------------------------
0036 KNumber operator-(const KNumber &lhs, const KNumber &rhs) {
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     KNumber x(lhs);
0047     x *= rhs;
0048     return x;
0049 }
0050 
0051 //------------------------------------------------------------------------------
0052 // Name:
0053 //------------------------------------------------------------------------------
0054 KNumber operator/(const KNumber &lhs, const KNumber &rhs) {
0055     KNumber x(lhs);
0056     x /= rhs;
0057     return x;
0058 }
0059 
0060 //------------------------------------------------------------------------------
0061 // Name:
0062 //------------------------------------------------------------------------------
0063 KNumber operator%(const KNumber &lhs, const KNumber &rhs) {
0064     KNumber x(lhs);
0065     x %= rhs;
0066     return x;
0067 }
0068 
0069 //------------------------------------------------------------------------------
0070 // Name:
0071 //------------------------------------------------------------------------------
0072 KNumber operator&(const KNumber &lhs, const KNumber &rhs) {
0073     KNumber x(lhs);
0074     x &= rhs;
0075     return x;
0076 }
0077 
0078 //------------------------------------------------------------------------------
0079 // Name:
0080 //------------------------------------------------------------------------------
0081 KNumber operator|(const KNumber &lhs, const KNumber &rhs) {
0082     KNumber x(lhs);
0083     x |= rhs;
0084     return x;
0085 }
0086 
0087 //------------------------------------------------------------------------------
0088 // Name:
0089 //------------------------------------------------------------------------------
0090 KNumber operator^(const KNumber &lhs, const KNumber &rhs) {
0091     KNumber x(lhs);
0092     x ^= rhs;
0093     return x;
0094 }
0095 
0096 //------------------------------------------------------------------------------
0097 // Name:
0098 //------------------------------------------------------------------------------
0099 KNumber operator>>(const KNumber &lhs, const KNumber &rhs) {
0100     KNumber x(lhs);
0101     x >>= rhs;
0102     return x;
0103 }
0104 
0105 //------------------------------------------------------------------------------
0106 // Name:
0107 //------------------------------------------------------------------------------
0108 KNumber operator<<(const KNumber &lhs, const KNumber &rhs) {
0109     KNumber x(lhs);
0110     x <<= rhs;
0111     return x;
0112 }
0113 
0114 //------------------------------------------------------------------------------
0115 // Name:
0116 //------------------------------------------------------------------------------
0117 KNumber abs(const KNumber &x) {
0118     return x.abs();
0119 }
0120 
0121 //------------------------------------------------------------------------------
0122 // Name:
0123 //------------------------------------------------------------------------------
0124 KNumber cbrt(const KNumber &x) {
0125     return x.cbrt();
0126 }
0127 
0128 //------------------------------------------------------------------------------
0129 // Name:
0130 //------------------------------------------------------------------------------
0131 KNumber sqrt(const KNumber &x) {
0132     return x.sqrt();
0133 }
0134 
0135 //------------------------------------------------------------------------------
0136 // Name:
0137 //------------------------------------------------------------------------------
0138 KNumber sin(const KNumber &x) {
0139     return x.sin();
0140 }
0141 
0142 //------------------------------------------------------------------------------
0143 // Name:
0144 //------------------------------------------------------------------------------
0145 KNumber cos(const KNumber &x) {
0146     return x.cos();
0147 }
0148 
0149 //------------------------------------------------------------------------------
0150 // Name:
0151 //------------------------------------------------------------------------------
0152 KNumber tan(const KNumber &x) {
0153     return x.tan();
0154 }
0155 
0156 
0157 //------------------------------------------------------------------------------
0158 // Name:
0159 //------------------------------------------------------------------------------
0160 KNumber asin(const KNumber &x) {
0161     return x.asin();
0162 }
0163 
0164 //------------------------------------------------------------------------------
0165 // Name:
0166 //------------------------------------------------------------------------------
0167 KNumber acos(const KNumber &x) {
0168     return x.acos();
0169 }
0170 
0171 //------------------------------------------------------------------------------
0172 // Name:
0173 //------------------------------------------------------------------------------
0174 KNumber tgamma(const KNumber &x) {
0175     return x.tgamma();
0176 }
0177 
0178 //------------------------------------------------------------------------------
0179 // Name:
0180 //------------------------------------------------------------------------------
0181 KNumber atan(const KNumber &x) {
0182     return x.atan();
0183 }
0184 
0185 //------------------------------------------------------------------------------
0186 // Name:
0187 //------------------------------------------------------------------------------
0188 KNumber pow(const KNumber &x, const KNumber &y) {
0189     return x.pow(y);
0190 }
0191 
0192 //------------------------------------------------------------------------------
0193 // Name:
0194 //------------------------------------------------------------------------------
0195 KNumber factorial(const KNumber &x) {
0196     return x.factorial();
0197 }
0198 
0199 //------------------------------------------------------------------------------
0200 // Name:
0201 //------------------------------------------------------------------------------
0202 KNumber log2(const KNumber &x) {
0203     return x.log2();
0204 }
0205 
0206 //------------------------------------------------------------------------------
0207 // Name:
0208 //------------------------------------------------------------------------------
0209 KNumber floor(const KNumber &x) {
0210     return x.floor();
0211 }
0212 
0213 //------------------------------------------------------------------------------
0214 // Name:
0215 //------------------------------------------------------------------------------
0216 KNumber ceil(const KNumber &x) {
0217     return x.ceil();
0218 }
0219 
0220 //------------------------------------------------------------------------------
0221 // Name:
0222 //------------------------------------------------------------------------------
0223 KNumber log10(const KNumber &x) {
0224     return x.log10();
0225 }
0226 
0227 //------------------------------------------------------------------------------
0228 // Name:
0229 //------------------------------------------------------------------------------
0230 KNumber ln(const KNumber &x) {
0231     return x.ln();
0232 }
0233 
0234 //------------------------------------------------------------------------------
0235 // Name:
0236 //------------------------------------------------------------------------------
0237 KNumber exp2(const KNumber &x) {
0238     return x.exp2();
0239 }
0240 
0241 //------------------------------------------------------------------------------
0242 // Name:
0243 //------------------------------------------------------------------------------
0244 KNumber exp10(const KNumber &x) {
0245     return x.exp10();
0246 }
0247 
0248 //------------------------------------------------------------------------------
0249 // Name:
0250 //------------------------------------------------------------------------------
0251 KNumber exp(const KNumber &x) {
0252     return x.exp();
0253 }
0254 
0255 //------------------------------------------------------------------------------
0256 // Name:
0257 //------------------------------------------------------------------------------
0258 bool operator==(const KNumber &lhs, const KNumber &rhs) {
0259     return lhs.value_->compare(rhs.value_) == 0;
0260 }
0261 
0262 //------------------------------------------------------------------------------
0263 // Name:
0264 //------------------------------------------------------------------------------
0265 bool operator!=(const KNumber &lhs, const KNumber &rhs) {
0266     return lhs.value_->compare(rhs.value_) != 0;
0267 }
0268 
0269 //------------------------------------------------------------------------------
0270 // Name:
0271 //------------------------------------------------------------------------------
0272 bool operator>=(const KNumber &lhs, const KNumber &rhs) {
0273     return lhs.value_->compare(rhs.value_) >= 0;
0274 }
0275 
0276 //------------------------------------------------------------------------------
0277 // Name:
0278 //------------------------------------------------------------------------------
0279 bool operator<=(const KNumber &lhs, const KNumber &rhs) {
0280     return lhs.value_->compare(rhs.value_) <= 0;
0281 }
0282 
0283 //------------------------------------------------------------------------------
0284 // Name:
0285 //------------------------------------------------------------------------------
0286 bool operator>(const KNumber &lhs, const KNumber &rhs) {
0287     return lhs.value_->compare(rhs.value_) > 0;
0288 }
0289 
0290 //------------------------------------------------------------------------------
0291 // Name:
0292 //------------------------------------------------------------------------------
0293 bool operator<(const KNumber &lhs, const KNumber &rhs) {
0294     return lhs.value_->compare(rhs.value_) < 0;
0295 }