summaryrefslogtreecommitdiffstats
path: root/doc/kcalc/index.docbook
blob: bcf55ffbfd157c856cc62f4d8335d2f9ae8f0b18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kappname "&kcalc;" > 
  <!ENTITY package "tdeutils">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % English "INCLUDE" > <!-- change language only here -->
  <!ENTITY commands SYSTEM "commands.docbook">
]>

<book lang="&language;">
<bookinfo>
<title>The &kcalc; Handbook</title>

<authorgroup>
<author>
&Bernd.Johannes.Wuebben; &Bernd.Johannes.Wuebben.mail;
</author>

<author>
&Pamela.Roberts;&Pamela.Roberts.mail;
<!-- <affiliation><jobtitle>Handbook maintainer</jobtitle>
</affiliation> -->
</author>
<author>
&Anne-Marie.Mahfouf;&Anne-Marie.Mahfouf.mail;
<!-- <affiliation><jobtitle>Handbook maintainer</jobtitle>
</affiliation> -->
</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>

<copyright>
<year>2001</year> <year>2002</year> <year>2005</year>	<year>2006</year>
<holder>&Bernd.Johannes.Wuebben;, &Pamela.Roberts;,
&Anne-Marie.Mahfouf;</holder>
</copyright>

<legalnotice>&FDLNotice;</legalnotice>

<date>2006-02-13</date>
<releaseinfo>2.0.2</releaseinfo>

<abstract><para>&kcalc; is a scientific calculator for &kde;</para></abstract>

<keywordset>
<keyword>KDE</keyword>
<keyword>KCalc</keyword>
<keyword>calculator</keyword>
</keywordset>
</bookinfo>

<chapter id="introduction">
<title>Introduction</title>

<para>This document describes &kcalc; version 1.8.</para>

<para>&kcalc; offers many more mathematical functions than meet the eye
on a first glance. Please study the section on keyboard accelerators and
modes in this handbook to learn more about the many functions
available.</para>

<para>In addition to the usual functionality offered by most scientific
calculators, &kcalc; offers a number of features, which I think are
worthwhile pointing out:</para>

<itemizedlist>
<listitem>
<para>&kcalc; provides trigonometric functions, logic operations, and it is
able to do statistical calculations.</para>
</listitem>
<listitem>
<para>&kcalc; allows you to cut and paste numbers from/into its display.</para>
</listitem>
<listitem>
<para>&kcalc; features a <firstterm>results-stack</firstterm> which lets
you conveniently recall previous results.</para>
</listitem>
<listitem>
<para>You can configure &kcalc;'s display colors and font.</para>
</listitem>
<listitem>
<para>You can configure &kcalc;'s  precision and the number
of digits after the period.</para>
</listitem>
<listitem>
<para> &kcalc; offers a great number of useful  <link linkend="key-accels">
key-bindings</link>, which make using &kcalc; without using a pointing device easy.</para>
<para>Hint: pressing (and holding) the <keycap>&Ctrl;</keycap>-key, displays on
every button,
the corresponding key-binding.</para>
</listitem>
</itemizedlist>

<para>Have fun with &kcalc;!</para>

<para>Bernd Johannes Wuebben</para>

</chapter>


<chapter id="usage">
<title>Usage</title>
<sect1 id="general-usage">
<title>General Usage</title>

<para>General usage is straight forward and similar to the way most
simple scientific calculators operate, but take note of the following
special &kcalc; features:</para>

<variablelist>
<varlistentry>
<term>Result Stack</term>
<listitem><para>Each time you &LMB; click on the
<guibutton>=</guibutton> button or press your keyboard's
<keycap>Enter</keycap> or <keysym>=</keysym> keys, the display result is
written to &kcalc;'s result stack. You can navigate through the result
stack with your keyboard's
<keycombo action="simul">&Ctrl;<keycap>Z</keycap></keycombo>
and <keycombo action="simul">&Ctrl; &Shift;<keycap>Z</keycap></keycombo>
keys.</para> 
</listitem>
</varlistentry> 

