**NAME**

gcalctool - a desktop calculator

**SYNOPSIS**

gcalctool[-D] [-E] [-aaccuracy] [-v] [-?]

**DESCRIPTION**

gcalctoolis a desktop calculator. It has been designed to be used with either the mouse or the keyboard. It is visually similar to a lot of hand-held calculators. There are basic, financial and scientific modes. Some of the calculator keys have menu marks. This indicates that there is a menu associated with that key. Each key is discussed in more detail below. One of the most important things to remember aboutgcalctoolis that calculations are performed from left to right, with no arithmetic precedence. If you need arithmetic precedence, then you should use parentheses (see below). Internal arithmetic is now done with multi-precision floating point numbers. Accuracy can be adjusted from zero to nine numeric places in fixed notation, but numbers can be displayed in engineering and scientific notation as well. There is also an option to show or remove trailing zeroes after the numeric point. The calculator reverts to scientific notation when the number is larger than the display would allow in fixed notation. In the scientific mode, the base of operation can be changed between binary, octal, decimal and hexadecimal. Numbers are initially displayed in fixed notation to nine numeric places, with trailing zeroes removed, in the decimal base. You can use theCopyandPastefunctions in conjunction with the numeric display to store or retrieve characters from the clipboard. You can also remove the last digit entered, completely clear the displayed entry and totally reset the calculator. There are ten memory registers. Numbers can be stored or retrieved in these locations, and arithmetic can be performed upon register contents. On startup,gcalctoolwill use several configuration resources stored in agconfdatabase. These are listed in detail in the resources section of these manual pages. Any constants or function definitions that the user defines are also stored in this database. Context sensitive help is also available. Control-F1 toggles whether tooltip help is displayed for the item which currently has focus.

**OPTIONS**

-DTurning on gcalctool debugging.-ETurning on debugging in the multiple precision arithmetic package.-aaccuracyInitial number of digits displayed after the numeric point. This value must be in the range 0 to 9. The default is nine numeric places.-vShow the version number and the usage message of this release of thegcalctoolprogram.-?Show the version number and the usage message of this release of thegcalctoolprogram. Note that the?character must be escaped if usingcsh(1).

**RESOURCES**

On startup,gcalctooluses the following string type resources stored in agconfdatabase:Resource:/schemes/apps/gcalctool/accuracyValues:Accuracy valueDescriptionThe number of of digits displayed after the numeric point. This value must be in the range 0 to 9.Resource:/schemes/apps/gcalctool/baseValues:Numeric BaseDescriptionThe initial numeric base. Valid values are "BIN" (binary), "OCT" (octal), "DEC" (decimal) and "HEX" (hexadecimal).Resource:/schemes/apps/gcalctool/displayValues:Display modeDescriptionThe initial display mode. Valid values are "ENG" (engineering), "FIX" (fixed-point) and "SCI" (scientific).Resource:/schemes/apps/gcalctool/modeValues:ModeDescriptionThe initial calculator mode. Valid values are "BASIC", "FINANCIAL" and "SCIENTIFIC".Resource:/schemes/apps/gcalctool/showzeroesValues:true, false (true)DescriptionWhether trailing zeroes, after the numeric point, are shown in the display value.Resource:/schemes/apps/gcalctool/showthousandsValues:true, false (false)DescriptionWhether fixed numbers in the decimal base are displayed with thousands separated.Resource:/schemes/apps/gcalctool/showregistersValues:true, false (true)DescriptionWhether the memory register window is initially displayed.Resource:/schemes/apps/gcalctool/trigtypeValues:Trig. typeDescriptionThe initial trigonometric type. Valid values are "DEG" (degrees), "GRAD" (grads) and "RAD" (radians).

**MENU** **BAR**

This section describes the menu items available in the applications menubar.CalculatorMenuQuit[Control-Q]Exit without user verification.EditMenuCopy[Control-C]Copy the calculators numeric display to the clipboard.Paste[Control-V]Paste the contents of the clipboard into the calculators numeric display.InsertASCIIValue[Control-I]A separate window is displayed which allows you to enter any character. The ASCII value of this character is then displayed in the current base.ViewMenuBasicMode[Control-B]Display the calculator in basic mode.FinancialMode[Control-F]Display the calculator in financial mode.ScientificMode[Control-S]Display the calculator in scientific mode.MemoryRegisters[Control-M]Display the memory registers window.HelpMenuContents...[F1]Display the online help for the calculator in a separate window.AboutGcalctool[Control-A]Display information about this application, including the version number and the author.

**CALCULATOR** **BUTTONS**

This section describes the calculator keys present in the maingcalctoolwindow.gcalctoolhas three modes; basic, financial and scientific. The keys associated with each of these modes are described in separate sections below. Keyboard equivalents appear in the square brackets. Note that Alt followed by a letter indicates that the Alt key and this key should be pressed together.

