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 }