Enter
1.4142135623730951

Functions and operators by precedence

>

Preferences

>
Theme
Press button to calculate
Interpret text input
Auto complete parenthesis
Simplify expression
If simplified is far from original

If max time is exceeded

Max time
Remove zeros in fractions

News

>
2021-10-11

date() Improvement

I ditched the 'now' keyword because '' is shorter. So, date() now returns the JS representation of the current time.
2021-10-01

date() Bugfix

Dates with negative JS representations would previously mess up certain types of calculations.
2021-09-24

date() Fix and Improvement

The date() function seemed to only work properly for one instance at a time. I've fixed that and added the keyword 'now' to get the current time. I also added some more time conversion functions, although I deliberately excluded months since they vary so much in length.
2021-09-17

Switching from bigInt to BigInt

The old bigInt library I was using has been removed, presumably because the built-in BigInt is better. This broke my entire calculator but I've changed a bunch of syntax and it seems to work again.
2020-08-25

Important Bugfix

As kindly pointed out in this issue, '*' was changed to '××' rather than '×'.
2019-12-18

Critical Simplification Bug Fixed

Sums were incorrectly simplified when containing products or quotients of functions of k.
2018-02-11

Stupid Inequality Bug Fixed

I just realized that ≤ calls the greater or equal function while ≥ calls the less or equal function. I have now reversed them to fix this.

Hash Encoding

Backwards compatibility for sharing links to expressions is now broken since the hash must be encoded to avoid trouble with special characters. This might also cause problems if you try to write an expression directly to the hash.
2017-12-10

Syntax Highlighting

Added syntax highlighting to the input box using Ace.
The highlighting language is currently set to Haskell so it might not make sense for JS code. However, I find Haskell more suitable for mathematical expressions since it's a more mathematical language.
2017-12-05

Simplification Update

a^(b/c) is now simplified to (a^b)^(1/c). This might seem stupid and sometimes it is but I think it's worth it for the times when a^b turns out to be something nice.
a^b×a^c is now simplified to a^(b+c).
2017-12-03

a/1 Simplified to a

Another weird but not incorrect simplification fixed.
2017-11-25

Another Important Bugfix

Turns out a+0 and 0+a were simplified to 0 for certain non-zero a.

Simplify a×1

Might sound obvious but 1×a and a×1 will now always be simplified to a.
2017-11-10

Important Bugfix

I just found out that a^b, was floored for negative b. This is fixed now.
2017-11-09

Shorter Fractions

If there are zeros at the end of a numerator or a denominator, those can be cut off while moving the decimal point of the denominator or the numerator respectively. Turn it on in the preferences and try something like 1751/7900 to see how it works.

Printing Roots

a^(1/2), a^(1/3) and a^(1/4) will now be printed as √a, ∛a and ∜a respectively.
2017-11-08

Product Simplification

As promised yesterday :)

BigInt

I've always been using bigInts but they would usually turn into ordinary JS numbers in the simplification and were thus quite useless. This shouldn't be the case anymore.
Working with bigInts means the calculator can handle arbitrarily big numbers and should avoid certain rounding errors.
Note that bigInts are used in the parsing and simplification only and still have to be converted to JS numbers before the final answer is calculated. Thus, the answer cannot be arbitrarily big, even though the numbers in the simplified expression can.
2017-11-07

News Box

Added this news box where I'll tell you about new features and stuff.

Updated Expression Simplification

Sums and powers can now be simplified. I've also fixed a few weird but not really wrong simplifications.
Product simplification coming soon.

Simplification Settings

Added settings so you can decide what happens if simplication seems wrong or takes too long time.
When an expression is simplified, its answer will be compared to that of the raw expression unless it exceeds your time limit.

About

>
This is a hobby project that I've been working on for a while. The original idea was to simplify expressions and use infinite series to get rid of rounding errors. While it does try to simplify your expression (check it out below the enter button), there's no infinite series magic going on behind the scenes... yet...
If you write π, it will simply use a predefined constant with a decent amount of decimal places.

Sooo - when will I do the series stuff? Well, first of all, the expression objects that your text input is parsed to kinda suck. Way too many strings and stuff.
Second, I have another project that I'm pretty excited about. My hope is that that project will provide a foundation for building a new and more powerful calculator.

Pro tip: don't write js(setTheme('darkOld'))