Since version 1.2.0 galculator features a formula entry mode. This mode is one
more step towards a calculator accepting input as written on the paper. galculator's
formula entry mode aims to provide all the features of the algebraic mode (and
even to go beyond ...).

This part of galculator is developed actively. This section gives an overview
of the functions currently implemented and points out some restrictions.

Formula entry mode accepts decimal numbers as input as well as hexadecimal,
binary and octal numbers. The latter three have to be entered with a prefix:

Number base

Prefix(es)

Example

decimal

none

-3.1415

hexadecimal

0x or 0h

0xAF

binary

0b

0b1001

octal

0o

0o777

All algebraic operations and functions of the algebraic mode are supported.
The following table lists all available operations:

Operation

identifier

+, -, *, /

+, -, *, /

percent x%y (x percent of y)

%

power x^y

^

module (MOD)

mod, MOD

left shift (LSH)

<<

right shift (INV + LSH)

>>

AND

&, and, AND

OR

|, or, OR

XOR

xor, XOR

Let's speak of factorial and complement as functions. Most functions' argument
has to be enclosed by brackets. Therefore sin 3 is not allowed and has to be
written as sin(3). User defined functions can be used in formula entry mode
without any restrictions!

Since version 1.3.0 galculator features a paper mode, which offers a very
simple GUI along with the functionality of formula entry mode. In the entry
field, enter the expression following the same rules as for formula entry mode.
Hitting return or clicking the button to the right will evaluate the
expression and add it as well as the result to the list view above.
Double click on any row of that list view to copy the corresponding expression
to the entry field.

Since version 1.2.1 galculator also features user defined functions. They can
be called with the fun button next to the constant button and work like
the other function buttons like sin, cos, etc. (except that inverse and hyperbolic
are not supported). User functions can be defined in the Preferences dialog
(Functions page). The function name can be any string beginning with a letter.
So far, only a single variable is allowed. Expression gives the string expression
of the function with respect to the specified variable:

As a right shift is somehow the inverse of a left shift, right shifting
is done by first activating INV and than clicking the LSH button:

23 >> 5

"shift 23 five times to the right"

23 INV LSH 5

You can change number base, angle base and the notation mode by simply
clicking on the corresponding module in the display's second line.
If changing from e.g. decimal number base to binary mode results in an
"inf" value on the display, the initial value was too big. Due to the limited
display length every mode has its own limits:

decimal

IEEE floating point numbers

hexadecimal

-2147483648 .. 2147483647 (0h80000000 .. 0h7FFFFFFF)

octal

-34359738368 .. 34359738367 (0o400000000000 .. 0o377777777777)

decimal

-32768 .. 32767 (0b1000000000000000 .. 0b111111111111111)

If computing in hexadecimal, octal or binary mode, inf means that an overflow
has happened.

If in hexadecimal, octal or binary signed mode, a negative number won't be
represented with a leading minus but as 2's complement with respect to the
chosen variable length.

It is not possible to close unwanted braces straightforward. 1+((())
won't reduce the stack of open braces, there will remain three open
braces. It is difficult to tell a "compute as soon as possible" calculator what
an empty pair of braces means: in 1+() the empty braces mean 0 (1+0=1) but in
1*() the empty braces mean 1 (1*1=1). Therefore you have to enter a corresponding
number in order to close braces at the moment, e.g. 1+((0)) will do.

The percent operation works as "x percent of y". So if there is 37 on the
display and you press the percent button and enter 123, you get as result
37% of 123.

If you press the [EE] button the display will never become 0e+ but
1e+ instead.

There is a simple plausibility check for the character choosen as thousand's
separator: it must not be a number in the configured number base and for
a decimal number base neither decimal point nor "e" (exponent identifier
string) nor "-" (sign for negative numbers).

Functions:

Display control:

Delete, ALT-C

C

Ctrl-Delete, ESC

AC

Backspace

Menu shortcuts:

Ctrl-Q

quit program

Ctrl-P

preferences dialog

Ctrl-X

cut display value (clears display)

Ctrl-C

copy display value

Ctrl-V

paste and append to display value. The behaviour of pasting might be unexpected: the pasted string is parsed to virtual key presses, so only valid characters for the current display mode are appended to the display.