**BASIC** **MODE**

NumericalKeys[0-9.=<Return>].Enter a digit (decimal digits 0-9) into the display. The ’.’ character acts as the numeric point, and ’=’ (or Return) is used to complete numerical entry. Upto forty digits may be entered.ArithmeticalOperations[+-x*/].Perform an arithmetical operation using the previous entry and the next entry as operands. Addition, subtraction, multiplication and division are denoted by the characters ’+’, ’-’, ’*’ and ’/’ respectively (’x’ is also synonymous with multiplication).NumberManipulationOperators.Int[i]Return the integer portion of the current entry.Frac[:]Return the fractional portion of the current entry.Abs[u]Return the absolute value of the current entry.+/-[C]Change the arithmetic sign of the current entry.1/x[r]Return the value of 1 divided by the current entry.x^2[@]Return the square of the current entry.%[%]Perform a percentage calculation using the last entry and the next entry.Sqrt[s]Perform a square root operation on the current entry.MenuOperations.Each of these operations has a popup menu associated with it. It is also possible to use just the keyboard to achieve the same results. The first keyboard value selects the menu operation; the second keyboard character selects the new value for this operation. Unlike the menu facility available with the mouse, there is no visual feedback on what choices are available to you, so the user has to know what item they wish to select.Acc[A]Set the display accuracy. Between 0 and 9 [ 0-9 ] significant digits can be displayed.Rcl[R]Retrieve memory register value. There are ten memory registers [ 0-9 ].Sto[S]Store value in memory register. There are ten memory registers [ 0-9 ]. The register number may be preceded by an arithmetic operation (addition, subtraction, multiplication or division), in which case the specified operation is carried out between the displayed entry and the value currently in the selected memory register, and the result is placed in the memory register.Exch[X]Exchange the current display with the contents of a memory register. There are ten memory registers [ 0-9 ].OtherOperations.Clr[Delete]Clear the display, and reset the calculator.CE[Control-BackSpaceorEscape]Clear the display.Bksp[BackSpace]Remove the rightmost character of the current entry, and recalculate the displayed value.

**FINANCIAL** **MODE**

An example of how to use each of these financial calculations, is available via the tooltip help facility.Ctrm[m]Compounding term. Computes the number of compounding periods it will take an investment of present value pv to grow to a future value of fv, earning a fixed interest rate int per compounding period. Memory register usage: Register 0 int (periodic interest rate). Register 1 fv (future value). Register 2 pv (present value).Ddb[D]Double-declining depreciation. Computes the depreciation allowance on an asset for a specified period of time, using the double-declining balance method. Memory register usage: Register 0 cost (amount paid for asset). Register 1 salvage (value of asset at end of life). Register 2 life (useful life of the asset). Register 3 period (time period for depreciation allowance).Fv[v]Future value. This calculation determines the future value of an investment. It computes the future value based on a series of equal payments, each of amount pmt, earning periodic interest rate int, over the number of payment periods in term. Memory register usage: Register 0 pmt (periodic payment). Register 1 int (periodic interest rate). Register 2 n (number of periods).Pmt[P]Periodic payment. Computes the amount of the periodic payment of a loan. Most installment loans are computed like ordinary annuities, in that payments are made at the end of each payment period. Memory register usage: Register 0 prin (principal). Register 1 int (periodic interest rate). Register 2 n (term).Pv[p]Present value. Determines the present value of an investment. It computes the present value based on a series of equal payments, each of amount pmt, discounted at periodic interest rate int, over the number of periods in term. Memory register usage: Register 0 pmt (periodic payment). Register 1 int (periodic interest rate). Register 2 n (term).Rate[T]Periodic interest rate. Returns the periodic interest necessary for a present value of pv to grow to a future value of fv over the number of compounding periods in term. Memory register usage: Register 0 fv (future value). Register 1 pv (present value). Register 2 n (term).Sln[l]Straight-line depreciation. Computes the straight- line depreciation of an asset for one period. The straight-line method of depreciation divides the depreciable cost (cost - salvage) evenly over the useful life of an asset. The useful life is the number of periods (typically years) over which an asset is depreciated. Memory register usage: Register 0 cost (cost of the asset). Register 1 salvage (salvage value of the asset). Register 2 life (useful life of the asset).Syd[Y]Sum-of-the-years-digits depreciation. The sum-of-the- years’-digits method of depreciation accelerates the rate of depreciation, so that more depreciation expense occurs in earlier periods than in later ones. The depreciable cost is the actual cost minus salvage value. The useful life is the number of periods (typically years) over which an asset is depreciated. Memory register usage: Register 0 cost (cost of the asset). Register 1 salvage (salvage value of the asset). Register 2 life (useful life of the asset). Register 3 period (period for which depreciation is computed).Term[t]Payment period. Returns the number of payment periods in the term of an ordinary annuity necessary to accumulate a future value of fv, earning a periodic interest rate of int. Each payment is equal to amount pmt. Memory register usage: Register 0 pmt (periodic payment). Register 1 fv (future value). Register 2 int (periodic interest rate).

