• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeutils API Reference
  • KDE Home
  • Contact Us
 

kcalc

  • sources
  • kde-4.14
  • kdeutils
  • kcalc
  • knumber
knumber_base.h
Go to the documentation of this file.
1 /*
2 Copyright (C) 2001 - 2013 Evan Teran
3  evan.teran@gmail.com
4 
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 2 of the License, or
8 (at your option) any later version.
9 
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14 
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18 
19 #ifndef KNUMBER_BASE_H_
20 #define KNUMBER_BASE_H_
21 
22 #include <gmp.h>
23 
24 #ifdef KNUMBER_USE_MPFR
25 #include <mpfr.h>
26 #endif
27 
28 #include <QtGlobal>
29 #include <QString>
30 
31 namespace detail {
32 
33 class knumber_error;
34 class knumber_integer;
35 class knumber_fraction;
36 class knumber_float;
37 
38 class knumber_base {
39 public:
40  virtual ~knumber_base() { }
41 
42 public:
43  virtual knumber_base *clone() = 0;
44 
45 public:
46  virtual QString toString(int precision) const = 0;
47  virtual quint64 toUint64() const = 0;
48  virtual qint64 toInt64() const = 0;
49 
50 public:
51  virtual bool is_integer() const = 0;
52  virtual bool is_zero() const = 0;
53  virtual int sign() const = 0;
54 
55 public:
56  // basic math
57  virtual knumber_base *add(knumber_base *rhs) = 0;
58  virtual knumber_base *sub(knumber_base *rhs) = 0;
59  virtual knumber_base *mul(knumber_base *rhs) = 0;
60  virtual knumber_base *div(knumber_base *rhs) = 0;
61  virtual knumber_base *mod(knumber_base *rhs) = 0;
62 
63 public:
64  // logical operators
65  virtual knumber_base *bitwise_and(knumber_base *rhs) = 0;
66  virtual knumber_base *bitwise_xor(knumber_base *rhs) = 0;
67  virtual knumber_base *bitwise_or(knumber_base *rhs) = 0;
68  virtual knumber_base *bitwise_shift(knumber_base *rhs) = 0;
69 
70 public:
71  // algebraic functions
72  virtual knumber_base *pow(knumber_base *rhs) = 0;
73  virtual knumber_base *neg() = 0;
74  virtual knumber_base *cmp() = 0;
75  virtual knumber_base *abs() = 0;
76  virtual knumber_base *sqrt() = 0;
77  virtual knumber_base *cbrt() = 0;
78  virtual knumber_base *factorial() = 0;
79  virtual knumber_base *reciprocal() = 0;
80 
81 public:
82  // special functions
83  virtual knumber_base *log2() = 0;
84  virtual knumber_base *log10() = 0;
85  virtual knumber_base *ln() = 0;
86  virtual knumber_base *exp2() = 0;
87  virtual knumber_base *exp10() = 0;
88  virtual knumber_base *floor() = 0;
89  virtual knumber_base *ceil() = 0;
90  virtual knumber_base *exp() = 0;
91  virtual knumber_base *bin(knumber_base *rhs) = 0;
92 
93 public:
94  // trig functions
95  virtual knumber_base *sin() = 0;
96  virtual knumber_base *cos() = 0;
97  virtual knumber_base *tan() = 0;
98  virtual knumber_base *asin() = 0;
99  virtual knumber_base *acos() = 0;
100  virtual knumber_base *atan() = 0;
101  virtual knumber_base *sinh() = 0;
102  virtual knumber_base *cosh() = 0;
103  virtual knumber_base *tanh() = 0;
104  virtual knumber_base *asinh() = 0;
105  virtual knumber_base *acosh() = 0;
106  virtual knumber_base *atanh() = 0;
107  virtual knumber_base *tgamma() = 0;
108 
109 public:
110  // comparison
111  virtual int compare(knumber_base *rhs) = 0;
112 };
113 
114 }
115 
116 #endif
detail::knumber_base::sign
virtual int sign() const =0
detail::knumber_base::tanh
virtual knumber_base * tanh()=0
detail::knumber_base::is_integer
virtual bool is_integer() const =0
detail::knumber_base::bin
virtual knumber_base * bin(knumber_base *rhs)=0
detail::knumber_base::compare
virtual int compare(knumber_base *rhs)=0
detail::knumber_base::toUint64
virtual quint64 toUint64() const =0
detail::knumber_base::bitwise_or
virtual knumber_base * bitwise_or(knumber_base *rhs)=0
detail::knumber_base::neg
virtual knumber_base * neg()=0
detail::knumber_base::cbrt
virtual knumber_base * cbrt()=0
detail::knumber_base::add
virtual knumber_base * add(knumber_base *rhs)=0
detail::knumber_base::mod
virtual knumber_base * mod(knumber_base *rhs)=0
detail::knumber_base::exp2
virtual knumber_base * exp2()=0
detail::knumber_base::asinh
virtual knumber_base * asinh()=0
detail::knumber_base::log10
virtual knumber_base * log10()=0
detail::knumber_base::sub
virtual knumber_base * sub(knumber_base *rhs)=0
detail::knumber_base::is_zero
virtual bool is_zero() const =0
detail::knumber_base::~knumber_base
virtual ~knumber_base()
Definition: knumber_base.h:40
detail::knumber_base::ceil
virtual knumber_base * ceil()=0
detail::knumber_base::cos
virtual knumber_base * cos()=0
detail::knumber_base::bitwise_shift
virtual knumber_base * bitwise_shift(knumber_base *rhs)=0
detail::knumber_base
Definition: knumber_base.h:38
detail::knumber_base::clone
virtual knumber_base * clone()=0
detail::knumber_base::atan
virtual knumber_base * atan()=0
detail::knumber_base::exp10
virtual knumber_base * exp10()=0
QString
detail::knumber_base::sqrt
virtual knumber_base * sqrt()=0
detail::knumber_base::reciprocal
virtual knumber_base * reciprocal()=0
detail::knumber_base::abs
virtual knumber_base * abs()=0
detail::knumber_base::toInt64
virtual qint64 toInt64() const =0
detail::knumber_base::tgamma
virtual knumber_base * tgamma()=0
detail::knumber_base::asin
virtual knumber_base * asin()=0
detail::knumber_base::bitwise_xor
virtual knumber_base * bitwise_xor(knumber_base *rhs)=0
detail::knumber_base::exp
virtual knumber_base * exp()=0
detail::knumber_base::floor
virtual knumber_base * floor()=0
detail::knumber_base::acos
virtual knumber_base * acos()=0
detail::knumber_base::sinh
virtual knumber_base * sinh()=0
detail::knumber_base::acosh
virtual knumber_base * acosh()=0
detail::knumber_base::tan
virtual knumber_base * tan()=0
detail::knumber_base::toString
virtual QString toString(int precision) const =0
detail::knumber_base::ln
virtual knumber_base * ln()=0
detail::knumber_base::pow
virtual knumber_base * pow(knumber_base *rhs)=0
detail::knumber_base::mul
virtual knumber_base * mul(knumber_base *rhs)=0
detail::knumber_base::factorial
virtual knumber_base * factorial()=0
detail::knumber_base::cosh
virtual knumber_base * cosh()=0
detail::knumber_base::atanh
virtual knumber_base * atanh()=0
detail::knumber_base::div
virtual knumber_base * div(knumber_base *rhs)=0
detail::knumber_base::bitwise_and
virtual knumber_base * bitwise_and(knumber_base *rhs)=0
detail::knumber_base::cmp
virtual knumber_base * cmp()=0
detail::knumber_base::log2
virtual knumber_base * log2()=0
detail::knumber_base::sin
virtual knumber_base * sin()=0
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:42:28 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kcalc

Skip menu "kcalc"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdeutils API Reference

Skip menu "kdeutils API Reference"
  • ark
  • filelight
  • kcalc
  • kcharselect
  • kdf
  • kfloppy
  • kgpg
  • ktimer
  • kwallet
  • sweeper

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal