Break Eternity.js Versions Save

A Javascript numerical library to represent numbers as large as 10^^1e308 and as small as 10^-10^^1e308. Sequel to break_infinity.js, designed for incremental games.

v2.0.0

2 weeks ago

A summary of changes from v1.4.2:

  • Added a parameter to lambertw allowing you to calculate the non-principal branch
  • Changed all cases where a constant or parameter is returned directly, to reduce the likelihood of accidental mutation
  • Changed how tetration for bases <= e^1/e works: now the property x^^(n + 1) == x^(x^^n) always holds, and small bases with large payloads behave correctly.
  • Fixed inaccuracies in f_gamma
  • Decimal.dNegInf is now {-1, Infinity, Infinity} instead of {-1, -Infinity, -Infinity}. This one is a breaking change, hence the version number is now v2.0.0.

v1.4.2

3 months ago

A mistake was made in v1.4.1 - MathCookie17 thought Decimal.dNegInf was {-1, Infinity, Infinity}, but actually it's {-1, -Infinity, -Infinity}. This mistake should be fixed now.

v1.4.1

3 months ago

Thanks to MathCookie17.

Changes made:

  • normalization for infinities and NaN
  • ssqrt now uses linear_sroot rather than the other way around
  • Added a linear hyper4 parameter to fromString
  • Static versions of layeradd and slog now use DecimalSource for base instead of number, like their non-static versions. Also, added static trig functions
  • Added JSDocs documentation for most functions

v1.4.0

7 months ago

Added the following features:

  • An argument for hyper-4 functions that, when set to true, has them use the linear approximation even for bases <= 10, ensuring consistent behavior in situations where consistent behavior is needed (such as in an incremental game that uses tetration)
  • Support for XFY format in fromString
  • mod/modular function
  • Super roots of arbitrary length (but only for the linear approximation, as super roots don't really work without a consistent definition of tetration)

v1.3.2

1 year ago

fixed slog, oops

v1.3.1

1 year ago

tetration and slog accuracy improved, see https://github.com/Patashu/break_eternity.js/issues/108

Further improvements to tetration are possible by copying http://myweb.astate.edu/wpaulsen/tetcalc/tetcalc.html code, and performance improvements should be possible too, but this is a nice big improvement.

v1.3.0

1 year ago

Includes performance improvements, bug fixes and a general prettification.

v1.2.4

2 years ago

Two big changes:

  1. A rewrite in TypeScript, thanks to bbugh!
  2. Tetration and slog have been improved to use a critical function that approximates the analytical function! (as shown in e.g. http://myweb.astate.edu/wpaulsen/tetcalc/tetcalc.html and the related work it draws off of). See https://github.com/Patashu/break_eternity.js/issues/22 for more analysis and comments. I also fixed a lot of tetration edge cases to work better (such as bases between 0 and e^(1/e), base -1, height 0/1).

And many new and old bug fixes.

v1.0.1

5 years ago

just some bug fixes.

v1.0.0

5 years ago

break_eternity.js is now feature complete modulo any bugs people find.

Features:

  • Handles numbers as big as 10^^1e308 and as small as 10^-10^^1e308, both positive and negative, just as competently as it handles layer 0 (Number), layer 1 (10^Number) and layer 2 (10^10^Number or 10^-10^Number) numbers, so it can be used the same no matter how big or small your numbers end up getting.
  • Handles hyper 4 operators (tetrate, iterated exponentiation, iterated logarithm, super log, super square root) with arbitrary bases and heights, using the linear approximation for real heights.
  • About as performant (within x0.5-x2) and accurate (within the last decimal place) and uses the same interface, allowing them and decimal.js to be swapped between easily. (Just note that log/log2/log10/ln now return Decimal not Number! You'll also need to reconsider your string parsing/displaying functions and consider moving e/exponent calls to absLog10.
  • Can do any calculation HyperCalc/break_infinity.js can and many more.