File indexing completed on 2024-05-12 04:45:54
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 #ifndef KNUMBER_OPERATORS_H_ 0020 #define KNUMBER_OPERATORS_H_ 0021 0022 class KNumber; 0023 0024 bool operator==(const KNumber &lhs, const KNumber &rhs); 0025 bool operator!=(const KNumber &lhs, const KNumber &rhs); 0026 bool operator>=(const KNumber &lhs, const KNumber &rhs); 0027 bool operator<=(const KNumber &lhs, const KNumber &rhs); 0028 bool operator>(const KNumber &lhs, const KNumber &rhs); 0029 bool operator<(const KNumber &lhs, const KNumber &rhs); 0030 0031 KNumber operator+(const KNumber &lhs, const KNumber &rhs); 0032 KNumber operator-(const KNumber &lhs, const KNumber &rhs); 0033 KNumber operator*(const KNumber &lhs, const KNumber &rhs); 0034 KNumber operator/(const KNumber &lhs, const KNumber &rhs); 0035 KNumber operator%(const KNumber &lhs, const KNumber &rhs); 0036 0037 KNumber operator&(const KNumber &lhs, const KNumber &rhs); 0038 KNumber operator|(const KNumber &lhs, const KNumber &rhs); 0039 KNumber operator^(const KNumber &lhs, const KNumber &rhs); 0040 KNumber operator>>(const KNumber &lhs, const KNumber &rhs); 0041 KNumber operator<<(const KNumber &lhs, const KNumber &rhs); 0042 0043 KNumber abs(const KNumber &x); 0044 KNumber cbrt(const KNumber &x); 0045 KNumber sqrt(const KNumber &x); 0046 KNumber pow(const KNumber &x, const KNumber &y); 0047 0048 KNumber sin(const KNumber &x); 0049 KNumber cos(const KNumber &x); 0050 KNumber tan(const KNumber &x); 0051 KNumber asin(const KNumber &x); 0052 KNumber tgamma(const KNumber &x); 0053 KNumber acos(const KNumber &x); 0054 KNumber atan(const KNumber &x); 0055 0056 KNumber factorial(const KNumber &x); 0057 0058 KNumber log2(const KNumber &x); 0059 KNumber log10(const KNumber &x); 0060 KNumber ceil(const KNumber &x); 0061 KNumber floor(const KNumber &x); 0062 KNumber ln(const KNumber &x); 0063 KNumber exp2(const KNumber &x); 0064 KNumber exp10(const KNumber &x); 0065 KNumber exp(const KNumber &x); 0066 0067 #endif