<varlistentry>
<term>Percent Function</term>
<listitem>
<para>The percent function works somewhat differently to that on most
calculators. However, once understood, its enhanced functionality proves
quite useful. See the section about the <link
linkend="percent">percent</link> function for further details.</para>
</listitem></varlistentry>
      
<varlistentry>
<term>Cut and Paste</term>
<listitem>
<para><itemizedlist>
<listitem>
<para>Pressing <keycombo action="simul">&Ctrl;<keycap>C</keycap></keycombo>
will place the displayed number on to the clipboard.</para>
</listitem>
<listitem>
<para>Pressing <keycombo action="simul">&Ctrl;<keycap>V</keycap></keycombo>
will paste the clipboard content into the display if the content of the
clipboard is a valid floating point number.</para>
</listitem>
<listitem>
<para>It is still possible to copy/paste by clicking on &kcalc;'s display,
but this may disappear in future versions.</para>
</listitem>
</itemizedlist>
</para></listitem></varlistentry>

<varlistentry>
<term>Advanced functions</term>
<listitem>
<para>When you start &kcalc; for the first time, the calculator will only
display buttons for basic arithmetic computations.</para>
<para>Under the menu entry <guimenu>Settings</guimenu> it is possible to
open extra buttons for &kcalc;:
it is for example possible to choose
<link linkend="statistical-mode">Statistical</link> or
<link linkend="trigonometric-mode">Trigonometric</link> buttons.</para> 
</listitem>
</varlistentry>
</variablelist>
</sect1>

<sect1 id="statistical-mode">
<title>Statistical Mode</title>

<para>In this mode the left column of buttons is allocated to statistical
functions:</para>
<para> Most of the functionality in this mode is centered around the <guibutton>Dat</guibutton>
 button. To create a data list of numbers, enter a number into the calculator and press
 <guibutton>Dat</guibutton>. A sequentially increasing number is shown on the display indicating
 which position in the Data <quote>list</quote> the number occupies. A traditional calculator only
 stores three values for statistical functions: The number of discrete items in a list, the sum of
 the data items entered and the sum of the square of all data items in the list. &kcalc; differs by
 actually storing each discrete value, allowing you to calculate the median value of the data.
</para>

<informaltable><tgroup cols="2">
<thead>
<row><entry>Buttons</entry>
<entry>Function</entry></row></thead>

<tbody>
<row><entry><guibutton>N</guibutton></entry>
<entry>Recall the number of data items entered</entry></row>

<row><entry><guibutton>Inv</guibutton> <guibutton>N</guibutton></entry>
<entry>Display the sum of all data items entered</entry></row>

<row><entry><guibutton>Mea</guibutton></entry>
<entry>Display the mean of the data items entered</entry></row>

<row><entry><guibutton>Inv</guibutton> <guibutton>Mea</guibutton></entry>
<entry>Display the sum of the square of all data items entered</entry></row>

<row><entry><guibutton>Std</guibutton></entry>
<entry>Display the standard deviation (n)</entry></row>

<row><entry><guibutton>Inv</guibutton> <guibutton>Std</guibutton></entry>
<entry>Display the population standard deviation (n-1)</entry></row>

<row><entry><guibutton>Med</guibutton></entry>
<entry>Display the median</entry></row>

<row><entry><guibutton>Dat</guibutton></entry>
<entry>Enter a data item</entry></row>

<row><entry><guibutton>Inv</guibutton> <guibutton>Dat</guibutton></entry>
<entry>Clear last data item entered</entry></row>

<row><entry><guibutton>Cst</guibutton></entry>
<entry>Clear the store of all data item entered</entry></row>

</tbody></tgroup></informaltable>


</sect1>

<sect1 id="trigonometric-mode">
<title>Trigonometric Mode</title>

