## eValuator

Expression Evaluator with Astronomical Constants
2018 CODATA (as of May 2019), 2015 and 2012 IAU Constants.
Sutherland Studios
Engineering and Design:
Ralph Sutherland
Lead Testing and QA:
David Nicholls

### eValuator Help

#### Instructions

Enter any algebraic expression in the upper text area, using any of the variables, numbers, operators and functions, or any of the built-in constants listed below.

You can set optional values for up to six variables: a, b, c, x, y, or z, t ; and use them in the expression.

The expression is evaluated as you type, with the answer appearing at the top. There is no need for enter/return or equals buttons. Green indicates a valid expression and answer. The answer may then be shared or selected and copied as required.

- The current answer can be stored in any of the six variables with the [M|+|-] buttons, like calculator memories.
- The grouping of sub-expressions can use any mixture of round '()', square '[]', or brace '{}' brackets, so long as each pair matches up.
- The current expression, answer and any contributing variables can be saved to the scrapbook panel by clicking the eV icon.
- The keyboard button reveals a set of keypads for entering expressions without using the main keyboard, the button also hides the keypads. The keypads window follows the main window around the screen, but can also be moved independently. The keypads also serve to show most of the available functions and constants available. You can delete, clear all and undo editing with the keypads as well as using the normal system keyboard and menu options.
- You can switch between c.g.s. or S.I. units for the builtin constants.
- eValuator is intended to float in front of all other app windows, so it is quickly available in any running app where a calculation might be helpful. This can be switched on or off using the 'Float on Top' menu option in the Windows menu.

#### Expression Evaluator Variable Memory System

eValuator has six variables that serve as memories for floating point values. The variables can be used in any expression, in addition to numbers, constants and functions.

Use the [M|+|-] buttons to store, add or subtract the current answer value into any variable.

#### Expression Evaluator Scrapbook Memory System

Store any numbers, expressions, or notes in the scrapbook panel. Click the eV icon to save the current expression an answer in the scrapbook with a timestamp.

The scrapbook is automatically saved along with the other variable values and the current expression whenever eValuator quits.

Examples:

- `-cos[pi]`
- `1e8*me*c^2`
- `(4/3)*pi*pc^3`
- `x*t+0.3*a*t^2`

### Operators

- `|x|`: Absolute Value. If using the keypad keys, the double bar button: `||` puts a pair of absolute value bars around the current selection if any, or if there is nothing selected initially, just an empty pair ready to type into.
- `(x)`: Grouping, also `[x]` or `{x}`, Sub-expressions. If using the keyboard, then the single bracket buttons just insert the selected bracket. The double bracket buttons: [] and () put bracket pairs around the current selection if any, or just an empty pair ready to type into if there is nothing selected initially.
- `-x` : Unary Negation
- `^`: Exponentiate
- `*`: Multiplication
- `/`: Division
- `+`: Addition
- `-`: Subtraction
- `x%y`: Modulus, mod(x,y), x and y expressions
- `x#y`: Magnitude, sqrt(x^2+y^2) = hypot(x,y), x and y expressions
- `x@y`: Angle, atan2(y,x), x and y expressions, result in radians. Muliply by r2d to get degrees.
- `x<y`: Minimum of x and y expressions
- `x>y`: Maximum of x and y expressions
- `()?():()`: Conditional test:
  `(Test Expression)?(Expression if test > 0.0):(Expression if test <= 0)`,
  eg: `(1)?(2*x):(3+z) = 2*x`

### Functions

Use square brackets for function parameters, it helps with clarity, but you may use round brackets, ().

If using the keypads, the function is put around the current selection if any. So if the current expression is 1.0, and is selected, then pressing the atan button produces atan[1.0]. If there is nothing selected initially, the function with an empty pair of brackets is inserted, ready to type into.

- `ln[x], log[x], exp[x]`: natural logarithm, base 10 log, base 'e' exponentiation
- `cbrt[x], sqrt[x], abs[x], erf[x]`: cube root, square root, absolute value, error function
- `sin[x], cos[x], tan[x], asin[x], acos[x], atan[x]`: trigonometric functions
- `sinh[x], cosh[x], tanh[x], asinh[x], acosh[x], atanh[x]`: hyperbolic trig functions
- `max[x,y], min[x,y]`: maximum of (x,y), minimum of (x,y)
- `atan2[y,x]`: arctan of y/x with quadrant resolution
- `hypot[x,y]`: Hypotenuse = magnitude = distance sqrt(x^2+y^2) = x#y
- `trunc[x], round[x], ceil[x], floor[x]`: truncate, round, smallest whole number greater than x, largest whole number less than x

### Constants

- (mathematical)
  - `pi`: pi in IEEE 754 double precision
  - `e`: e in IEEE 754 double precision
  - `r2d, d2r`: radians to degrees, and degrees to radian, eg 60*d2r = 60 degrees in radians
  - `log2e`: log base 2 of e
  - `log10e`: log base 10 of e
  - `ln2`: log base e of 2
  - `ln10`: log base e of 10
  - `sqrt2`: square root of 2
- (c.g.s. [optionally as SI] 2018 CODATA Values)
  - `c`: Speed of Light (cm/s)[m/s] (exact)
  - `h`: Planks Constant (erg s) [J s] (exact)
  - `hbar`: Planks Constant/2pi (erg s) [J s] (exact to roundoff)
  - `k`: Boltzmann's Constant (ergs/K) [J/K] (exact)
  - `s`: Stefan-Boltzmann Constant (erg/s/K^4) [J/s/K^4] (exact to roundoff)
  - `st`: Thomson Cross Section (cm^2)[m^2]
  - `G`: Graviational Constant (cm^3/g/s^2 )[m^3/kg/s^2]
  - `Nav`: Avagadro's Number (exact)
  - `eV`: Electron Volt (ergs)[J] (exact)
  - `keV`: 1000 eV (ergs)[J] (exact)
  - `m`: Atomic Mass Unit (g)[kg]
  - `me`: Electron Mass (g)[kg]
  - `mp`: Proton Mass (g)[kg]
  - `mh`: Hydrogen Mass (g)[kg]
  - `Ry`: Rydberg Energy (ergs) (h*c*Rinf) [J]
  - `ReV`: Rydberg Energy (eV)[eV]
  - `HI` : Ionisation Potential of Hydrogen (ergs)[J]
  - `HIeV`: Ionisation Potential of Hydrogen (eV)[eV]
- (c.g.s. [optionally as SI] astronomical IAU 2012 and IAU 2015 + CODATA 2018)
  - `yr`: Julian year (s)[s] (exact)
  - `pc`: parsec (cm)[m] (exact)
  - `au`: Astronomical Unit (cm)[m] (exact)
  - `Me`: Mass of Earth (g)[kg] recovers exact GMe with 2018 G
  - `Re`: Radius of Earth (cm)[m]
  - `g`: std surface gravity of earth (cm/s^2)[m/s^2], (exact) ~ G*Me/Re^2
  - `Rg`: BH gravitational radius per solar mass (cm)[m], G*Msun/c^2
  - `Ledd`: Eddington Luminosity (ergs/s/Msun) [W/Msun]
  - `Lsun`: Nominal Solar Luminosity (erg/s)[W] (exact)
  - `Msun`: Solar Mass (g)[kg] recovers exact GMsun with 2018 G
  - `Rsun`: Nominal Solar Radius (cm)[m] (exact)
  - `Tsun`: Nominal Solar Teff (K)[K] (exact)