Most of the calculators available online are trying to reproduce the physical calculator. A command/terminal based calculator can be more productive, so this attempt to create an online terminal calculator.

> 1 + 1

will come up with the result

1 + 1 --> 2 (R1)

2

the last line is the result of the express.

Every expression evaluated is assigned to a variable starting with R1. so this variable can
be used in next expression. for example,

>1+1

1 + 1 --> 2 (R2)

2

>R1 + 5

R1 + 5 --> 7 (R2)

7

Functions can be used in the expression.

>sqrt(90)

sqrt(90) --> 9.486832980505138 (R1)

9.486832980505138

Following Constants are available by default.

>e

R1 --> e

2.718281828459045

- e
- E
- LN2
- LN10
- LOG2E
- LOG10E
- PI, pi
- phi
- tau

>e

R1 --> e

2.718281828459045

Following DataTypes are available.

- Numbers - eg: 1, -1, 0.0002
- Exponential - eg: 5e-324
- Complex - eg: 4 + 2i
- Matrices - eg: [1, 2, 3; 4, 5, 6] will result in matrix [[1,2,3],[4,5,6]]
- Units - eg: cm, inch (try - 3inch + 2cm)

Following Commands are available.

- clear - clears the screen
- list or ls - lists the history of calculations
- vars - lists all the variables and their values
- reset - resets the terminal, all the history of calculations will be deleted.
- autovar - By default, all the commands executed will be assigned with a variable, using this command this feature can be enabled or disabled, eg: autovar off, autovar on, autovar status

you can login using your google account, as in traditional web, the button at the top right can
be used to login or commands can be used

- login - to sign in
- logout - to sing out

File Management commands,

- save - stores the file, example - save filename
- open - opens a stored file, example - open filename
- pwf - displays present working file name
- save as - stores the copy of current file in different name, example - save as filename
- files - lists all the files stored
- rename - rename a stored file, example - rename oldname newname
- delete - delete a stored file, example - delete filename
- share - shares a file with others, example - share filename
- unshare - unshares a file, example - unshare filename
- shareinfo - shows share status of a file, example - shareinfo filename
- autosave - enable auto save for current working file, example - autosave on, autosave off, autosave status

Below is the list of functions available, please refer -
mathjs documentation for more details.

Arithmetic Functions | |
---|---|

abs(x) | |

add(x,y) | |

ceil(x) | |

cube(x) | |

divide(x,y) | |

dotDivide(x, y) | |

dotMultiply(x, y) | |

dotPow(x, y) | |

exp(x) | |

fix(x) | |

floor(x) | |

gcd(a, b) | |

lcm(a, b) | |

log(x [, base]) | |

log10(x) | |

mod(x, y) | |

multiply(x, y) | |

norm(x [, p]) | |

nthRoot(a, root) | |

pow(x, y) | |

round(x [, n]) | |

sign(x) | |

sqrt(x) | |

square(x) | |

subtract(x, y) | |

unaryMinus(x) | |

unaryPlus(x) | |

xgcd(a, b) | |

Bitwise Functions | |

bitAnd(x, y) | |

bitNot(x) | |

bitOr(x, y) | |

bitXor(x, y) | |

leftShift(x, y) | |

rightArithShift(x, y) | |

rightLogShift(x, y) | |

Complex Functions | |

arg(x) | |

conj(x) | |

im(x) | |

re(x) | |

Construction Functions | |

bignumber(x) | |

boolean(x) | |

chain(value) | |

complex(re, im) | |

index(range1, range2, ...) | |

number(value) | |

unit(x) | |

logical Functions | |

and(x, y) | |

not(x) | |

or(x, y) | |

xor(x, y) | |

matrix Functions | |

concat(a, b, c, ... [, dim]) | |

cross(x, y) | |

det(x) | |

diag(X) | |

dot(x, y) | |

eye(n) | |

flatten(x) | |

inv(x) | |

ones(m, n, p, ...) | |

range(start, end [, step]) | |

resize(x, size [, defaultValue]) | |

size(x) | |

squeeze(x) | |

subset(x, index [, replacement]) | |

transpose(x) | |

zeros(m, n, p, ...) | |

probability Functions | |

combinations(n, k) | |

distribution(name) | |

factorial(n) | |

gamma(n) | |

permutations(n) | |

pickRandom(array) | |

random([min, max]) | |

randomInt([min, max]) | |

relational Functions | |

compare(x, y) | |

deepEqual(x, y) | |

equal(x, y) | |

larger(x, y) | |

largerEq(x, y) | |

smaller(x, y) | |

smallerEq(x, y) | |

unequal(x, y) | |

statistics Functions | |

max(a, b, c, ...) | |

mean.mean(a, b, c, ...) | |

mean.median(a, b, c, ...) | |

min(a, b, c, ...) | |

prod(a, b, c, ...) | |

std(a, b, c, ...) | |

sum(a, b, c, ...) | |

var(a, b, c, ...) | |

trigonometry Functions | |

acos(x) | |

asin(x) | |

atan(x) | |

atan2(y, x) | |

cos(x) | |

cosh(x) | |

cot(x) | |

coth(x) | |

csc(x) | |

csch(x) | |

sec(x) | |

sech(x) | |

sin(x) | |

sinh(x) | |

tan(x) | |

tanh(x) | |

units Functions | |

to(x, unit) | |

utils Functions | |

clone(x) | |

filter(x, test) | |

forEach(x, callback) | |

format(value [, precision]) | |

import(filename | object, override) | |

map(x, callback) | |

print(template, values [, precision]) | |

sort(x) | |

typeof(x) |

This terminal is using following wonderful libraries
Special thanks to them for their great work!

The materials on this website is provided "as is". This website makes no warranties, expressed
or implied, and hereby disclaims and negates all other warranties, including without limitation,
implied warranties or conditions of merchantability, fitness for a particular purpose, or
non-infringement of intellectual property or other violation of rights. Further, This website
does not warrant or make any representations concerning the accuracy, likely results, or
reliability of the use of the materials on its Internet web site or otherwise relating to such
materials or on any sites linked to this site.