<para>In this mode the left column of buttons is allocated to trigonometric
functions:</para>

<informaltable><tgroup cols="2">
<thead>
<row><entry>Buttons</entry>
<entry>Function</entry></row>
</thead>
<tbody>
<row><entry><guibutton>Hyp</guibutton></entry>
<entry>Enter Hyperbolic sub mode. Hyp Sin for example is the hyperbolic sine:
sinh(x)</entry></row>

<row><entry><guibutton>Sin</guibutton></entry>
<entry>Compute the sine</entry></row>

<row><entry><guibutton>Inv</guibutton> <guibutton>Sin</guibutton></entry>
<entry>Compute the inverse sine</entry></row>

<row><entry><guibutton>Cos</guibutton></entry>
<entry>Compute the cosine</entry></row>

<row><entry><guibutton>Inv</guibutton> <guibutton>Cos</guibutton></entry>
<entry>Compute the inverse cosine</entry></row>

<row><entry><guibutton>Tan</guibutton></entry>
<entry>Compute the tangent</entry></row>

<row><entry><guibutton>Inv</guibutton> <guibutton>Tan</guibutton></entry>
<entry>Compute the inverse tangent</entry></row>

<row><entry><guibutton>Log</guibutton></entry>
<entry>Compute the Log base 10</entry></row>

<row><entry><guibutton>Inv</guibutton> <guibutton>Log</guibutton></entry>
<entry>Compute 10 to the power of x</entry></row>

<row><entry><guibutton>Ln</guibutton></entry>
<entry>Compute the natural logarithm. That is the log to base e</entry></row>

<row><entry><guibutton>Inv</guibutton> <guibutton>Ln</guibutton></entry>
<entry>Compute e to the power of x</entry></row>

</tbody></tgroup></informaltable>

</sect1>

<sect1 id="memory-operations">
<title>Memory Operations</title>

<para>&kcalc; supports the memory operations given by standard
calculators plus six slots to hold constants.</para>

<sect2 id="standard_memory">
<title> Standard Memory Operations</title>

<para>&kcalc; can remember results of operations for you, and re-use them in
later calculations.  You can access these functions via several buttons
labelled <guibutton>MR</guibutton>, <guibutton>MS</guibutton>,
<guibutton>M+</guibutton> and <guibutton>MC</guibutton>.</para>

<variablelist>
<varlistentry>
<term><guibutton>MS</guibutton></term>
<listitem><para>The <guibutton>MS</guibutton> button stores the currently
displayed result in memory.</para></listitem>
</varlistentry>

<varlistentry>
<term><guibutton>M+</guibutton></term>
<listitem><para>The <guibutton>M+</guibutton> button adds the current result to the
one in memory. So, if you had stored a 20, and the current result is a 5,
your memory would contain 25 when you press it. If the memory is empty, it
acts like <guibutton>MS</guibutton> and simply stores the
result.</para></listitem>
</varlistentry>

<varlistentry>
<term><guibutton>MR</guibutton></term>
<listitem><para>The <guibutton>MR</guibutton> button gets the value stored
in memory and puts it in the display.</para></listitem>
</varlistentry>

<varlistentry>
<term><guibutton>MC</guibutton></term>
<listitem><para>The <guibutton>MC</guibutton> button clears the
memory.</para></listitem>
</varlistentry>
</variablelist>

<para>If a value is stored in memory a <guilabel>M</guilabel> will appear in
the status bar, next to the calculator mode indicator</para>
</sect2>

<sect2 id="constant_buttons">
<title>Constants</title>

<para>The six constants buttons <guibutton>C1</guibutton> to
<guibutton>C6</guibutton> will only be visible after activating the
item <guilabel>Constants Buttons</guilabel> in the menu
<guimenu>Settings</guimenu> of the menu bar.</para>

<para>To store the number shown in the &kcalc; display in one of the
six constants, first press <guibutton>Inv</guibutton> followed
by the desired button key <guibutton>C1</guibutton> up to
<guibutton>C6</guibutton>.</para>

