## Here are some basics of Opalcalc |

## Using add, minus, multiply and divideFor the people not used to using their keyboard as a calculator, here's some basics: The - + / * symbols (minus, plus, divide, multiply) are on your keyboard though you may have to hold down the Shift key while pressing the required symbol. For example, in the US, you can obtain the symbol + by pressing Shift and then the = key). Also remember the # key is a shortcut for plus. Here is a small reference (at least for the US and many other countries).
The letter 'x' will also act as multiplication, unless the option 'PC symbols' is ticked. |
## Restore factory settingsFeel free to experiment with OpalCalc, because there's a great option in the help menu called "Restore factory settings". This undoes any previous setting changes you've made, so that OpalCalc will operate 'normally'. ## Reusing the existing answerJust type "ans" or "answer" and the new line will use the previous answer as part of the new sum. You can also press + at the start of a new line, and the previous answer will be automatically inserted. |

## Units and currencyHundreds of units are available from the 'Pi' dropdown button menu in OpalCalc (be patient while hovering over 'Units' as C# populates the giant list). Everything is here such as £,$, inches, centimetres, newtons and miles/hour. Select one, and OpalCalc will write it in the main calculator display. If you want to convert a sum to another unit type, simply use the "as" or "in" keyword. For example: "50 usd + 50 gbp", or "$5 in £", or "5cm as inch". If you want to use square or cubed units, try typing something like cm3 or inch3). ## Dates and timesOpalCalc can work with dates and time too, if you put a @ symbol at the beginning. See the main table at the bottom of this page for more info, but here are a few examples to kick start you off: |
## Using in built functions...is easy. If you want to find the squareroot, cosine or average of a number/s for instance, just type: ...or even... This second example above shows you don't have to type the brackets (at the slight cost of clarity if you start to extend the sum further). Be careful not to use the thousands separator (the comma or semicolon for some countries) inside functions (it'd get mixed up with the function delimiter which is also a comma). |

## Working with variablesIt's easy to define a variable in OpalCalc. A variable is a "storage place" so that you can use the sums in a later calculation. For example: You can also use words, percentages, and currencies too: For storage purposes (between sessions of OpalCalc), it's possible to save variables to the corresponding 'userVariables.txt' file which can be opened from the 'Pi' button menu. Make sure to save the text file and reboot OpalCalc so that it can load the new variable/s in. |
## Creating custom functionsThe table further below contains a list of the built-in functions. If you want to create your own functions, you would use something like "plusfive(x) = x+5" (without the quotes). Now when you want to use that function later, just type plusfive(10), and the answer will appear as 15. All custom user functions are kept in a file called "userFunctions.txt" which can be opened from the 'Pi' button menu. Usually, you would simply create the functions directly in OpalCalc, but the advantage of editing this text file directly is you can create functions with For/While loops and more complicated constructs. Make sure to save the text file and reboot OpalCalc so that it can load the new function/s in. Also note that functions in this text file should be written in Javascript. |

(currently sorted by most common functions/menu options)

The below table contain all menu options, commands, and functions available in OpalCalc. Simply type a word or two in the search box below, and the window will instantly filter your results, and provide related help. By default, the table is sorted by the * column. This represents how commonly used a function is, so the higher entries will be more likely to be of interest to you.If you want to search only menu commands, simply type: menu (plus whatever other search term you wish) into the search bar. Same principle with other options - if you want to search only for functions, type: function (and something else) etc. etc. If you're still stuck, feel free to email me directly. |

Function | * | Definition | Notes | Examples | Type | Extra tags |
---|---|---|---|---|---|---|

+ | 10 | Plus: Adds numbers together | Simply press the # key as a shortcut. Alternatively, for many keyboards (including US), hold down the shift key and press equals (or press the + on the keypad) to get this sign | 5+5 = 10 1+2+2 = 5 | operator | add, addition, and, positive |

- | 10 | Minus: Subtracts numbers from each other | For most countries, the minus key is next to the + key on your keyboard | 10-5 = 10 10-2-3 = 5 | operator | take away, subtraction, negative |

* or × | 10 | Multiply: Multiplies numbers together | This key looks like a star * on your keyboard | 2*2 = 4 10*2*5 = 100 | operator | multiplication, times |

/ or ÷ | 10 | Divide: Divides numbers from each other | This key looks like a slash / on your keyboard | 10/2 = 5 | operator | division |

. or , | 10 | Decimal point: Allows for fractions | Many regions such as Europe, South America, or Russia use the comma as a decimal point (and the semicolon as a list separator). OpalCalc will automatically cater for this. | 4.5÷2 = 2.25 4,5÷2 = 2,25 | misc | dot, period, full stop |

( | 9 | Open bracket: Allows certain calculations to be performed first | TIP: Use the square bracket keys to avoid having to press Shift and 8 or 9 | 2+(2*3) = 8 (2+2)*3 = 12 ((1+1)*3)^2 = 36 | operator | curly, parenthesis |

) | 9 | Close bracket: Allows certain calculations to be performed first | TIP: Use the square bracket keys to avoid having to press Shift and 8 or 9 | 2+(2*3) = 8 (2+2)*3 = 12 ((1+1)*3)^2 = 36 | operator | curly, parenthesis |

^ | 8 | Exponentiation: Raises a given number to the power of another | 5^2 = 25 | operator | exponent | |

_ | 7 | Logarithm: Lowers a given number to the logarithm of another | Shortcut for log(n,base) | 25_5 = 2 | operator | |

' | 9 | Ignore line onwards: Anything to the right of this symbol is ignored (even numbers) | See example to the right. The "5+5" bit is calculated, but not the "+10" and text section is ignored (answer therefore is 10, not 17). | 5+5 ' +7 : (after quote is ignored). | operator | quote out, english, add words, language, add comments, commenting, add notes, annotate, add annotation, anotate, add anotation, //, /*, */ |

; or : | 9 | Ignore line behind: Anything to the left of this symbol is ignored (even numbers) | Either can be used, except for regions which use the semicolon as a list separator (e.g. in functions), then only the colon can be used for this 'Ignore Line Behind' operator. The : symbol is also used in time operations to represent hour:min:sec, so it won't perform as usual then. | Cost for Monday: $20 | operator | quote out, english, add words, language, add comments, commenting, add notes, annotate, add annotation, anotate, add anotation, //, /*, */ |

