Skip to content

Releases: KdudeDev/InfiniteMath

1.3.10

14 Jan 02:08
a2bbbab
Compare
Choose a tag to compare
  • Improved :aaNotation() by adding a new variable called 'AALENGTHMAX', which lets you set the amount of letters used. The letter amount will also only start at 1 letter, and add more as the number needs them. Once a number reaches 1z, it will turn into 1aa. 1zz into 1aaa, up until it hits AAMAXLENGTH. The default value for AAMAXLENGTH is 3

  • Improves .new() usage with tables. Before, a table with first and second would be assumed as a constructed number, and just return the table. This doesn't account for if the metatable info is lost when saved in a datastore or sent through a RemoteEvent. .new() now checks for the metatable and correctly creates numbers that have first and second values.

1.3.9

10 Jan 22:14
9176308
Compare
Choose a tag to compare
  • Fix comparisons not correctly comparing negative and positive numbers. -45 > 0 would return true, this would impact comparison and any function that used it (min, max, clamp, etc.). It now correctly returns false.

  • Adds a new :SetValue() function. This sets the value of a constructed number, which is better practice than creating a new number with a different value as it doesn't need to create new metatable (better for memory I believe). The function takes a new first and second and sets the first and second of the constructed number to the new values.

  • Fixed an error with :ConvertFromLeaderboards() when given 0.

  • Fixed an issue with :aaNotation() where instead of using z it would use scientific notation.

1.3.8

07 Jan 18:22
3e02db6
Compare
Choose a tag to compare
  • Fixed a bug with very small numbers (that get stored as scientific notation, like 1e-15) displaying incorrectly.

  • Improves InfiniteMath.round(), reduces cases of incorrectly picking ceil or floor over the other.

  • Added a new Datastore Implementation page to the docs website.

  • Corrects a mistake in the Suffixes module, QNV (Quinvigintillion) was instead QNT, even though there is already QNT (Quattuornonagintaducentillion).

  • Improves some type checking that was added 1.3.7, .new() no longer throws a warning with tables or InfiniteMath numbers.

1.3.7

30 Dec 17:19
efda6b2
Compare
Choose a tag to compare
  • Fixes the .00 fix not working with DECIMALPOINT not being 2, .000 or .0 will now be fixed just like .00.

  • Fixed .99 showing up at the end of numbers that are very close to being whole. For example 5 might be stored as 4.99999999999523525, displaying as 4.99 (decimal amount depending on DECIMALPOINT), numbers ending in a decimal very close to 1 will now be rounded up. 4.99999999999523525 will display as 5.

  • Fixed numbers below 1 not using DECIMALPOINT in :GetSuffix().

  • Fix C stack overflow error when using .__concat with an InfiniteMath number as the second parameter

  • Improved pow is not a valid power error for .__pow, the error now explains that if your power is inf you need to keep it below 10^308.

1.3.6

27 Oct 00:47
b3bbe2b
Compare
Choose a tag to compare
  • Fixed an issue with InfiniteMath.new() where strings such as "1e+5" or "50000" would error.
  • Fixed an issue where if DECIMALPOINT cuts off the decimal of a number display such as 10.00025, it would display with zeros after the point, like 10.00. If the decimal of a displaying number (using GetSuffix) is equal to 0, it will be removed. 10.00 turns into 10.
  • Fixed an issue where super low decimals that get turned into Scientific Notation, such as 5e-5 which equals 0.00005 would cause multiple errors.

1.3.5

13 Sep 14:48
02c2de0
Compare
Choose a tag to compare
  • Marks the module as native (with --!native) to increase performance.

Using this function before this update will take approx 2.6201 seconds. After this update it takes approx 1.6117 seconds (38.48% improvement). Certain functions are impacted more than others (only using new results in an 8.45% improvement)

local IM = require(game.ReplicatedStorage.InfiniteMath)

local ticker = tick()

for i = 1, 100000 do
	local Num = IM.new(i)
	
	Num *= i
	
	Num ^= i
	
	Num = IM.round(Num)
end

print(tick() - ticker)

Currently, you need to enable the Luau Native Code beta to see the effects, and live servers will not be impacted until full release.

image

1.3.4

10 Sep 14:25
83e4a04
Compare
Choose a tag to compare
  • Improves Reverse by removing string usage, and instead solving the scientific notation equation ({5, 7} = 5 * 10^7 = 50000000). This fixes an error with very small decimals that use e-.

1.3.3

10 Sep 14:02
5de83bc
Compare
Choose a tag to compare
  • Fixed an error with round between 1e+100 and 1e+299

1.3.2

28 Jul 00:05
01ce7ee
Compare
Choose a tag to compare
  • Fixed floor and ceil accuracy with negative numbers.
  • Improved the __eq nan check by removing tostring usage. nan is already stored as a string, so using tostring is pointless.
  • Fixed errors when creating a Number with -0. The created number will have a value of 0. If you need the value to be -0, please give a usage case.

1.3.1

19 Jul 21:04
80c4909
Compare
Choose a tag to compare
  • Removed an unused function & silenced LocalUnuseds
  • Fixed default.project for Wally