<para>To use the value stored in any of the contants in a calculation, just 
 press the desired button (<guibutton>C1</guibutton> to <guibutton>C6</guibutton>), 
 and the corresponding number will appear in the display. </para>

<para>IIt is possible to change the label of the constants button to make it easier 
 to remember which button holds which constant. Click with the right mouse 
 button on one of the buttons <guibutton>C1</guibutton> to <guibutton> 
 C6</guibutton>. A popup menu appears, in which you select <guilabel> 
 Set Name</guilabel>. </para>

<para>There are many (mostly physical) predefined constants, which can
be put on any of the six buttons <guibutton>C1</guibutton> -
<guibutton>C6</guibutton> by selecting the desired constant in the
popup menu that appears after right clicking on one of the constant
buttons and selecting <guilabel>Choose from List</guilabel>. Though
the predefined constants can also be accessed via the
<guimenu>Constants</guimenu> in the menu bar, storing it on a
constants button is very handy, if the number is used
frequently.</para>

</sect2>

</sect1>

<sect1 id="key-accels">
<title>Single Key Accelerators</title>

<para>To simplify entering calculations from the keyboard &kcalc; has single key
accelerators for most functions. For example entering <userinput>7R</userinput>
or <userinput>7r</userinput> will calculate the reciprocal of 7 (1/7).</para>

<para>During a computation, you can always press <keycap>&Ctrl;</keycap> to make each
button display its key-binding.</para>

<informaltable><tgroup cols="3">
<thead>
<row><entry>Key</entry>
<entry>Function</entry>
<entry>Notes</entry></row>
</thead>
<tbody>

<row><entry><keycap>H</keycap></entry>
<entry><guibutton>Hyp</guibutton></entry>
<entry>Hyperbolic as in Hyp Sin,
the sinh(x)</entry></row>

<row><entry><keycap>S</keycap></entry>
<entry><guibutton>Sin</guibutton></entry>
<entry></entry></row>

<row><entry><keycap>C</keycap></entry>
<entry><guibutton>Cos</guibutton></entry>
<entry></entry></row>

<row><entry><keycap>T</keycap></entry>
<entry><guibutton>Tan</guibutton></entry>
<entry></entry></row>

<row><entry><keycap>N</keycap></entry>
<entry><guibutton>Ln</guibutton></entry>
<entry>log base e</entry></row>

<row><entry><keycap>L</keycap></entry>
<entry><guibutton>Log</guibutton></entry>
<entry>log base 10</entry></row>

<row><entry><keycap>I</keycap></entry>
<entry> <guibutton>Inv</guibutton></entry>
<entry>Inverse, &eg; if
you want arcsin(x) type <userinput>i s </userinput></entry></row>

<row><entry><keysym>\</keysym></entry>
<entry><guibutton>+/-</guibutton></entry>
<entry>Change sign</entry></row>

