• 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_fraction.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_FRACTION_H_
20 #define KNUMBER_FRACTION_H_
21 
22 #include "knumber_base.h"
23 
24 class KNumber;
25 
26 namespace detail {
27 
28 class knumber_fraction : public knumber_base {
29  friend class ::KNumber;
30  friend class knumber_error;
31  friend class knumber_integer;
32  friend class knumber_float;
33 
34 public:
35  static bool default_fractional_input;
36  static bool default_fractional_output;
37  static bool split_off_integer_for_fraction_output;
38 
39 public:
40  static void set_default_fractional_input(bool value);
41  static void set_default_fractional_output(bool value);
42  static void set_split_off_integer_for_fraction_output(bool value);
43 
44 public:
45  explicit knumber_fraction(const QString &s);
46  knumber_fraction(qint64 num, quint64 den);
47  knumber_fraction(quint64 num, quint64 den);
48  explicit knumber_fraction(mpq_t mpq);
49  virtual ~knumber_fraction();
50 
51 public:
52  virtual knumber_base *clone();
53 
54 public:
55  virtual QString toString(int precision) const;
56  virtual quint64 toUint64() const;
57  virtual qint64 toInt64() const;
58 
59 public:
60  virtual bool is_integer() const;
61  virtual bool is_zero() const;
62  virtual int sign() const;
63 
64 public:
65  virtual knumber_base *add(knumber_base *rhs);
66  virtual knumber_base *sub(knumber_base *rhs);
67  virtual knumber_base *mul(knumber_base *rhs);
68  virtual knumber_base *div(knumber_base *rhs);
69  virtual knumber_base *mod(knumber_base *rhs);
70 
71 public:
72  virtual knumber_base *bitwise_and(knumber_base *rhs);
73  virtual knumber_base *bitwise_xor(knumber_base *rhs);
74  virtual knumber_base *bitwise_or(knumber_base *rhs);
75  virtual knumber_base *bitwise_shift(knumber_base *rhs);
76 
77 public:
78  virtual knumber_base *pow(knumber_base *rhs);
79  virtual knumber_base *neg();
80  virtual knumber_base *cmp();
81  virtual knumber_base *abs();
82  virtual knumber_base *sqrt();
83  virtual knumber_base *cbrt();
84  virtual knumber_base *factorial();
85  virtual knumber_base *reciprocal();
86  virtual knumber_base *tgamma();
87 
88 public:
89  virtual knumber_base *log2();
90  virtual knumber_base *log10();
91  virtual knumber_base *ln();
92  virtual knumber_base *exp2();
93  virtual knumber_base *floor();
94  virtual knumber_base *ceil();
95  virtual knumber_base *exp10();
96  virtual knumber_base *exp();
97  virtual knumber_base *bin(knumber_base *rhs);
98 
99 public:
100  virtual knumber_base *sin();
101  virtual knumber_base *cos();
102  virtual knumber_base *tan();
103  virtual knumber_base *asin();
104  virtual knumber_base *acos();
105  virtual knumber_base *atan();
106  virtual knumber_base *sinh();
107  virtual knumber_base *cosh();
108  virtual knumber_base *tanh();
109  virtual knumber_base *asinh();
110  virtual knumber_base *acosh();
111  virtual knumber_base *atanh();
112 
113 public:
114  virtual int compare(knumber_base *rhs);
115 
116 private:
117  knumber_integer *numerator() const;
118  knumber_integer *denominator() const;
119 
120 private:
121  // conversion constructors
122  explicit knumber_fraction(const knumber_integer *value);
123  explicit knumber_fraction(const knumber_fraction *value);
124 #if 0
125  // TODO: this is omitted because there is no good way to
126  // implement it
127  knumber_fraction(const knumber_float *value);
128 #endif
129  explicit knumber_fraction(const knumber_error *value);
130 
131 private:
132  mpq_t mpq_;
133 };
134 
135 }
136 
137 #endif
detail::knumber_fraction::cos
virtual knumber_base * cos()
Definition: knumber_fraction.cpp:596
detail::knumber_fraction::exp10
virtual knumber_base * exp10()
Definition: knumber_fraction.cpp:870
detail::knumber_fraction::cmp
virtual knumber_base * cmp()
Definition: knumber_fraction.cpp:348
detail::knumber_fraction::split_off_integer_for_fraction_output
static bool split_off_integer_for_fraction_output
Definition: knumber_fraction.h:37
detail::knumber_fraction::set_default_fractional_output
static void set_default_fractional_output(bool value)
Definition: knumber_fraction.cpp:43
detail::knumber_fraction::sin
virtual knumber_base * sin()
Definition: knumber_fraction.cpp:568
detail::knumber_fraction::set_default_fractional_input
static void set_default_fractional_input(bool value)
Definition: knumber_fraction.cpp:36
detail::knumber_fraction::cosh
virtual knumber_base * cosh()
Definition: knumber_fraction.cpp:665
detail::knumber_fraction::asinh
virtual knumber_base * asinh()
Definition: knumber_fraction.cpp:683
detail::knumber_fraction::bitwise_or
virtual knumber_base * bitwise_or(knumber_base *rhs)
Definition: knumber_fraction.cpp:310
detail::knumber_fraction::cbrt
virtual knumber_base * cbrt()
Definition: knumber_fraction.cpp:389
detail::knumber_fraction::reciprocal
virtual knumber_base * reciprocal()
Definition: knumber_fraction.cpp:799
detail::knumber_fraction::tgamma
virtual knumber_base * tgamma()
Definition: knumber_fraction.cpp:606
detail::knumber_fraction::log2
virtual knumber_base * log2()
Definition: knumber_fraction.cpp:834
detail::knumber_fraction::div
virtual knumber_base * div(knumber_base *rhs)
Definition: knumber_fraction.cpp:229
detail::knumber_fraction::exp
virtual knumber_base * exp()
Definition: knumber_fraction.cpp:879
detail::knumber_fraction::exp2
virtual knumber_base * exp2()
Definition: knumber_fraction.cpp:861
detail::knumber_fraction::ceil
virtual knumber_base * ceil()
Definition: knumber_fraction.cpp:587
detail::knumber_fraction::bitwise_and
virtual knumber_base * bitwise_and(knumber_base *rhs)
Definition: knumber_fraction.cpp:288
detail::knumber_fraction::mul
virtual knumber_base * mul(knumber_base *rhs)
Definition: knumber_fraction.cpp:191
detail::knumber_fraction::tanh
virtual knumber_base * tanh()
Definition: knumber_fraction.cpp:674
detail::knumber_base
Definition: knumber_base.h:38
detail::knumber_fraction::tan
virtual knumber_base * tan()
Definition: knumber_fraction.cpp:616
detail::knumber_fraction
Definition: knumber_fraction.h:28
detail::knumber_fraction::floor
virtual knumber_base * floor()
Definition: knumber_fraction.cpp:578
detail::knumber_fraction::sub
virtual knumber_base * sub(knumber_base *rhs)
Definition: knumber_fraction.cpp:165
detail::knumber_fraction::is_integer
virtual bool is_integer() const
Definition: knumber_fraction.cpp:132
detail::knumber_fraction::pow
virtual knumber_base * pow(knumber_base *rhs)
Definition: knumber_fraction.cpp:435
detail::knumber_integer
Definition: knumber_integer.h:28
detail::knumber_fraction::atanh
virtual knumber_base * atanh()
Definition: knumber_fraction.cpp:701
detail::knumber_fraction::mod
virtual knumber_base * mod(knumber_base *rhs)
Definition: knumber_fraction.cpp:273
detail::knumber_fraction::is_zero
virtual bool is_zero() const
Definition: knumber_fraction.cpp:785
QString
detail::knumber_fraction::add
virtual knumber_base * add(knumber_base *rhs)
Definition: knumber_fraction.cpp:139
detail::knumber_fraction::ln
virtual knumber_base * ln()
Definition: knumber_fraction.cpp:852
KNumber
Definition: knumber.h:30
knumber_base.h
detail::knumber_fraction::toUint64
virtual quint64 toUint64() const
Definition: knumber_fraction.cpp:888
detail::knumber_fraction::set_split_off_integer_for_fraction_output
static void set_split_off_integer_for_fraction_output(bool value)
Definition: knumber_fraction.cpp:50
detail::knumber_fraction::log10
virtual knumber_base * log10()
Definition: knumber_fraction.cpp:843
detail::knumber_fraction::acos
virtual knumber_base * acos()
Definition: knumber_fraction.cpp:636
detail::knumber_fraction::bitwise_xor
virtual knumber_base * bitwise_xor(knumber_base *rhs)
Definition: knumber_fraction.cpp:299
detail::knumber_fraction::sign
virtual int sign() const
Definition: knumber_fraction.cpp:792
detail::knumber_fraction::bin
virtual knumber_base * bin(knumber_base *rhs)
Definition: knumber_fraction.cpp:902
detail::knumber_fraction::toString
virtual QString toString(int precision) const
Definition: knumber_fraction.cpp:733
detail::knumber_fraction::default_fractional_input
static bool default_fractional_input
Definition: knumber_fraction.h:35
detail::knumber_float
Definition: knumber_float.h:28
detail::knumber_fraction::clone
virtual knumber_base * clone()
Definition: knumber_fraction.cpp:118
detail::knumber_fraction::knumber_fraction
knumber_fraction(const QString &s)
Definition: knumber_fraction.cpp:57
detail::knumber_error
Definition: knumber_error.h:28
detail::knumber_fraction::sqrt
virtual knumber_base * sqrt()
Definition: knumber_fraction.cpp:357
detail::knumber_fraction::~knumber_fraction
virtual ~knumber_fraction()
Definition: knumber_fraction.cpp:125
detail::knumber_fraction::default_fractional_output
static bool default_fractional_output
Definition: knumber_fraction.h:36
detail::knumber_fraction::abs
virtual knumber_base * abs()
Definition: knumber_fraction.cpp:340
detail::knumber_fraction::neg
virtual knumber_base * neg()
Definition: knumber_fraction.cpp:332
detail::knumber_fraction::compare
virtual int compare(knumber_base *rhs)
Definition: knumber_fraction.cpp:710
detail::knumber_fraction::acosh
virtual knumber_base * acosh()
Definition: knumber_fraction.cpp:692
detail::knumber_fraction::asin
virtual knumber_base * asin()
Definition: knumber_fraction.cpp:626
detail::knumber_fraction::toInt64
virtual qint64 toInt64() const
Definition: knumber_fraction.cpp:895
detail::knumber_fraction::factorial
virtual knumber_base * factorial()
Definition: knumber_fraction.cpp:420
detail::knumber_fraction::atan
virtual knumber_base * atan()
Definition: knumber_fraction.cpp:646
detail::knumber_fraction::sinh
virtual knumber_base * sinh()
Definition: knumber_fraction.cpp:656
detail::knumber_fraction::bitwise_shift
virtual knumber_base * bitwise_shift(knumber_base *rhs)
Definition: knumber_fraction.cpp:321
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