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

kcalc

  • sources
  • kde-4.12
  • kdeutils
  • kcalc
  • knumber
knumber_float.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_FLOAT_H_
20 #define KNUMBER_FLOAT_H_
21 
22 #include "knumber_base.h"
23 
24 class KNumber;
25 
26 namespace detail {
27 
28 class knumber_float : public knumber_base {
29  friend class ::KNumber;
30  friend class knumber_error;
31  friend class knumber_integer;
32  friend class knumber_fraction;
33 
34 private:
35 #ifdef KNUMBER_USE_MPFR
36  static const mpfr_rnd_t rounding_mode;
37  static const mpfr_prec_t precision;
38 #endif
39 
40 public:
41  explicit knumber_float(const QString &s);
42  explicit knumber_float(double value);
43 #ifdef HAVE_LONG_DOUBLE
44  explicit knumber_float(long double value);
45 #endif
46 
47  explicit knumber_float(mpf_t mpf);
48  virtual ~knumber_float();
49 
50 private:
51  // conversion constructors
52  explicit knumber_float(const knumber_integer *value);
53  explicit knumber_float(const knumber_fraction *value);
54  explicit knumber_float(const knumber_float *value);
55  explicit knumber_float(const knumber_error *value);
56 
57 public:
58  virtual QString toString(int precision) const;
59  virtual quint64 toUint64() const;
60  virtual qint64 toInt64() const;
61 
62 public:
63  virtual bool is_integer() const;
64  virtual bool is_zero() const;
65  virtual int sign() const;
66 
67 public:
68  virtual knumber_base *add(knumber_base *rhs);
69  virtual knumber_base *sub(knumber_base *rhs);
70  virtual knumber_base *mul(knumber_base *rhs);
71  virtual knumber_base *div(knumber_base *rhs);
72  virtual knumber_base *mod(knumber_base *rhs);
73 
74 public:
75  virtual knumber_base *pow(knumber_base *rhs);
76  virtual knumber_base *neg();
77  virtual knumber_base *cmp();
78  virtual knumber_base *abs();
79  virtual knumber_base *sqrt();
80  virtual knumber_base *cbrt();
81  virtual knumber_base *factorial();
82  virtual knumber_base *reciprocal();
83 
84 public:
85  virtual knumber_base *log2();
86  virtual knumber_base *log10();
87  virtual knumber_base *ln();
88  virtual knumber_base *exp2();
89  virtual knumber_base *exp10();
90  virtual knumber_base *exp();
91  virtual knumber_base *bin(knumber_base *rhs);
92 
93 public:
94  virtual knumber_base *sin();
95  virtual knumber_base *cos();
96  virtual knumber_base *tan();
97  virtual knumber_base *asin();
98  virtual knumber_base *acos();
99  virtual knumber_base *atan();
100  virtual knumber_base *sinh();
101  virtual knumber_base *cosh();
102  virtual knumber_base *tanh();
103  virtual knumber_base *asinh();
104  virtual knumber_base *acosh();
105  virtual knumber_base *atanh();
106 
107 public:
108  virtual int compare(knumber_base *rhs);
109 
110 public:
111  virtual knumber_base *bitwise_and(knumber_base *rhs);
112  virtual knumber_base *bitwise_xor(knumber_base *rhs);
113  virtual knumber_base *bitwise_or(knumber_base *rhs);
114  virtual knumber_base *bitwise_shift(knumber_base *rhs);
115 
116 public:
117  virtual knumber_base *clone();
118 
119 private:
120  template <double F(double)>
121  knumber_base *execute_libc_func(double x);
122 
123  template <double F(double, double)>
124  knumber_base *execute_libc_func(double x, double y);
125 
126 private:
127  mpf_t mpf_;
128 };
129 
130 }
131 
132 #endif
detail::knumber_float::cosh
virtual knumber_base * cosh()
Definition: knumber_float.cpp:603
detail::knumber_float::tanh
virtual knumber_base * tanh()
Definition: knumber_float.cpp:620
detail::knumber_float::knumber_float
knumber_float(const QString &s)
Definition: knumber_float.cpp:87
detail::knumber_float::atanh
virtual knumber_base * atanh()
Definition: knumber_float.cpp:671
detail::knumber_float::add
virtual knumber_base * add(knumber_base *rhs)
Definition: knumber_float.cpp:171
detail::knumber_float::sqrt
virtual knumber_base * sqrt()
Definition: knumber_float.cpp:374
detail::knumber_float::tan
virtual knumber_base * tan()
Definition: knumber_float.cpp:485
detail::knumber_float::exp10
virtual knumber_base * exp10()
Definition: knumber_float.cpp:895
detail::knumber_float::mul
virtual knumber_base * mul(knumber_base *rhs)
Definition: knumber_float.cpp:219
detail::knumber_float::sign
virtual int sign() const
Definition: knumber_float.cpp:788
detail::knumber_float::pow
virtual knumber_base * pow(knumber_base *rhs)
Definition: knumber_float.cpp:688
detail::knumber_float::cbrt
virtual knumber_base * cbrt()
Definition: knumber_float.cpp:396
detail::knumber_float::toInt64
virtual qint64 toInt64() const
Definition: knumber_float.cpp:946
detail::knumber_float::bin
virtual knumber_base * bin(knumber_base *rhs)
Definition: knumber_float.cpp:953
detail::knumber_float::sin
virtual knumber_base * sin()
Definition: knumber_float.cpp:438
detail::knumber_base
Definition: knumber_base.h:38
detail::knumber_fraction
Definition: knumber_fraction.h:28
detail::knumber_float::ln
virtual knumber_base * ln()
Definition: knumber_float.cpp:851
detail::knumber_float::toUint64
virtual quint64 toUint64() const
Definition: knumber_float.cpp:939
detail::knumber_integer
Definition: knumber_integer.h:28
detail::knumber_float::toString
virtual QString toString(int precision) const
Definition: knumber_float.cpp:749
detail::knumber_float::div
virtual knumber_base * div(knumber_base *rhs)
Definition: knumber_float.cpp:253
detail::knumber_float::factorial
virtual knumber_base * factorial()
Definition: knumber_float.cpp:423
detail::knumber_float::bitwise_or
virtual knumber_base * bitwise_or(knumber_base *rhs)
Definition: knumber_float.cpp:327
detail::knumber_float::sub
virtual knumber_base * sub(knumber_base *rhs)
Definition: knumber_float.cpp:195
detail::knumber_float::bitwise_xor
virtual knumber_base * bitwise_xor(knumber_base *rhs)
Definition: knumber_float.cpp:317
detail::knumber_float::asinh
virtual knumber_base * asinh()
Definition: knumber_float.cpp:637
detail::knumber_float::cmp
virtual knumber_base * cmp()
Definition: knumber_float.cpp:356
detail::knumber_float::exp2
virtual knumber_base * exp2()
Definition: knumber_float.cpp:873
detail::knumber_float::acos
virtual knumber_base * acos()
Definition: knumber_float.cpp:535
KNumber
Definition: knumber.h:31
detail::knumber_float::mod
virtual knumber_base * mod(knumber_base *rhs)
Definition: knumber_float.cpp:291
knumber_base.h
detail::knumber_float::exp
virtual knumber_base * exp()
Definition: knumber_float.cpp:917
detail::knumber_float::reciprocal
virtual knumber_base * reciprocal()
Definition: knumber_float.cpp:796
detail::knumber_float::log10
virtual knumber_base * log10()
Definition: knumber_float.cpp:829
detail::knumber_float::acosh
virtual knumber_base * acosh()
Definition: knumber_float.cpp:654
detail::knumber_float::abs
virtual knumber_base * abs()
Definition: knumber_float.cpp:365
detail::knumber_float::atan
virtual knumber_base * atan()
Definition: knumber_float.cpp:562
detail::knumber_float::cos
virtual knumber_base * cos()
Definition: knumber_float.cpp:462
detail::knumber_float::bitwise_shift
virtual knumber_base * bitwise_shift(knumber_base *rhs)
Definition: knumber_float.cpp:337
detail::knumber_float::asin
virtual knumber_base * asin()
Definition: knumber_float.cpp:508
detail::knumber_float
Definition: knumber_float.h:28
detail::knumber_float::compare
virtual int compare(knumber_base *rhs)
Definition: knumber_float.cpp:726
detail::knumber_float::clone
virtual knumber_base * clone()
Definition: knumber_float.cpp:155
detail::knumber_error
Definition: knumber_error.h:28
detail::knumber_float::neg
virtual knumber_base * neg()
Definition: knumber_float.cpp:347
detail::knumber_float::sinh
virtual knumber_base * sinh()
Definition: knumber_float.cpp:585
detail::knumber_float::is_integer
virtual bool is_integer() const
Definition: knumber_float.cpp:772
detail::knumber_float::log2
virtual knumber_base * log2()
Definition: knumber_float.cpp:807
detail::knumber_float::~knumber_float
virtual ~knumber_float()
Definition: knumber_float.cpp:163
detail::knumber_float::bitwise_and
virtual knumber_base * bitwise_and(knumber_base *rhs)
Definition: knumber_float.cpp:307
detail::knumber_float::is_zero
virtual bool is_zero() const
Definition: knumber_float.cpp:780
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:08:05 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
  • kremotecontrol
  • ktimer
  • kwallet
  • superkaramba
  • 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