<row><entry><keysym>[</keysym></entry>
<entry><guibutton>x^2</guibutton></entry>
<entry></entry></row>

<row><entry><keysym>^</keysym></entry>
<entry><guibutton>x^y</guibutton></entry>
<entry></entry></row>

<row><entry><keysym>!</keysym></entry>
<entry><guibutton>x!</guibutton></entry>
<entry>Factorial</entry></row>

<row><entry><keysym>&lt;</keysym></entry>
<entry><guibutton>Lsh</guibutton></entry>
<entry>Left shift. Note: <guibutton>Inv</guibutton>
<guibutton>Lsh</guibutton> is Right shift</entry></row>

<row><entry><keysym>&amp;</keysym></entry>
<entry><guibutton>And</guibutton></entry>
<entry>Logical AND</entry></row>

<row><entry><keysym>*</keysym></entry>
<entry><guibutton>X</guibutton></entry>
<entry>Multiply</entry></row>

<row><entry><keysym>/</keysym></entry>
<entry><guibutton>/</guibutton></entry>
<entry>Divide</entry></row>

<row><entry><keycap>D</keycap></entry>
<entry><guibutton>Dat</guibutton></entry>
<entry>Enter data item in statistical mode</entry></row>

<row><entry><keycap>O</keycap></entry>
<entry><guibutton>Or</guibutton></entry>
<entry>Logical OR. Note: <guibutton>Inv</guibutton>
<guibutton>Or</guibutton> is XOR</entry></row>

<row><entry><keycap>R</keycap></entry>
<entry><guibutton>1/x</guibutton></entry>
<entry>Reciprocal</entry></row>

<row><entry><keysym>=</keysym></entry>
<entry><guibutton>=</guibutton></entry>
<entry></entry></row>

<row><entry><keycap>Enter</keycap></entry>
<entry><guibutton>=</guibutton></entry>
<entry></entry></row>

<row><entry><keycap>Return</keycap></entry>
<entry><guibutton>=</guibutton></entry>
<entry></entry></row>

<row><entry><keycap>Page Up</keycap></entry>
<entry><guibutton>C</guibutton></entry>
<entry>Clear</entry></row>

<row><entry><keycap>Esc</keycap></entry>
<entry><guibutton>C</guibutton></entry>
<entry>Clear</entry></row>

<row><entry><keycap>Prior</keycap></entry>
<entry><guibutton>C</guibutton></entry>
<entry>Clear</entry></row>

<row><entry><keycap>Page Down</keycap></entry>
<entry><guibutton>AC</guibutton></entry>
<entry>Clear all</entry></row>

<row><entry><keycap>Next</keycap></entry>
<entry><guibutton>AC</guibutton></entry>
<entry>Clear all</entry></row>

<row><entry><keycap>Del</keycap></entry>
<entry><guibutton>AC</guibutton></entry>
<entry>Clear all</entry></row>

</tbody></tgroup></informaltable>

</sect1>
</chapter>

<chapter id="comments-on-specific-functions">
<title>Comments on Specific Functions</title>

<sect1 id="mod">
<title>Mod and Inv Mod</title>

<variablelist>
<varlistentry>
<term><guibutton>Mod</guibutton> gives the remainder of dividing the displayed
number by the next input number.</term>
<listitem><para><userinput>22 Mod 8 = </userinput> will give the result
<emphasis>6</emphasis></para>
<para><userinput>22.345 Mod 8 = </userinput> will give the result
<emphasis>6.345</emphasis></para>
</listitem></varlistentry>

<varlistentry>
<term><guibutton>Inv</guibutton> <guibutton>Mod</guibutton> does integer
division of the displayed number by the next input number.</term>
<listitem><para><userinput>22 Inv Mod 8 = </userinput> will give the result
<emphasis>2</emphasis></para>
<para><userinput>22.345 Inv Mod 8 = </userinput> also gives <emphasis>2</emphasis>
</para></listitem></varlistentry>
</variablelist>

</sect1>


<sect1 id="percent">
<title>&percnt;</title>

<para>Used instead of the <guibutton>=</guibutton> key,
<guibutton>%</guibutton> interprets the final operation carried out in  the
current calculation as follows:</para>

<para><itemizedlist>
<listitem>
<para>If the final operator is + or - the second argument is interpreted as percentage of the first operand.
</para>
</listitem>
<listitem>
<para>If the final operator is * divide the result of the multiplication by 100.
</para>
</listitem>
<listitem>
<para>If the final operator is / give the left operand
as a percentage of the right operand.
</para>
</listitem>
<listitem>
<para> In all other cases the &percnt; key gives identical results to the = key.
</para>
</listitem>
</itemizedlist></para>

<variablelist>
<varlistentry>
<term>Examples:</term>
<listitem>
<para><userinput>150 + 50 %</userinput> gives <emphasis>225</emphasis> (150 plus 50 percent of this amount)</para>
<para><userinput>42 * 3 %</userinput> gives
<emphasis>1.26</emphasis>  (42 * 3 / 100)</para>
<para><userinput>45 / 55 %</userinput> gives
<emphasis>81.81...</emphasis> (45 is 81.81.. percent of 55)</para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="lsh-rsh">
<title>Lsh and Inv Lsh</title>
<variablelist>
<varlistentry>
<term><guibutton>Lsh</guibutton> left shifts the integer part of the displayed
value (multiplies it by 2) n times, where n is the next input number, and
gives an integer result:</term>
<listitem><para><userinput>10 Lsh 3 =</userinput> gives <emphasis>80</emphasis>
(10 multiplied by 2 three times).</para>
<para><userinput>10.345 Lsh 3 =</userinput> also gives
<emphasis>80</emphasis>.</para></listitem>
</varlistentry>

<varlistentry>
<term><guibutton>Inv</guibutton> <guibutton>Lsh</guibutton> right shifts the
value (performs an integer divide by 2) n times.</term>
<listitem><para><userinput>16 Inv Lsh 2 =</userinput> gives
<emphasis>4</emphasis> (16 divided by 2 twice).</para>
<para><userinput>16.999 Inv Lsh 2 =</userinput> also gives
<emphasis>4</emphasis>.</para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="and-or-xor">
<title>Cmp, And, Or and Xor</title>

<para>The <guibutton>Cmp</guibutton>, <guibutton>And</guibutton> and 
<guibutton>Or</guibutton> functions perform bitwise logical operations and
therefore appear more meaningful if the <guilabel>Base</guilabel> is set to
<guilabel>Hex</guilabel>, <guilabel>Oct</guilabel> or <guilabel>Bin</guilabel>
rather than <guilabel>Dec</guilabel>. In the following
examples <guilabel>Base</guilabel> is set to <guilabel>Bin</guilabel>.</para>

<variablelist>
<varlistentry>
<term><guibutton>Cmp</guibutton> performs a 1's complement (inverts the
bits).</term>
<listitem><para><userinput>101 Cmp</userinput> gives
<emphasis>111...111010</emphasis></para> </listitem>
</varlistentry>