! | 6 | Factorial or Logical NOT: Depending on context, ! represents Factorial or Logical NOT | Factorial operator also allows decimal input since the gamma function is used | 4! = 24 4.5! = 52.342778 true && !false = true | operator | programmer, exclamation mark |

% | 8 | Percent: Performs a common percentage on preceding calcs | % attempts to operate as most people would use it | 50 + 10% = 55 10%+10% = 20% 2%8 = 25% | operator | tax, interest, percentage |

@ | 8 | Time symbol: Use this @ symbol on the same line you work with times and dates | This is needed to get OpalCalc to change the meaning of certain symbols (such as . - / : ) which otherwise would be treated differently (e.g. the symbol / would mean divide usually when here we want to use say, "10/01/2012"). It's sometimes possible to use other formats, but try to use your own country's format to represent time (e.g. say, dd/mm/yyyy, mm/dd/yyyy, or dd-mm-yyyy for the UK, US, and India respectively). Daylight saving time (DST) is automatically accounted for too (unless using one of the date only formats (no time) where it isn't taken into account to avoid potential confusion). Converting between time zones isn't yet possible, but is on the cards. Also see home page pictures for good use of time (e.g. a diary or work schedule). TIP: You can press Ctrl+D, or Ctrl+T, or Ctrl+B to insert the current date/time. | @ 4pm to 6pm @ 10:00:00 to 12:34:56 @ 10/11/12 to 11/11/12 @ 4pm + 5hours @ 10:00 to 13:51 as minutes @ 3pm to 5pm @ 16/11/2011 - 10 weeks @ 10/10/10 20:00:00 - 1hour @ 16/11/2011 - 16/10/2011 @ 16 oct 2011 + 30 days @ 4pm 22 november @ 2012-12-16 @ 2012/12/16 @ 16.11.2012 @ 10:00 @ 10:00:00 @ 1.10:00:00 ' 1 day and 10 hours n = @ 4:00pm n + 1 hour @ n + 8:00:20 etc. etc. | misc | clock, calendar, dst, daylight saving time, |

[Subscript numbers] | 7 | Press Ctrl plus any number to obtain subscript numbers (if the font set used supports it) | Subscript numbers are useful for defining variables | misc | small number, variable, subscript | |

[Custom functions] | 7 | Create user-defined functions directly through OpalCalc, or in the special userFunctions.txt file in Javascript | If you want to create your own functions, you would use something like "plusfive(x) = x+5" (without the quotes). Now when you want to use that function later, just type plusfive(10), and the answer will appear as 15. All custom user functions are kept in a file called "userFunctions.txt" which can be opened from the 'Pi' button menu. The advantage of editing this text file directly rather than through OpalCalc is you can create functions with For/While loops and more complicated constructs (but make sure to save the text file and reboot OpalCalc so that it can load the new function/s in). | ---- Directly in OpalCalc: plusfive(x) = x+5 ---- Or in the corresponding text file: function plusfive(x) { return x+5; } | misc | userdefined |

[Custom variables] | 8 | Create user-defined variables directly through OpalCalc, or in the special userVariables.txt file | You can also use words, percentages, and currencies too. For storage purposes (between sessions of OpalCalc), it's possible to save variables to the corresponding 'userVariables.txt' file which can be opened from the 'Pi' button menu. Make sure to save the text file and reboot OpalCalc so that it can load the new variable/s in. | n = 5 n + 1 '(answer is 6) carpet = 50 metres extra = 10% carpet + extra '(answer is 55 metres) piano = $5,000 piano + $100 '(answer is $5,100) | misc | userdefined |

, or ; | 7 | Parameter delimiter: Commas are used to separate numbers in a function | The comma is more common to use. However, regions such as Europe, South America and Russia will be using the semicolon for the same functionality. | average(2,3,4,5) = 3.5 average(2;3;4;5) = 3,5 | operator | |

= | 7 | Variable assign: Variables can be given a number so as to be used later | tax=10% (equals is typed) n=50 (equals is typed) n+tax (equals fifty five) | operator | assignment | |

== | 6 | Equality: Tests two values for equality | 5==5 = True 5==6 = False | operator | programmer, boolean | |

&& | 6 | Logical AND: Tests two values to see if both are True | 5>3 && 3>2 = True | operator | programmer, boolean | |

|| | 6 | Logical OR: Tests two values to see if either is True | 5>3 || 2>3 = True | operator | programmer, boolean | |

< | 6 | Less than: Tests two values to see if the 1st is less than the 2nd | 4<3 = False | operator | programmer, boolean | |

> | 6 | More than: Tests two values to see if the 1st is more than the 2nd | 3>4 = False | operator | programmer, boolean | |

& | 4 | Bitwise AND: Performs a bitwise AND | 5 & 3 & 1 = 1 2`111 & 2`011 & 2`001 = 1 | operator | programmer, hexadecimal, binary | |

| | 4 | Bitwise OR: Performs a bitwise OR | 4 | 2 | 1 = 7 2`100 | 2`010 | 2`001 = 7 | operator | programmer, hexadecimal, binary | |

^ (with programmer syntax on) | 4 | Bitwise XOR: Performs a bitwise XOR | The ^ symbol will usually mean Exponential unless programmer syntax is switched on | 5^3 = 6 2`101 ^ 2`011 = 6 | operator | programmer, caret |

` (backtick symbol) | 5 | Number base sign: Allows definition of numbers in other bases | Any number can be used from 1 to x (1 to 36). For hexadecimal, precede numbers with g` or x` (e.g. x`0f). In the input, you can calculate with different bases at once. You can change the output base in two ways, either from the options (cog) window, or temporarily by adding "as" and the base at the end (e.g.: "as x`" or "as hex", or "as 2`". | x`10 + x`10 = 32 2`1000 + c`5a2.6 = 850.5 255 as hex = g`ff 255 as g` = g`ff 255 as x` = g`ff 255 as 2` = 2`10100 | operator | base 2, base 8, base 16, base 12, hexadecimal, octal, duodecimal, binary, programmer |

pow(n, exponent) | 8 | Exponentiation: n to the power of exponent | Use a^b instead of this as a shortcut | pow(2,6) = 64 | function | power of |

exp(n) | 4 | e^n exponentiation: Euler's number (e) to the power of exponent | Less general than pow() | exp(3) = 20.085537 | function | |

log(n,base) | 7 | Logarithm: Logarithm n (with arbitrary base) | Use a_b as shortcut (e.g. 125_5 = 3) | log(125,5) = 3 | function | |

log10(n) | 5 | Log base 10: Logarithm n (with base 10) | log10(1000)=3 | function | ||

log2(n) | 5 | Log base 2: Logarithm n (with base 2) | log2(256)=8 | function | ||

ln(n) | 5 | Log base e: Logarithm n (with base e) | ln(2) = 0.693147 | function | ||

sqrt(n) | 7 | Square root: Calculates the square root of n | sqrt(n)=n^0.5 | sqrt(25) = 5 | function | |

root(n,root) | 5 | Arbitrary root: Calculates an arbitrary root of n | root(81,4) = 3 | function | ||

if(condition, thenThis, elseThis) | 6 | IF condition: Executes 'thenThis' if condition is true else executes 'elseThis' | Similar to the ternary operator | if(3>2, 1000, 2000) = 1000 if(1==2, 1000, 2000) = 2000 | function | programmer, boolean |

sign(n) | 6 | Sign: Returns 1 if n>0 and -1 if n<0 and 0 if n==0 | sign(-27) = -1 | function | sgn | |

abs(n) | 7 | Absolute: Removes the negative sign of a number if one exists | magnitude | abs(-27) = 27 | function | |

round(n) | 6 | Round: Rounds n to the nearest whole number | round(3.499) = 3 | function | ||

roundm(n, order) | 5 | Round to magnitude: Rounds n to the nearest magnitude (defined by 10^order) | For the order value, use positive numbers for decimal places, and negative numbers for approaching the nearest 10,100,1000 etc/ | roundm(355.67,-2) = 400 roundm(355.67,1) = 355.7 | function | round, decimal places, nearest, magnitude |

floor(n) | 6 | Floor: Rounds down to the nearest whole number | floor(-6.7) = -7 floor(6.7) = 6 | function | ||

ceil(n) | 5 | Ceiling: Rounds up to the nearest whole number | ceil(3.7) = 4 ceil(-3.7) = -3 | function | ||

ceiling(n) | 5 | Ceiling: Rounds up to the nearest whole number | Use ceil(n) as shortcut | ceil(3.7) = 4 ceil(-3.7) = -3 | function | |

factorial(n) | 6 | Factorial: If n==4 for example, factorial(n) calculates 4*3*2*1 | Use math symbol ! As shortcut | factorial(4) = 24 | function | |

mod(n,base) | 7 | Modulus: Calculates the Floored modulus as defined by Knuth | % will also perform a modulus operation if the appropriate option is ticked in the options window (for example 5%3 = 2). Also see fmod, tmod and emod. | fmod(5, 3) = 2 fmod(5, -3) = -1 fmod(-5, 3) = 1 fmod(-5, -3) = -2 | function | programmer |

modulus(n,base) | 7 | Modulus: Calculates the Floored modulus as defined by Knuth | % will also perform a modulus operation if the appropriate option is ticked in the options window (for example 5%3 = 2). Also see fmod, tmod and emod. | fmod(5, 3) = 2 fmod(5, -3) = -1 fmod(-5, 3) = 1 fmod(-5, -3) = -2 | function | programmer |

tmod(n,base) | 7 | Truncated modulus: Calculates the common truncated modulus | A commonly used modulus, but apparently less useful than the Floored or Euclidean modulus | tmod(5, 3) = 2 tmod(5, -3) = 2 tmod(-5, 3) = -2 tmod(-5, -3) = -2 | function | programmer |

fmod(n,base) | 7 | Floored modulus: Calculates the Floored modulus as defined by Knuth | Floored modulus is supposed to be more mathematically useful than the truncated modulus | fmod(5, 3) = 2 fmod(5, -3) = -1 fmod(-5, 3) = 1 fmod(-5, -3) = -2 | function | programmer |

emod(n,base) | 7 | Euclidian modulus: Calculates the Euclidean modulus | Euclidean modulus is supposed to be more mathematically useful than the truncated or floored modulus | emod(5, 3) = 2 emod(5, -3) = 2 emod(-5, 3) = 1 emod(-5, -3) = 1 | function | programmer |

min() | 7 | Minimum: Finds the minimum of two or more given numbers | min(7, 90, 3, 50) = 3 | function | ||

max() | 7 | Maximum: Finds the maximum of two or more given numbers | max(7, 90, 3, 50) = 90 | function | ||

average() | 7 | Average: Finds the average of two or more given numbers | average(5,6,10) = 7 | function | mean, middle | |

mean() | 7 | Average: Finds the average of two or more given numbers | mean(5,6,10) = 7 | function | ||

dist(x1,y1,x2,y2) | 5 | Distance2D: Finds the Euclidean 'ordinary' distance between two points | dist(0,0, 10,10) = 14.142136 | function | ||

dist3(a,b,c,x,y,z) | 4 | Distance3D: Finds the Euclidean 'ordinary' distance between two 3D points | dist3(0,0,0, 1,1,1) = 1.73205 | function | ||

norm(n, start, end) | 5 | Normalize: How far 'n' is through start to end, where 'through' means from 0-1 | A surprisingly useful function in a programming context. (n - start) / (end - start) | norm(5, 4,8) = 0.25 | function | |

map(n, oldStart, oldEnd, newStart, newEnd) | 5 | Map: As 'Normalize', except normalizing isn't restricted from 0-1. | A surprisingly useful function in a programming context and equal to: (newEnd - newStart) * (n - oldStart) / (oldB - oldStart) + newStart. norm5() was the old name for this function. Also look at "maplog", "maploglin", and "maplinlog" for variations on the map() function. | map(5, 4,8, 10,20) = 12.5 | function | |

maplog(n, oldStart, oldEnd, newStart, newEnd) | 5 | Map log to log: As 'Map', except normalization takes place in log space. | maplog(2, 1,4, 1,100) = 10 | function | ||

maploglin(n, oldStart, oldEnd, newStart, newEnd) | 5 | Map log to Linear: As 'Map', except normalization takes place in log space for the input and linear space for output. | maploglin(2, 1,4, 0,100) = 50 | function | ||

maplinlog(n, oldStart, oldEnd, newStart, newEnd) | 5 | Map linear to log: As 'Map', except normalization takes place in linear space for the input and log space for output. | maplinlog(5, 0,10, 1,100) = 10 | function | ||

cadd() | 4 | Chance add: Adds normalized probabilities to create new probability | cadd(0.5,0.5,0.5) = 0.875 cadd(0.1,0.1) = 0.19 | function | ||

hex2rgb(h) | 5 | Hex colour code triplet to RGB | rgb2hex(192 , 191, 193 ) = #c0bfc1 | function | html, convert, color | |

rgb2hex(r,g,b) | 5 | RGB triplet to hex colour code | hex2rgb(c0bfc1) = 192,191,193 | function | html, convert, color | |

rsin(n) | 6 | Radian sine: Trigonometric function, but using cycles, rather than degrees/radians | From OpalCalc 1.34 onwards, this function operates using radians instead of turns | rsin(0.5pi) = 1 | function | |

rcos(n) | 6 | Radian cosine: Trigonometric function, but using cycles, rather than degrees/radians | From OpalCalc 1.34 onwards, this function operates using radians instead of turns | rcos(0.5×2pi) = -1 | function | |

rasin(n) | 6 | Radian arcsine: Trigonometric function, but using cycles, rather than degrees/radians | From OpalCalc 1.34 onwards, this function operates using radians instead of turns | rasin(1) = 1.5707963 | function | |

racos(n) | 6 | Radian cosine: Trigonometric function, but using cycles, rather than degrees/radians | From OpalCalc 1.34 onwards, this function operates using radians instead of turns | racos(-1) = 3.14159 | function | |

rtan(n) | 6 | Radian tangent: Trigonometric function, but using cycles, rather than degrees/radians | From OpalCalc 1.34 onwards, this function operates using radians instead of turns | rtan(0.125pi) = 0.414214 | function | |

ratan(n) | 6 | Radian arctangent: Trigonometric function, but using cycles, rather than degrees/radians | From OpalCalc 1.34 onwards, this function operates using radians instead of turns | ratan(1) = 0.78539816 | function | |

ratan2(x, y) | 6 | Radian arctangent 2: Trigonometric function, but using cycles, rather than degrees/radians | From OpalCalc 1.34 onwards, this function operates using radians instead of turns | ratan2(1,1) = 0.78539816 | function | |

cos(n) | 6 | Cosine: Trigonometric function Cosine | Angle mode of this function can be set in the prefs under Symbols/syntax | function | ||

sin(n) | 6 | Sine: Trigonometric function Sine | Angle mode of this function can be set in the prefs under Symbols/syntax | function | ||

tan(n) | 6 | Tangent: Trigonometric function Tangent | Angle mode of this function can be set in the prefs under Symbols/syntax | function | ||

acos(n) | 6 | Arccosine: Trigonometric function Arccosine | Angle mode of this function can be set in the prefs under Symbols/syntax | function | ||

asin(n) | 6 | Arcsine: Trigonometric function Arcsine | Angle mode of this function can be set in the prefs under Symbols/syntax | function | ||

atan(n) | 6 | Arctangent: Trigonometric function Arctangent | Angle mode of this function can be set in the prefs under Symbols/syntax | function | ||

atan2(x,y) | 6 | Arctangent2: Trigonometric function Arctangent2 | Angle mode of this function can be set in the prefs under Symbols/syntax | function | ||

cosh(n) | 6 | Hyperbolic cosine: Trigonometric function Hyperbolic cosine | Angle mode of this function must be set to radians in the prefs under Symbols/syntax | cosh(1) = 1.5430806 (radian angle mode) | function | |

sinh(n) | 6 | Hyperbolic sine: Trigonometric function Hyperbolic sine | Angle mode of this function must be set to radians in the prefs under Symbols/syntax | sinh(1) = 1.1752012 (radian angle mode) | function | |

tanh(n) | 6 | Hyperbolic tangent: Trigonometric function Hyperbolic arccosine | Angle mode of this function must be set to radians in the prefs under Symbols/syntax | tanh(1) = 0.76159416 (radian angle mode) | function | |

acosh(n) | 6 | Hyperbolic arccosine: Trigonometric function Hyperbolic arccosine | Angle mode of this function must be set to radians in the prefs under Symbols/syntax | acosh(2) = 1.3169579 (radian angle mode) | function | |

asinh(n) | 6 | Hyperbolic arcsine: Trigonometric function Hyperbolic arcsine | Angle mode of this function must be set to radians in the prefs under Symbols/syntax | asinh(1) = 0.88137359 (radian angle mode) | function | |

atanh(n) | 6 | Hyperbolic arctangent: Trigonometric function Hyperbolic arctangent | Angle mode of this function must be set to radians in the prefs under Symbols/syntax | atanh(0.5) = 0.54930614 | function | |

tsin(n) | 6 | Turn sine: Trigonometric function, but using cycles, rather than degrees/radians | tsin(1÷8) = 0.70710678 | function | ||

tcos(n) | 6 | Turn cosine: Trigonometric function, but using cycles, rather than degrees/radians | tcos(1÷8) = 0.70710678 | function | ||

tasin(n) | 6 | Turn arcsine: Trigonometric function, but using cycles, rather than degrees/radians | tasin(1) = 0.25 | function | ||

tacos(n) | 6 | Turn cosine: Trigonometric function, but using cycles, rather than degrees/radians | tacos(0) = 0.25 | function | ||

ttan(n) | 6 | Turn tangent: Trigonometric function, but using cycles, rather than degrees/radians | ttan(0.125÷2) = 0.414214 | function | ||

tatan(n) | 6 | Turn arctangent: Trigonometric function, but using cycles, rather than degrees/radians | tatan(1) = 0.125 | function | ||

tatan2(x, y) | 6 | Turn arctangent 2: Trigonometric function, but using cycles, rather than degrees/radians | tatan2(1,1) = 0.125 | function | ||

dcos(n) | 6 | Degree cosine: Trigonometric function Cosine | dsin(45) = 0.70710678 | function | ||

dsin(n) | 6 | Degree sine: Trigonometric function Sine | dcos(45) = 0.70710678 | function | ||

dasin(n) | 6 | Degree arcsine: Trigonometric function Arcsine | dasin(1) = 90 | function | ||

dacos(n) | 6 | Degree arccosine: Trigonometric function Arccosine | dacos(0) = 90 | function | ||

dtan(n) | 6 | Degree tangent: Trigonometric function Tangent | dtan(0.125*180) = 0.414214 | function | ||

datan(n) | 6 | Degree arctangent: Trigonometric function Arctangent | datan(1) = 45 | function | ||

datan2(x, y) | 6 | Degree arctangent2: Trigonometric function Arctangent2 | datan2(1,1) = 45 | function | ||

gcos(n) | 6 | Gradian cosine: Trigonometric function Cosine | gsin(50) = 0.70710678 | function | grads | |

gsin(n) | 6 | Gradian sine: Trigonometric function Sine | gcos(50) = 0.70710678 | function | grads | |

gasin(n) | 6 | Gradian arcsine: Trigonometric function Arcsine | gasin(1) = 100 | function | grads | |

gacos(n) | 6 | Gradian arccosine: Trigonometric function Arccosine | gacos(0) = 100 | function | grads | |

gtan(n) | 6 | Gradian tangent: Trigonometric function Tangent | gtan(0.125*200) = 0.414214 | function | grads | |

gatan(n) | 6 | Gradian arctangent: Trigonometric function Arctangent | gatan(1) = 50 | function | grads | |

gatan2(x, y) | 6 | Gradian arctangent2: Trigonometric function Arctangent2 | gatan2(1,1) = 50 | function | grads | |

around(a, b, accuracy) | 5 | Around: Returns true/false according to whether a is 'around' b | around(4,4.3, 0.5) = True around(4,4.6, 0.5) = False | function | ||

pascal(row, index) | 4 | Pascal: Returns number from Pascal's triangle according to row and horizontal index | pascal(10,2) = 45 | function | ||

rmsquare() | 4 | Root mean square: Statistical measure of the magnitude of a varying quantity | rmsquare(2,4,6) = 4.3204938 | function | quadratic mean | |

sigdig(n, digits) | 3 | Significant digits: Calculates n to 'digits' significant digits | sigdig(456789,3) = 457,000 | function | ||

geomean() | 6 | Geometric mean: Geometric mean of two or more numbers | geomean(1,4,16,64) = 8 | function | ||

gmean() | 6 | Geometric mean: Geometric mean of two or more numbers | gmean(1,4,16,64) = 8 | function | ||

sum() | 8 | Sum: A simple summation of two or more numbers | sum(1,2,3,4) = 10 | function | ||

hmean() | 4 | Harmonic mean: Harmonic mean of two or more numbers | hmean(2,3) = 2.4 | function | ||

variance() | 4 | Variance (sample): Variance of two or more numbers | This sample type is more common than the population type | variance(10,20,30,40) = 166.66667 | function | |

pvariance() | 4 | Variance (population): Variance of two or more numbers | This population type is less common than the sample type | pvariance(10,20,30,40) = 125 | function | |

stdev() | 5 | Standard deviation (sample): Standard deviation of two or more numbers | This 'sample' type is apparently more commonly used than the population type | stdev(2,4,6) = 2 | function | |

pstdev() | 5 | Standard deviation (population): Standard deviation of two or more numbers | This 'population' type is apparently less commonly used than the sample type | pstdev(2,4,6) = 1.6329932 | function | |

madev() | 4 | Mean absolute deviation: MAD of two or more numbers | Often more useful than the standard deviation according to: http://www.leeds.ac.uk/educol/documents/00003759.htm | madev(2,4,6) = 1.333333 | function | mad |

ginidev() | 4 | Gini mean devitation: GMD of two or more numbers | Alternative to standard deviation | ginidev(2,4,6) = 2.6666667 | function | |

ginidevb() | 4 | Gini mean devitation B: GMD of two or more numbers (alternative) | Like ginidev(), but comparison difference includes self as an error | ginidevb(2,4,6) = 1.7777778 | function | |

gstdev() | 3 | Geometric standard deviation: GSD of two or more numbers | gstdev(2,4,6) = 1.5739735 | function | ||

fibonacci(n) | 4 | Fibonacci: Returns number from fibonacci sequence at position n | fibonacci(7) = 13 | function | ||

imult(x,y) | 3 | Inverse multiply: Defined by 1 - (1-x)/y; | imult(0.5,2) = 0.75 imult(0.5,4) = 0.875 imult(0.5,1.5) = 0.6666667 | function | ||

gcd() | 5 | Greatest common divisor: GCD of two or more numbers | gcd(24,20) = 4 | function | GCF, HCF, GCF, HCD, greatest common factor, highest common factor, highest common divisor | |

lcm() | 5 | Least common multiple: LCM of two or more numbers | lcm(24,20) = 120 | function | LCM, SCM, least common multiple, lowest common multiple, smallest common multiple | |

c2f() | 7 | Celsius to Fahrenheit: Converts from Celsius to Fahrenheit | c2f(20) = 68 | function | temperature, thermometer, weather | |

f2c() | 7 | Fahrenheit to Celsius: Converts from Fahrenheit to Celsius | f2c(68) = 20 | function | temperature, thermometer, weather | |

pi | 7 | Math Pi: Equal to apx. 3.14159265 | You can also use the Pi symbol as well as the word. | pi = 3.1415927 | constant | constant, variable |

tau | 7 | Math Tau: Equal to 2pi or apx. 6.2831853 | Preferable over Pi sometimes to simplify math. You can also use the symbol. | tau = 6.2831853 | constant | constant, variable |

k | 8 | thousand: Multiplies value by 1000 | k = 1000 | constant | constant, variable | |

million | 7 | million: Multiplies value by 1,000,000 | million = 1,000,000 | constant | constant, variable | |

billion | 7 | billion: Multiplies value by 1,000,000,000 | billion = 1,000,000,000 | constant | constant, variable | |

trillion | 7 | trillion: Multiplies value by 1,000,000,000,000 | trillion = 1,000,000,000,000 | constant | constant, variable | |

ee | 7 | Euler's number: Euler's number is equal to apx.: 2.71828 | ee = 2.7182818 | constant | constant, variable | |

phi | 7 | Phi number: Phi is the golden ratio 1.618034 | phi = 1.618034 | constant | programmer | |

true | 5 | true: Denotes true | true = True | constant | programmer, special | |

false | 5 | false: Denotes false | false = False | constant | programmer, special | |

time | 8 | Time: Convert to hour:min:sec format | Used in conjunction with 'as' or 'in'. This overrides the 'default time unit' setting in the Options window. | 100 minutes as time = 01:40:00 1day + 2hour + 3minutes + 4seconds as time = 1.02:03:04 | special | hourminsec, hour:min:sec |

total | 8 | Sheet total: Represents the total of all previous values in the calculator | NB: The 'clear' keyword can be used to 'cut off' total as shown in the tutorial. Note that variable assignment lines or lines that use special words like 'total' as a variable are not included in a new total | 5 3 2 total = 10 | special | |

vtotal | 6 | Sheet total including variable assignments: Represents the total of all previous values in the calculator | You would usually use 'total' instead of this. | 5 3 n = 2 total = 10 | special | |

clear | 7 | Global variable reset: Clears values above this point from contributing to the total | Although variable assignments and other special words like 'total', 'subtotal', and 'count' are not taken into account when you want to calculate a new total, sometimes you don't want ANY numbers above a certain point to contribute. Using 'clear' solves this problem. Just be careful exactly where its positioned in the doc. | 5 3 2 total = 10 clear 1 2 total = 3 | special | |

subtotal | 7 | Sheet subtotal: Like 'total', except only calculates up to the last subtotal/total. Note that variable assignment lines or lines that use special words like 'total' as a variable are not included in a new total. | 2 3 subtotal = 5 1 2 subtotal = 3 | special | ||

count | 7 | Sheet count: Counts the number of previous calculations | The count excludes previous special keywords such as total or variable assignment lines | 3333 5555 count = 2 | special | |

subcount | 7 | Sheet subcount: Like 'count', except only calculates up to the last subcount/count | The subcount excludes previous special keywords such as total or variable assignment lines | 3333 5555 count = 2 | special | |

ans or answer | 9 | Previous answer: Represents previous line's answer | Very useful to use the previous answer in a new line/calc | 700+70+7 ans = 777 | special | |

ansright | 6 | Previous answer's right-most token | This is an experimental feature that can be used in conjunction with time ranges that can make sheets clearer. See the home page for a good example of how to use it. | @ 8:00:00 to 10:00:00 ansright = 10:00:00 | special | time |

'as' or 'in' | 9 | Convert between units or currency | OpalCalc allows you to convert measurements or currency (a list is given in the 'Units' submenu from the Pi button menu dropdown). You can use either 'as' or 'in' | 5m as cm = 500 cm £5 + £5 in usd = $16.06 4 hours as minutes = 240 minutes | special | conversion, translate, currency |

rem | 6 | Calculate division sum with remainder in answer | Use x/y and then add "rem" on the end (without the quotes). This is a special case operation and can't be used with other maths in the sum. | 7/3 rem (= 2 rem 1) | special | remainder integer divison divide |

now | 8 | The current time | This variable doesn't just represent the time at that point, but constantly updates as time passes. If you want it fixed, then press Ctrl+T or Ctrl+B instead. Also on top of "now", you can use "nowlocal" or "nowutc" to override the UTC on/off option in the options window. | @ now @ now + 1 hour | special | time |

today | 8 | The current day/date | This variable doesn't just represent that day, but will constantly update as new days pass. If you want it fixed, then use Ctrl+D instead. | @ today | special | time |

yesterday | 7 | Yesterday's day/date | This variable doesn't just represent that day, but will constantly update as new days pass. If you want it fixed, try pressing Ctrl+D instead and then type "- 1 day" without the quotes (don't forget the @ symbol at the line's beginning).. | @ yesterday | special | time |

tomorrow | 7 | Tomorrow's day/date | This variable doesn't just represent that day, but will constantly update as new days pass. If you want it fixed, try pressing Ctrl+D and then type "+ 1 day" without the quotes (don't forget the @ symbol at the line's beginning). | @ tomorrow | special | time |

BUTTON: Cut [Ctrl+X] | 10 | Cuts text to the clipboard | ...so you can reuse in OpalCalc or another program. Simply select some text, then hold down the Ctrl key and press X. Also, as a bonus, if nothing is selected, then the current/last sum is cut instead. | button | ||

BUTTON: Copy [Ctrl+C] | 10 | Copies text to the clipboard | ...so you can reuse in OpalCalc or another program. Simply select some text, then hold down the Ctrl key and press C. Also, as a bonus, if nothing is selected, then the current/last sum is copied instead. As yet another bonus, Alt+C copies the answer and Ctrl+Alt+C copies the sum AND answer. | button | ||

BUTTON: Paste [Ctrl+V] | 10 | Pastes text from the clipboard | ...so you can reuse in OpalCalc or another program. Simply hold down the Ctrl key and press V. | button | ||

BUTTON: Undo [F5] | 8 | Undo last operation | button | |||

BUTTON: Redo [F6] | 8 | Redo last operation | button | |||

BUTTON: Zoom out [F7] | 9 | Zooms out to fit more text in window | Use Ctrl + mouse wheel for even simpler shortcut | button | magnifying glass, small, large, font, text, resize | |

BUTTON: Zoom in [F8] | 9 | Zooms in to make text easier to read | Use Ctrl + mouse wheel for even simpler shortcut | button | magnifying glass, small, large, font, text, resize | |

BUTTON: Minimize window [F9] | 8 | Sends window to back and highlights previous program | button | |||

BUTTON: Keep on top [F10] | 8 | Keep window on top of other programs | button | |||

BUTTON: Clone line [F11] | 8 | Inserts a copy of the current line just below (or copies previous line if current line is empty) | button | |||

BUTTON: Remove line [F12] | 9 | Clears and removes the current line | F12 is easy to remember as a line delete, as it's just above the Backspace key. | button | ||

CLEAR BUTTON: Clear document [F1] | 10 | Clears page | Also clears any temporary variables | button | ||

OPEN BUTTON: Open | 8 | Open a text file for OpalCalc to process | menu | |||

SAVE BUTTON: Save | 8 | Save left side (input) calcs to a text file (overwrite existing one if a file is already open) | If you want to create a PDF from OpalCalc, there's a program called "CutePDF writer" which can help do exactly that when used in conjunction with OpalCalc's print feature. | menu | ||

SAVE BUTTON: Save as... | 8 | Save left side (input) calcs to a new text file | menu | |||

HELP BUTTON: See online help | 10 | Goes to this page! | menu | |||

HELP BUTTON: Load quickstart tutorial | 9 | Opens the easy introduction to OpalCalc | menu | |||

HELP BUTTON: Restore factory settings | 10 | Restores settings/options back to first-use defaults | If you've been experimenting with the options, and things start to appear 'haywire', this handy option restores everything back to normal. | menu | ||

OPTION: General: PC symbols: * / instead of × ÷ | 6 | Determines whether * or / should be used in place of × or ÷. | × and ÷ are just cosmetic really unless you need to paste elsewhere. | option | asterisk, multiply, times, divide, slash, stroke | |

OPTION: General: Use letter 'x' as multiplication | 9 | Determines whether the letter 'x' will be used as a multiplication symbol. | To enable this, 'PC symbols' must not be ticked. If you want to use the real letter 'x', then with feature enabled, you'll need to 'comment out' that part of the line using ' or : or ; | option | asterisk, multiply, times | |

OPTION: General: Programmer syntax (for ^ and ! ) | 7 | This makes ^ act as XOR instead of exponentiation and ! act as NOT instead of the factorial operator | option | |||

OPTION: General: Use modulus (not percent) for % | 7 | This makes % act as modulus instead of the usual percentage funtionality. | option | |||

OPTION: General: Convert square brackets | 7 | Determines whether [ or ] will convert to ( or ) | This is handy since [ or ] is easier to press than Shift+9 or 0 that is used on many keyboards. | option | brackets, parenthesis, curly | |

OPTION: General: Add spaces when using - and + | 7 | Usually OpalCalc will insert a space between numbers and minus or plus symbols. Unticking this prevents that. | option | |||

OPTION: General: Add spaces when using ÷ and × | 7 | Usually OpalCalc will insert a space between numbers and multiplication or divide symbols. Unticking this prevents that. | option | |||

OPTION: General: Use built in special vars | 7 | Disable this tickbox if you want to use special variables such as 'radian', 'total', 'average' etc. for your own purposes. | option | |||

OPTION: General: Use built in constants and units | 7 | Disable this tickbox if you want to use variables such as 'metre', 'm', 'kg', 'k', 'half' etc. for your own purposes. | option | |||

OPTION: General: Angle mode | 7 | Determines angle mode for trigonometry functions | "Sin", "cos", and "tan" etc. will depend on the menu item selected here. You can override these functions by specifying the first letter of the angle mode before each function (e.g. dsin, dcos, and dtan for the [d]egree mode) | option | trigonometry, trig | |

OPTION: General: Notation | 7 | Select between different ways of representing numbers in the output | Select 'Custom Set options' to open a window with an extensive set of number formatting options. Conveniently, you can change these, and the answers will update on the fly in the main window. If you want to save a custom notation set for later use, use 'Prefs -> Save prefs as...' | option | scientific, engineering, financial, integer, | |

OPTION: General: Sheet cycles | 3 | The maximum number of times a sheet's calcs will run after each keypress | The max number of times OpalCalc should cycle through a sheet to try and resolve variables. Higher values will resolve deeply unresolved variables (a=b; b=c; c=10 means 'a' won't be known on the first or second cycle), but will make OpalCalc run slower. | a=b b=c c=d d=5 | option | |

OPTION: General: Default output number base | 4 | Choose between any number base including binary, hexadecimal, octal, and base 12! | OpalCalc can handle the decimal point too. Type in ` (backtick) in the below reference for more information on using other number bases. | option | ||

OPTION: Time: Default time unit | 7 | For time spans (rather than time/dates), this submenu allows you to change the representation of the output | option | |||

OPTION: Time: Date/time format | 7 | For dates/times (rather than time spans), this submenu allows you to change the representation of the output | option | |||

OPTION: Time: Update less often for live times | 6 | Toggle between frequent (per second) and non-frequent (per minute) for live time updating. | When you use keywords such as 'now' or 'today', the time will update every second by default (or when you press a key). However this option will update the time once a minute instead (less distracting!). | option | ||

OPTION: Time: Intepret input as UTC time | 6 | Input dates/times in UTC/GMT time format. | Also see "Produce output in UTC time" | option | Greenwich Mean Time, Coordinated Universal Time | |

OPTION: Time: Produce output in UTC time | 6 | Output dates/times in UTC/GMT format. | Also see "Intepret input as UTC time" | option | Greenwich Mean Time, Coordinated Universal Time | |

OPTION: Currency: Default output currency | 7 | Adjust the right hand column's default currency, no matter what you input | 'Auto' is the default, and means that the output currency is dependant on the first currency type in your sum (e.g.: $4 + £4 would output in $). | option | ||

OPTION: Currency: Dollar type | 7 | Adjust dollar type for the symbol '$' | When you use the symbol '$', OpalCalc defaults to the US dollar. This can easily be adjusted from this menu. | option | ||

OPTION: Currency: Don't use web for currencies | 7 | Prevent OpalCalc from accessing the internet for currency information | If this is turned on, OpalCalc will resort to accessing any existing currency information from disk. | option | ||

OPTION: Currency: See last currency update time | 7 | See update time of latest downloaded currency data | This is supposed to be the time from the vendor, not necessarily the time that OpalCalc downloaded that data. | option | ||

OPTION: Currency: Update currencies now | 6 | Use this to get the latest conversion rates if OpalCalc has been open for days | option | |||

OPTION: Currency: Add/edit unsupported currencies | 6 | If your currency is not listed among the 90 supported, then select this option and follow the instructions in the given text file for manual usage. | option | |||

OPTION: Appearance: Change font [Ctrl+G] | 8 | Choose a font and style from a list | Decent options include:Microsoft Sans Serif (default OpalCalc font, includes unicode set)Segoe UI, Arial Rounded MT, or Gill Sans MT (for a clear and 'simple' look)Franklin Gothic (for condensed letters, but wide numbers)Comic Sans (you know you love it really)Mangal (large line spacing)Fixedsys Excelsior or Lucida Console (for fixed width characters)Tahoma, Trebuchet MS, Verdana (each similar to Microsoft Sans Serif / Arial / Helvetica) | option | typeface, glyph, unicode, style, theme, skin, character, font | |

OPTION: Appearance: Show edit toolbar [Ctrl+F1] | 7 | Toggles the edit toolbar on/off | option | |||

OPTION: Appearance: Show help toolbar [Ctrl+F2] | 6 | Toggles the help toolbar on/off | option | |||

OPTION: Appearance: Show main toolbar [Ctrl+F4] | 6 | Toggles the main toolbar on/off | Be careful with this one. Press F2 (for Options) or Ctrl+F4 to bring this back. | option | ||

OPTION: Appearance: Colour scheme [F4] | 8 | Swaps between five different colour schemes | Press F4 in the main window as a shortcut. You can also adjust the saturation of each scheme. | option | style, skin, theme | |

OPTION: Load last session on startup | 7 | On startup of OpalCalc, the last document session will automatically be opened (including unsaved documents). | option | |||

OPTION: Allow only one OpalCalc instance | 6 | If ticked, prevents multiple instances of OpalCalc opening up. | This can allow you to bind OpalCalc to the Calculator button on the keyboard etc. | option | ||

MENU: Export worksheet... | 8 | Combines questions and answers to form one sheet | From this new window, you can also save the sheet to a text file. This used to be called "Show all Q+A". | menu | ||

MENU: New window | 9 | Opens a new document so you can work on different sheets at the same time. | This could previously also be achieved via Windows through Shift+Left left mouse button on the program's icon, though some of you may not have known this | menu | ||

MENU: Edit: Copy answer to clipboard | 9 | Copies the current answer (or last answer if current is blank) to the clipboard if nothing's selected | "Ctrl+C" means Hold down Ctrl and press C | menu | ||

MENU: Edit: Copy sum to clipboard | 8 | Copies the current sum (or last sum if current is blank) to the clipboard if nothing's selected | "Ctrl+X" means Hold down Ctrl and press X | menu | ||

MENU: Edit: Open last session | 7 | Opens the document sheet when you last closed OpalCalc | Shift+F1 is the shortcut. You can get OpalCalc to do this automatically by ticking "Load last session on startup" in the Options window. | menu | ||

MENU: Edit: Zero orphan variables | 5 | Any variables you've created will have their values cleared | This is useful if you're repeatedly changing values for mulitple variables (save having to keep using backspace). | menu | ||

MENU: Edit: Bracket selected text | 5 | Places brackets around any text you've highlighted | parenthesis, selection | menu | ||

MENU: Edit: Select all text | 8 | Selects all text, ready to copy | Use Ctrl+A for keyboard shortcut. This is a standard in Windows for many programs | menu | ||

MENU: Edit: Time: Insert date [Ctrl+D] | 7 | Inserts date (follows country format) | Something similar to dd/mm/yyyy or a mix of those | menu | ||

MENU: Edit: Time: Insert time [Ctrl+T] | 7 | Inserts time (follows country format) | 24 hour format of local time | menu | ||

MENU: Edit: Time: Insert custom format date/time [Ctrl+B] | 7 | Inserts date/time in the format you specified by the "Date/time format" submenu | menu | |||

MENU: Search | 7 | Find any text inside the document | Use the standard Ctrl+F shortcut to bring this toolbar up. Also the shortcuts to find 'next' and 'previous' are F3 and F2. | menu | find, filter | |

MENU: Prefs | 8 | Load or Save default preferences, or to a file for multiple setups | Everything from the window's position and colour to the most advanced options are all saved. If you don't want OpalCalc to save the preferences automatically when you exit the program, please deselect Prefs -> Auto save prefs on exit. You can also reset/restore back to default factory settings if you so wish, or if OpalCalc is displaying strange results. | menu | troubleshooting, problem, bug, help, settings, options, store, keep | |

MENU: Print | 8 | Print all sums along with answers | Select "Page setup" or "Page preview..." to set margins etc. If the output appears strange, try making the font smaller in the main window (F7/F8) since the lines could be wrapping over. Finally, you can set the spacing between the columns by selecting "More options...". You may also want to change to the "Equals format" from that new window. | menu | ||

MENU: Quit [Esc] | 9 | Quits OpalCalc | menu | |||

PI MENU: Open user defined functions | 6 | Opens text file containing user defined user functions | Most of the time, you can create functions directly in OpalCalc, but if you're handy with Javascript, you might want to see the raw code. Further instructions in the text file given when you select this menu item. | menu | ||

PI MENU: Open user defined variables | 5 | Opens text file containing user defined user variables | You can create permanent variables directly in OpalCalc (using uppercase, like N=10), but you can also create or view them here. | menu | ||

PI MENU: Open user defined units | 6 | Opens text file containing user defined user units | If you want to create your own units, please select this menu item, and follow the instructions once the text file has opened. | menu | ||

PI MENU: Units | 8 | Opens dropdown of all inbuilt units | If you want to create your own units, please select "Open user defined units" instead. | menu |