• 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_error.cpp
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 #include <config-kcalc.h>
20 #include "knumber_integer.h"
21 #include "knumber_float.h"
22 #include "knumber_fraction.h"
23 #include "knumber_error.h"
24 #include <cmath> // for M_PI
25 #include <QDebug>
26 
27 namespace detail {
28 
29 
30 //------------------------------------------------------------------------------
31 // Name:
32 //------------------------------------------------------------------------------
33 knumber_error::knumber_error(Error e) : error_(e) {
34 }
35 
36 //------------------------------------------------------------------------------
37 // Name:
38 //------------------------------------------------------------------------------
39 knumber_error::knumber_error(const QString &s) {
40 
41  if (s == QLatin1String("nan")) error_ = ERROR_UNDEFINED;
42  else if (s == QLatin1String("inf")) error_ = ERROR_POS_INFINITY;
43  else if (s == QLatin1String("-inf")) error_ = ERROR_NEG_INFINITY;
44  else error_ = ERROR_UNDEFINED;
45 }
46 
47 //------------------------------------------------------------------------------
48 // Name:
49 //------------------------------------------------------------------------------
50 knumber_error::knumber_error() : error_(ERROR_UNDEFINED) {
51 
52 }
53 
54 //------------------------------------------------------------------------------
55 // Name:
56 //------------------------------------------------------------------------------
57 knumber_error::~knumber_error() {
58 
59 }
60 
61 //------------------------------------------------------------------------------
62 // Name:
63 //------------------------------------------------------------------------------
64 knumber_error::knumber_error(const knumber_integer *) : error_(ERROR_UNDEFINED) {
65 }
66 
67 //------------------------------------------------------------------------------
68 // Name:
69 //------------------------------------------------------------------------------
70 knumber_error::knumber_error(const knumber_fraction *) : error_(ERROR_UNDEFINED) {
71 }
72 
73 //------------------------------------------------------------------------------
74 // Name:
75 //------------------------------------------------------------------------------
76 knumber_error::knumber_error(const knumber_float *) : error_(ERROR_UNDEFINED) {
77 }
78 
79 //------------------------------------------------------------------------------
80 // Name:
81 //------------------------------------------------------------------------------
82 knumber_error::knumber_error(const knumber_error *value) : error_(value->error_) {
83 }
84 
85 //------------------------------------------------------------------------------
86 // Name:
87 //------------------------------------------------------------------------------
88 QString knumber_error::toString(int precision) const {
89 
90  Q_UNUSED(precision);
91 
92  switch(error_) {
93  case ERROR_POS_INFINITY:
94  return QLatin1String("inf");
95  case ERROR_NEG_INFINITY:
96  return QLatin1String("-inf");
97  case ERROR_UNDEFINED:
98  default:
99  return QLatin1String("nan");
100  }
101 }
102 
103 //------------------------------------------------------------------------------
104 // Name:
105 //------------------------------------------------------------------------------
106 knumber_base *knumber_error::add(knumber_base *rhs) {
107 
108  if(knumber_integer *const p = dynamic_cast<knumber_integer *>(rhs)) {
109  Q_UNUSED(p);
110  return this;
111  } else if(knumber_float *const p = dynamic_cast<knumber_float *>(rhs)) {
112  Q_UNUSED(p);
113  return this;
114  } else if(knumber_fraction *const p = dynamic_cast<knumber_fraction *>(rhs)) {
115  Q_UNUSED(p);
116  return this;
117  } else if(knumber_error *const p = dynamic_cast<knumber_error *>(rhs)) {
118  if(error_ == ERROR_POS_INFINITY && p->error_ == ERROR_NEG_INFINITY) {
119  error_ = ERROR_UNDEFINED;
120  } else if(error_ == ERROR_NEG_INFINITY && p->error_ == ERROR_POS_INFINITY) {
121  error_ = ERROR_UNDEFINED;
122  } else if(p->error_ == ERROR_UNDEFINED) {
123  error_ = ERROR_UNDEFINED;
124  }
125  return this;
126  }
127 
128  Q_ASSERT(0);
129  return 0;
130 }
131 
132 //------------------------------------------------------------------------------
133 // Name:
134 //------------------------------------------------------------------------------
135 knumber_base *knumber_error::sub(knumber_base *rhs) {
136 
137  if(knumber_integer *const p = dynamic_cast<knumber_integer *>(rhs)) {
138  Q_UNUSED(p);
139  return this;
140  } else if(knumber_float *const p = dynamic_cast<knumber_float *>(rhs)) {
141  Q_UNUSED(p);
142  return this;
143  } else if(knumber_fraction *const p = dynamic_cast<knumber_fraction *>(rhs)) {
144  Q_UNUSED(p);
145  return this;
146  } else if(knumber_error *const p = dynamic_cast<knumber_error *>(rhs)) {
147  if(error_ == ERROR_POS_INFINITY && p->error_ == ERROR_POS_INFINITY) {
148  error_ = ERROR_UNDEFINED;
149  } else if(error_ == ERROR_NEG_INFINITY && p->error_ == ERROR_NEG_INFINITY) {
150  error_ = ERROR_UNDEFINED;
151  } else if(p->error_ == ERROR_UNDEFINED) {
152  error_ = ERROR_UNDEFINED;
153  }
154  return this;
155  }
156 
157  Q_ASSERT(0);
158  return 0;
159 }
160 
161 //------------------------------------------------------------------------------
162 // Name:
163 //------------------------------------------------------------------------------
164 knumber_base *knumber_error::mul(knumber_base *rhs) {
165 
166  if(knumber_integer *const p = dynamic_cast<knumber_integer *>(rhs)) {
167  if(p->is_zero()) {
168  error_ = ERROR_UNDEFINED;
169  }
170  return this;
171  } else if(knumber_float *const p = dynamic_cast<knumber_float *>(rhs)) {
172  if(p->is_zero()) {
173  error_ = ERROR_UNDEFINED;
174  }
175  return this;
176  } else if(knumber_fraction *const p = dynamic_cast<knumber_fraction *>(rhs)) {
177  if(p->is_zero()) {
178  error_ = ERROR_UNDEFINED;
179  }
180  return this;
181  } else if(knumber_error *const p = dynamic_cast<knumber_error *>(rhs)) {
182  if(error_ == ERROR_POS_INFINITY && p->error_ == ERROR_NEG_INFINITY) {
183  error_ = ERROR_NEG_INFINITY;
184  } else if(error_ == ERROR_NEG_INFINITY && p->error_ == ERROR_POS_INFINITY) {
185  error_ = ERROR_NEG_INFINITY;
186  } else if(error_ == ERROR_NEG_INFINITY && p->error_ == ERROR_NEG_INFINITY) {
187  error_ = ERROR_POS_INFINITY;
188  } else if(p->error_ == ERROR_UNDEFINED) {
189  error_ = ERROR_UNDEFINED;
190  }
191  return this;
192  }
193 
194  Q_ASSERT(0);
195  return 0;
196 }
197 
198 //------------------------------------------------------------------------------
199 // Name:
200 //------------------------------------------------------------------------------
201 knumber_base *knumber_error::div(knumber_base *rhs) {
202 
203  if(knumber_integer *const p = dynamic_cast<knumber_integer *>(rhs)) {
204  Q_UNUSED(p);
205  return this;
206  } else if(knumber_float *const p = dynamic_cast<knumber_float *>(rhs)) {
207  Q_UNUSED(p);
208  return this;
209  } else if(knumber_fraction *const p = dynamic_cast<knumber_fraction *>(rhs)) {
210  Q_UNUSED(p);
211  return this;
212  } else if(knumber_error *const p = dynamic_cast<knumber_error *>(rhs)) {
213  Q_UNUSED(p);
214  error_ = ERROR_UNDEFINED;
215  return this;
216  }
217 
218  Q_ASSERT(0);
219  return 0;
220 }
221 
222 //------------------------------------------------------------------------------
223 // Name:
224 //------------------------------------------------------------------------------
225 knumber_base *knumber_error::mod(knumber_base *rhs) {
226 
227  if(knumber_integer *const p = dynamic_cast<knumber_integer *>(rhs)) {
228  Q_UNUSED(p);
229  return this;
230  } else if(knumber_float *const p = dynamic_cast<knumber_float *>(rhs)) {
231  Q_UNUSED(p);
232  return this;
233  } else if(knumber_fraction *const p = dynamic_cast<knumber_fraction *>(rhs)) {
234  Q_UNUSED(p);
235  return this;
236  } else if(knumber_error *const p = dynamic_cast<knumber_error *>(rhs)) {
237  Q_UNUSED(p);
238  error_ = ERROR_UNDEFINED;
239  return this;
240  }
241 
242  Q_ASSERT(0);
243  return 0;
244 }
245 
246 //------------------------------------------------------------------------------
247 // Name:
248 //------------------------------------------------------------------------------
249 knumber_base *knumber_error::pow(knumber_base *rhs) {
250 
251  if(knumber_integer *const p = dynamic_cast<knumber_integer *>(rhs)) {
252  Q_UNUSED(p);
253  return this;
254  } else if(knumber_float *const p = dynamic_cast<knumber_float *>(rhs)) {
255  Q_UNUSED(p);
256  return this;
257  } else if(knumber_fraction *const p = dynamic_cast<knumber_fraction *>(rhs)) {
258  Q_UNUSED(p);
259  return this;
260  } else if(knumber_error *const p = dynamic_cast<knumber_error *>(rhs)) {
261 
262  switch(error_) {
263  case ERROR_POS_INFINITY:
264  if(p->sign() > 0) {
265  return this;
266  } else if(p->sign() < 0) {
267  knumber_integer *n = new knumber_integer(0);
268  delete this;
269  return n;
270  } else {
271  error_ = ERROR_UNDEFINED;
272  return this;
273  }
274  break;
275  case ERROR_NEG_INFINITY:
276  if(p->sign() > 0) {
277  error_ = ERROR_POS_INFINITY;
278  return this;
279  } else if(p->sign() < 0) {
280  knumber_integer *n = new knumber_integer(0);
281  delete this;
282  return n;
283  } else {
284  error_ = ERROR_UNDEFINED;
285  return this;
286  }
287  break;
288  case ERROR_UNDEFINED:
289  return this;
290  }
291  }
292 
293  Q_ASSERT(0);
294  return 0;
295 }
296 
297 //------------------------------------------------------------------------------
298 // Name:
299 //------------------------------------------------------------------------------
300 knumber_base *knumber_error::neg() {
301 
302  switch(error_) {
303  case ERROR_POS_INFINITY:
304  error_ = ERROR_NEG_INFINITY;
305  break;
306  case ERROR_NEG_INFINITY:
307  error_ = ERROR_POS_INFINITY;
308  break;
309  case ERROR_UNDEFINED:
310  default:
311  break;
312  }
313 
314  return this;
315 }
316 
317 //------------------------------------------------------------------------------
318 // Name:
319 //------------------------------------------------------------------------------
320 knumber_base *knumber_error::cmp() {
321 
322  error_ = ERROR_UNDEFINED;
323  return this;
324 }
325 
326 //------------------------------------------------------------------------------
327 // Name:
328 //------------------------------------------------------------------------------
329 knumber_base *knumber_error::abs() {
330 
331  switch(error_) {
332  case ERROR_NEG_INFINITY:
333  error_ = ERROR_POS_INFINITY;
334  break;
335  case ERROR_POS_INFINITY:
336  case ERROR_UNDEFINED:
337  default:
338  break;
339  }
340 
341  return this;
342 }
343 
344 //------------------------------------------------------------------------------
345 // Name:
346 //------------------------------------------------------------------------------
347 knumber_base *knumber_error::sqrt() {
348 
349  switch(error_) {
350  case ERROR_NEG_INFINITY:
351  error_ = ERROR_UNDEFINED;
352  break;
353  case ERROR_POS_INFINITY:
354  case ERROR_UNDEFINED:
355  default:
356  break;
357  }
358 
359  return this;
360 }
361 
362 //------------------------------------------------------------------------------
363 // Name:
364 //------------------------------------------------------------------------------
365 knumber_base *knumber_error::cbrt() {
366 
367  return this;
368 }
369 
370 //------------------------------------------------------------------------------
371 // Name:
372 //------------------------------------------------------------------------------
373 knumber_base *knumber_error::factorial() {
374  error_ = ERROR_UNDEFINED;
375  return this;
376 }
377 
378 //------------------------------------------------------------------------------
379 // Name:
380 //------------------------------------------------------------------------------
381 knumber_base *knumber_error::sin() {
382 
383  error_ = ERROR_UNDEFINED;
384  return this;
385 }
386 
387 //------------------------------------------------------------------------------
388 // Name:
389 //------------------------------------------------------------------------------
390 knumber_base *knumber_error::cos() {
391 
392  error_ = ERROR_UNDEFINED;
393  return this;
394 }
395 
396 //------------------------------------------------------------------------------
397 // Name:
398 //------------------------------------------------------------------------------
399 knumber_base* knumber_error::tgamma() {
400 
401  error_ = ERROR_UNDEFINED;
402  return this;
403 }
404 
405 //------------------------------------------------------------------------------
406 // Name:
407 //------------------------------------------------------------------------------
408 knumber_base *knumber_error::tan() {
409 
410  error_ = ERROR_UNDEFINED;
411  return this;
412 }
413 
414 //------------------------------------------------------------------------------
415 // Name:
416 //------------------------------------------------------------------------------
417 knumber_base *knumber_error::asin() {
418 
419  error_ = ERROR_UNDEFINED;
420  return this;
421 }
422 
423 //------------------------------------------------------------------------------
424 // Name:
425 //------------------------------------------------------------------------------
426 knumber_base *knumber_error::acos() {
427 
428  error_ = ERROR_UNDEFINED;
429  return this;
430 }
431 
432 //------------------------------------------------------------------------------
433 // Name:
434 //------------------------------------------------------------------------------
435 knumber_base *knumber_error::atan() {
436 
437  switch(error_) {
438  case ERROR_POS_INFINITY:
439  delete this;
440  return new knumber_float(M_PI / 2.0);
441  case ERROR_NEG_INFINITY:
442  delete this;
443  return new knumber_float(-M_PI / 2.0);
444  case ERROR_UNDEFINED:
445  default:
446  return this;
447  }
448 }
449 
450 //------------------------------------------------------------------------------
451 // Name:
452 //------------------------------------------------------------------------------
453 knumber_base *knumber_error::sinh() {
454 
455  return this;
456 }
457 
458 //------------------------------------------------------------------------------
459 // Name:
460 //------------------------------------------------------------------------------
461 knumber_base *knumber_error::cosh() {
462 
463  error_ = ERROR_UNDEFINED;
464  return this;
465 }
466 
467 //------------------------------------------------------------------------------
468 // Name:
469 //------------------------------------------------------------------------------
470 knumber_base *knumber_error::tanh() {
471 
472  if(sign() > 0) {
473  delete this;
474  return new knumber_integer(1);
475  } else if(sign() < 0) {
476  delete this;
477  return new knumber_integer(-1);
478  } else {
479  return this;
480  }
481 }
482 
483 //------------------------------------------------------------------------------
484 // Name:
485 //------------------------------------------------------------------------------
486 knumber_base *knumber_error::asinh() {
487 
488  return this;
489 }
490 
491 //------------------------------------------------------------------------------
492 // Name:
493 //------------------------------------------------------------------------------
494 knumber_base *knumber_error::acosh() {
495 
496  if(sign() < 0) {
497  error_ = ERROR_UNDEFINED;
498  }
499 
500  return this;
501 }
502 
503 //------------------------------------------------------------------------------
504 // Name:
505 //------------------------------------------------------------------------------
506 knumber_base *knumber_error::atanh() {
507 
508  error_ = ERROR_UNDEFINED;
509  return this;
510 }
511 
512 //------------------------------------------------------------------------------
513 // Name:
514 //------------------------------------------------------------------------------
515 int knumber_error::compare(knumber_base *rhs) {
516 
517  if(knumber_integer *const p = dynamic_cast<knumber_integer *>(rhs)) {
518  if(sign() > 0) {
519  return 1;
520  } else {
521  return -1;
522  }
523  } else if(knumber_float *const p = dynamic_cast<knumber_float *>(rhs)) {
524  if(sign() > 0) {
525  return 1;
526  } else {
527  return -1;
528  }
529  } else if(knumber_fraction *const p = dynamic_cast<knumber_fraction *>(rhs)) {
530  if(sign() > 0) {
531  return 1;
532  } else {
533  return -1;
534  }
535  } else if(knumber_error *const p = dynamic_cast<knumber_error *>(rhs)) {
536  return sign() == p->sign();
537  }
538 
539  Q_ASSERT(0);
540  return 0;
541 }
542 
543 //------------------------------------------------------------------------------
544 // Name:
545 //------------------------------------------------------------------------------
546 knumber_base *knumber_error::clone() {
547  return new knumber_error(this);
548 }
549 
550 //------------------------------------------------------------------------------
551 // Name:
552 //------------------------------------------------------------------------------
553 knumber_base *knumber_error::bitwise_and(knumber_base *rhs) {
554  Q_UNUSED(rhs);
555  error_ = ERROR_UNDEFINED;
556  return this;
557 }
558 
559 //------------------------------------------------------------------------------
560 // Name:
561 //------------------------------------------------------------------------------
562 knumber_base *knumber_error::bitwise_xor(knumber_base *rhs) {
563  Q_UNUSED(rhs);
564  error_ = ERROR_UNDEFINED;
565  return this;
566 }
567 
568 //------------------------------------------------------------------------------
569 // Name:
570 //------------------------------------------------------------------------------
571 knumber_base *knumber_error::bitwise_or(knumber_base *rhs) {
572  Q_UNUSED(rhs);
573  error_ = ERROR_UNDEFINED;
574  return this;
575 }
576 
577 //------------------------------------------------------------------------------
578 // Name:
579 //------------------------------------------------------------------------------
580 knumber_base *knumber_error::bitwise_shift(knumber_base *rhs) {
581  Q_UNUSED(rhs);
582  error_ = ERROR_UNDEFINED;
583  return this;
584 }
585 
586 //------------------------------------------------------------------------------
587 // Name:
588 //------------------------------------------------------------------------------
589 bool knumber_error::is_integer() const {
590 
591  return false;
592 }
593 
594 //------------------------------------------------------------------------------
595 // Name:
596 //------------------------------------------------------------------------------
597 bool knumber_error::is_zero() const {
598 
599  return false;
600 }
601 
602 //------------------------------------------------------------------------------
603 // Name:
604 //------------------------------------------------------------------------------
605 int knumber_error::sign() const {
606 
607  switch(error_) {
608  case ERROR_POS_INFINITY:
609  return +1;
610  case ERROR_NEG_INFINITY:
611  return -1;
612  case ERROR_UNDEFINED:
613  default:
614  return 0;
615  }
616 }
617 
618 //------------------------------------------------------------------------------
619 // Name:
620 //------------------------------------------------------------------------------
621 knumber_base *knumber_error::reciprocal() {
622 
623  error_ = ERROR_UNDEFINED;
624  return this;
625 }
626 
627 //------------------------------------------------------------------------------
628 // Name:
629 //------------------------------------------------------------------------------
630 knumber_base *knumber_error::log2() {
631  error_ = ERROR_UNDEFINED;
632  return this;
633 }
634 
635 //------------------------------------------------------------------------------
636 // Name:
637 //------------------------------------------------------------------------------
638 knumber_base *knumber_error::log10() {
639  error_ = ERROR_UNDEFINED;
640  return this;
641 }
642 
643 //------------------------------------------------------------------------------
644 // Name:
645 //------------------------------------------------------------------------------
646 knumber_base *knumber_error::ln() {
647  error_ = ERROR_UNDEFINED;
648  return this;
649 }
650 
651 //------------------------------------------------------------------------------
652 // Name:
653 //------------------------------------------------------------------------------
654 knumber_base *knumber_error::ceil() {
655  error_ = ERROR_UNDEFINED;
656  return this;
657 }
658 
659 //------------------------------------------------------------------------------
660 // Name:
661 //------------------------------------------------------------------------------
662 knumber_base *knumber_error::floor() {
663  error_ = ERROR_UNDEFINED;
664  return this;
665 }
666 
667 //------------------------------------------------------------------------------
668 // Name:
669 //------------------------------------------------------------------------------
670 knumber_base *knumber_error::exp2() {
671  error_ = ERROR_UNDEFINED;
672  return this;
673 }
674 
675 //------------------------------------------------------------------------------
676 // Name:
677 //------------------------------------------------------------------------------
678 knumber_base *knumber_error::exp10() {
679  error_ = ERROR_UNDEFINED;
680  return this;
681 }
682 
683 //------------------------------------------------------------------------------
684 // Name:
685 //------------------------------------------------------------------------------
686 knumber_base *knumber_error::exp() {
687  error_ = ERROR_UNDEFINED;
688  return this;
689 }
690 
691 //------------------------------------------------------------------------------
692 // Name:
693 //------------------------------------------------------------------------------
694 quint64 knumber_error::toUint64() const {
695  return 0;
696 }
697 
698 //------------------------------------------------------------------------------
699 // Name:
700 //------------------------------------------------------------------------------
701 qint64 knumber_error::toInt64() const {
702  return 0;
703 }
704 
705 //------------------------------------------------------------------------------
706 // Name:
707 //------------------------------------------------------------------------------
708 knumber_base *knumber_error::bin(knumber_base *rhs) {
709  Q_UNUSED(rhs);
710  error_ = ERROR_UNDEFINED;
711  return this;
712 }
713 
714 }
detail::knumber_error::knumber_error
knumber_error()
Definition: knumber_error.cpp:50
detail::knumber_error::sqrt
virtual knumber_base * sqrt()
Definition: knumber_error.cpp:347
detail::knumber_error::log10
virtual knumber_base * log10()
Definition: knumber_error.cpp:638
detail::knumber_error::bin
virtual knumber_base * bin(knumber_base *rhs)
Definition: knumber_error.cpp:708
detail::knumber_error::sinh
virtual knumber_base * sinh()
Definition: knumber_error.cpp:453
detail::knumber_error::add
virtual knumber_base * add(knumber_base *rhs)
Definition: knumber_error.cpp:106
detail::knumber_error::exp
virtual knumber_base * exp()
Definition: knumber_error.cpp:686
detail::knumber_error::cbrt
virtual knumber_base * cbrt()
Definition: knumber_error.cpp:365
detail::knumber_error::atanh
virtual knumber_base * atanh()
Definition: knumber_error.cpp:506
detail::knumber_error::sub
virtual knumber_base * sub(knumber_base *rhs)
Definition: knumber_error.cpp:135
detail::knumber_error::ERROR_NEG_INFINITY
Definition: knumber_error.h:38
detail::knumber_error::tan
virtual knumber_base * tan()
Definition: knumber_error.cpp:408
detail::knumber_error::factorial
virtual knumber_base * factorial()
Definition: knumber_error.cpp:373
detail::knumber_error::log2
virtual knumber_base * log2()
Definition: knumber_error.cpp:630
detail::knumber_error::Error
Error
Definition: knumber_error.h:35
detail::knumber_error::mod
virtual knumber_base * mod(knumber_base *rhs)
Definition: knumber_error.cpp:225
detail::knumber_error::tanh
virtual knumber_base * tanh()
Definition: knumber_error.cpp:470
detail::knumber_error::acos
virtual knumber_base * acos()
Definition: knumber_error.cpp:426
detail::knumber_error::div
virtual knumber_base * div(knumber_base *rhs)
Definition: knumber_error.cpp:201
detail::knumber_error::sign
virtual int sign() const
Definition: knumber_error.cpp:605
detail::knumber_error::acosh
virtual knumber_base * acosh()
Definition: knumber_error.cpp:494
detail::knumber_error::bitwise_shift
virtual knumber_base * bitwise_shift(knumber_base *rhs)
Definition: knumber_error.cpp:580
detail::knumber_error::ln
virtual knumber_base * ln()
Definition: knumber_error.cpp:646
detail::knumber_base
Definition: knumber_base.h:38
detail::knumber_fraction
Definition: knumber_fraction.h:28
detail::knumber_error::clone
virtual knumber_base * clone()
Definition: knumber_error.cpp:546
detail::knumber_integer
Definition: knumber_integer.h:28
detail::knumber_error::exp2
virtual knumber_base * exp2()
Definition: knumber_error.cpp:670
detail::knumber_error::asin
virtual knumber_base * asin()
Definition: knumber_error.cpp:417
knumber_fraction.h
QString
detail::knumber_error::pow
virtual knumber_base * pow(knumber_base *rhs)
Definition: knumber_error.cpp:249
detail::knumber_error::is_zero
virtual bool is_zero() const
Definition: knumber_error.cpp:597
detail::knumber_error::atan
virtual knumber_base * atan()
Definition: knumber_error.cpp:435
detail::knumber_error::bitwise_and
virtual knumber_base * bitwise_and(knumber_base *rhs)
Definition: knumber_error.cpp:553
detail::knumber_error::floor
virtual knumber_base * floor()
Definition: knumber_error.cpp:662
detail::knumber_error::tgamma
virtual knumber_base * tgamma()
Definition: knumber_error.cpp:399
knumber_integer.h
detail::knumber_error::ERROR_POS_INFINITY
Definition: knumber_error.h:37
detail::knumber_error::asinh
virtual knumber_base * asinh()
Definition: knumber_error.cpp:486
detail::knumber_error::mul
virtual knumber_base * mul(knumber_base *rhs)
Definition: knumber_error.cpp:164
QLatin1String
detail::knumber_error::reciprocal
virtual knumber_base * reciprocal()
Definition: knumber_error.cpp:621
detail::knumber_error::knumber_float
friend class knumber_float
Definition: knumber_error.h:32
detail::knumber_error::toInt64
virtual qint64 toInt64() const
Definition: knumber_error.cpp:701
detail::knumber_float
Definition: knumber_float.h:28
knumber_error.h
detail::knumber_error::sin
virtual knumber_base * sin()
Definition: knumber_error.cpp:381
detail::knumber_error::ceil
virtual knumber_base * ceil()
Definition: knumber_error.cpp:654
detail::knumber_error::compare
virtual int compare(knumber_base *rhs)
Definition: knumber_error.cpp:515
detail::knumber_error::~knumber_error
virtual ~knumber_error()
Definition: knumber_error.cpp:57
knumber_float.h
detail::knumber_error::exp10
virtual knumber_base * exp10()
Definition: knumber_error.cpp:678
detail::knumber_error
Definition: knumber_error.h:28
detail::knumber_error::abs
virtual knumber_base * abs()
Definition: knumber_error.cpp:329
detail::knumber_error::bitwise_or
virtual knumber_base * bitwise_or(knumber_base *rhs)
Definition: knumber_error.cpp:571
detail::knumber_error::ERROR_UNDEFINED
Definition: knumber_error.h:36
detail::knumber_error::is_integer
virtual bool is_integer() const
Definition: knumber_error.cpp:589
detail::knumber_error::cmp
virtual knumber_base * cmp()
Definition: knumber_error.cpp:320
detail::knumber_error::toUint64
virtual quint64 toUint64() const
Definition: knumber_error.cpp:694
detail::knumber_error::knumber_integer
friend class knumber_integer
Definition: knumber_error.h:30
detail::knumber_error::toString
virtual QString toString(int precision) const
Definition: knumber_error.cpp:88
detail::knumber_error::neg
virtual knumber_base * neg()
Definition: knumber_error.cpp:300
detail::knumber_error::cos
virtual knumber_base * cos()
Definition: knumber_error.cpp:390
detail::knumber_error::bitwise_xor
virtual knumber_base * bitwise_xor(knumber_base *rhs)
Definition: knumber_error.cpp:562
detail::knumber_error::cosh
virtual knumber_base * cosh()
Definition: knumber_error.cpp:461
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