<varlistentry>
<term><guibutton>And</guibutton> does a logical AND.</term>
<listitem><para><userinput>101 And 110 =</userinput> gives
<emphasis>100</emphasis></para> </listitem>
</varlistentry>

<varlistentry>
<term><guibutton>Or</guibutton> does the logical OR.</term>
<listitem><para><userinput>101 Or 110 =</userinput> gives
<emphasis>111</emphasis></para> </listitem>
</varlistentry>

<varlistentry>
<term><guibutton>Xor</guibutton> performs the logical
XOR (exclusive OR) operation.</term>
<listitem><para><userinput>101 Xor 110 =</userinput> gives
<emphasis>11</emphasis></para> </listitem>
</varlistentry>

</variablelist>
</sect1>
</chapter>


<chapter id="questions-and-answers">
<title>Questions and Answers</title>

<qandaset>


<qandaentry>
<question><para>How do I get e, the Euler number?</para></question>
<answer><para>Type <userinput>1 Inv Ln</userinput>.</para></answer>
</qandaentry>

<qandaentry>
<question><para>How do I get two fixed digits after the period?</para></question>
<answer><para>Click on the <guibutton>Configure</guibutton> button, this will
bring up the configuration dialog. Check <guilabel>Set fixed
precision</guilabel> and adjust the spin control so that it shows a
2.</para></answer> </qandaentry>

<qandaentry>
<question><para>What about Precision?</para></question>
<answer><para>The main factor determining the precision of &kcalc; is whether your libc and libmath
supports the C data type <type>long double</type>. If this is the case, &kcalc; will detect this
at compile time and use it as its fundamental data type to represent numbers.
</para>