**SCIENTIFIC** **MODE**

This section describes the functionality available in the calculators scientific mode. This also includes a special mode panel used for setting various options.ModePanel.NumericBaseSet the numeric base of operation. Choices are binary, octal, decimal (the default) and hexadecimal.DisplayTypeSet the display mode. Valid values are "Eng" (engineering), "Fix" (fixed-point) and "Sci" (scientific).TrigonometricTypeSet the trigonometric type. Valid values are Degrees, Gradians and Radians.HypToggle the hyperbolic function indicator. This switch affects the type of sine, cosine and tangent trigonometric functions performed.InvToggle the inverse function indicator. This switch affects the type of sine, cosine and tangent trigonometric functions performed.MenuOperations.Con[#]Retrieve and display a constant value. There are ten constant values [ 0-9 ], and each one has a default value which can be overridden when the user creates their own constant definitions. The ten default values are: 0 0.621 kilometers per hour or miles per hour 1 1.414213562 square root of 2 2 2.718281828 e 3 3.141592653 pi 4 0.3937007 centimeters or inches 5 57.295779513 degrees in a radian 6 1048576.0 2 to the power of 20 7 0.0353 grams or ounces 8 0.948 kilojoules or British thermals 9 0.0610 cubic centimeters or cubic inchesFun[F]Retrieve and execute a function expression. There can be upto ten functions expression defined by the user [0 - 9]. There are no default function values.Scientificbuttons.<[<]Shift the current entry to the left. The shift can be between 1 and 15 places [ 1-9, A-F ]. This calculator key has a popup menu associated with it.>[>]Shift the current entry to the right. The shift can be between 1 and 15 places [ 1-9, A-F ]. This calculator key has a popup menu associated with it.&16[]]Truncate the current entry to a 16 bit unsigned integer.&32[[]Truncate the current entry to a 32 bit unsigned integer.(and)[(and)]Parentheses. Allow precedence with arithmetic calculations. Note that parentheses can be nested to any level, andgcalctoolprovides a visual feedback of what is being typed in, in the calculator display. The calculation doesn’t take place until the last parenthesis is matched, then the display is updated with the new result.Exp[E]This is used to allow numbers to be entered in scientific notation. The mantissa should be initially entered, then the Exp key selected. The exponent is then entered. If no numerical input had occurred when the Exp key was selected, then a mantissa of 1.0 is assumed.e^x[{]Returns e raised to the power of the current entry.10^x[}]Returns 10 raised to the power of the current entry.y^x[y]Take the last entry and raise it to the power of the next entry.x![!]Return the factorial of the current entry. Note that the factorial function is only valid for positive integers.Rand[?]Return a random number between 0.0 and 1.0.HexadecimalKeys[a-f]The hexadecimal numerical digits A-F. These buttons will be insensitive unless the calculator is currently in the hexadecimal mode. They will be shown in upper-case in the calculator display.Cos[J]Return the trigonometric cosine, arc cosine, hyperbolic cosine or inverse hyperbolic cosine of the current display, depending upon the current settings of the hyperbolic and inverse function switches. The result is displayed in the current trigonometric units (degrees, radians or grads).Sin[K]Return the trigonometric sine, arc sine, hyperbolic sine or inverse hyperbolic sine of the current display, depending upon the current settings of the hyperbolic and inverse function switches. The result is displayed in the current trigonometric units (degrees, radians or grads).Tan[L]Return the trigonometric tangent, arc tangent, hyperbolic tangent or inverse hyperbolic tangent of the current display, depending upon the current settings of the hyperbolic and inverse function switches. The result is displayed in the current trigonometric units (degrees, radians or grads).Ln[N]Return the natural logarithm of the current entry.Log10[G]Return the base 10 logarithm of the current entry.Log2[H]Return the base 2 logarithm of the current entry.OR[|]Perform a logical OR operation on the current entry and the next entry,AND[&]Perform a logical AND operation on the current entry and the next entry, treating both numbers as unsigned long integers.NOT[~]Perform a logical NOT operation on the current entry.XOR[^]Perform a logical XOR operation on the current entry and the next entry, treating both numbers as unsigned long integers.XNOR[n]Perform a logical XNOR operation on the current entry and the next entry, treating both numbers as unsigned long integers.

**FILES**

~/.gcalctoolrcuser’s personal gcalctool resources for customizing the appearance and color ofgcalctool1 January 2008 gcalctool(1)