<para>Adjust the <guilabel>Precision</guilabel> in &kcalc;'s
<guibutton>Configure</guibutton> dialog so that the above computations
work correctly. I recommend a precision of 14 if the fundamental data type
for your copy of &kcalc; is <type>long double</type>, otherwise 8 or 10.</para>

<para>Higher precision doesn't necessarily lead to better results. Play with
the precision and you will see what I mean.</para>
</answer>
</qandaentry>

</qandaset>
</chapter>

&commands;

<chapter id="copyright">
<title>Credits and License</title>

<para>&kcalc; Program Copyright &copy;:</para>
<para>Bernd Johannes Wuebben 1996-2000</para>
<para>The &kde; Team 2000-2004</para>

<itemizedlist>
<listitem><para>&Bernd.Johannes.Wuebben; &Bernd.Johannes.Wuebben.mail;</para></listitem>
<listitem><para>&Evan.Teran; &Evan.Teran.mail;</para></listitem>
<listitem><para>&Espen.Sand; &Espen.Sand.mail;</para></listitem>
<listitem><para>&Chris.Howells; &Chris.Howells.mail;</para></listitem>
<listitem><para>&Aaron.J.Seigo; &Aaron.J.Seigo.mail;</para></listitem>
<listitem><para>&Charles.Samuels; &Charles.Samuels.mail;</para></listitem>
</itemizedlist>

<para>&kcalc; was inspired by <personname><firstname>Martin</firstname> <surname>Bartlett</surname></personname>'s <application>xfrmcalc</application>,
whose stack engine is still part of &kcalc;.</para>

<para>Documentation Copyright &copy; 2001,2002,2005, 2006:</para>
<itemizedlist>
<listitem><para>&Bernd.Johannes.Wuebben; &Bernd.Johannes.Wuebben.mail;</para></listitem>
<listitem><para>&Pamela.Roberts; &Pamela.Roberts.mail;</para></listitem>
<listitem><para>&J.Hall; &J.Hall.mail;</para></listitem>
<listitem><para>&Anne-Marie.Mahfouf;&Anne-Marie.Mahfouf.mail;</para></listitem>
</itemizedlist>

&underFDL;
&underGPL;

</chapter>

<appendix id="installation">
<title>Installation</title>

<para>&kcalc; is part of the tdeutils package within the &kde; project and will
normally be provided as part of a &kde; installation. For more details about
&kde; visit <ulink url="http://www.kde.org">http://www.kde.org</ulink>.</para>

<!--
<para>&kcalc;'s home site is <ulink
url="http://math.cornell.edu/~wuebben/kde.html">
http://math.cornell.edu/~wuebben/kde.html</ulink></para>
-->

<sect1 id="compilation-and-installation">
<title>Compilation and Installation</title>

&install.intro.documentation;
&install.compile.documentation;

</sect1>

<sect1 id="enable-long-double-precision">
<title>How to enable long double precision for &kcalc;</title>

<para>If your machine supports the C data type <type>long double</type>
and if you have a working libc you can enable <type>long double</type>
precision for &kcalc;.</para>

<para>Here is what to do:</para>

<procedure>
<step>
<para> Check <filename>../config.h</filename> and see whether
HAVE&lowbar;LONG&lowbar;DOUBLE is defined, &ie; you should be able to locate a
line saying:</para>

<screen>#define HAVE_LONG_DOUBLE 1</screen>

<para>If you can't find such a line your system doesn't support long
double IEEE precision. </para>
</step>
<step>
<para>Edit the files <filename class="headerfile">kcalctype.h</filename>,
<filename>configdlg.cpp</filename>, <filename>kcalc.cpp</filename> and
<filename>kcalc&lowbar;core.cpp</filename> and remove the lines:</para>

<screen>
#ifdef HAVE_LONG_DOUBLE
#undef HAVE_LONG_DOUBLE
#endif
</screen>

</step>
<step>
<para> Recompile &kcalc;.
</para>
</step>
</procedure>

</sect1>
</appendix>

</book>