BeeneticToolkit.BigMath
0.12.0
See the version list below for details.
dotnet add package BeeneticToolkit.BigMath --version 0.12.0
NuGet\Install-Package BeeneticToolkit.BigMath -Version 0.12.0
<PackageReference Include="BeeneticToolkit.BigMath" Version="0.12.0" />
<PackageVersion Include="BeeneticToolkit.BigMath" Version="0.12.0" />
<PackageReference Include="BeeneticToolkit.BigMath" />
paket add BeeneticToolkit.BigMath --version 0.12.0
#r "nuget: BeeneticToolkit.BigMath, 0.12.0"
#:package BeeneticToolkit.BigMath@0.12.0
#addin nuget:?package=BeeneticToolkit.BigMath&version=0.12.0
#tool nuget:?package=BeeneticToolkit.BigMath&version=0.12.0
BeeneticToolkit.BigMath
Large-number math for incremental/idle games and long-running simulations. BigDouble is a value type that
stores a normalized mantissa times a power of ten (Mantissa × 10^Exponent), so it shrugs off double's
~1.8e308 ceiling while staying fast and allocation-free.
using BeeneticToolkit.BigMath;
BigDouble gold = 1_000_000; // implicit from int/long/double
BigDouble income = BigDouble.Pow10(42) * 3.5;
BigDouble total = gold + income; // full arithmetic: + - * /
BigDouble cost = new BigDouble(1.5, 30) * total.Pow(1.15); // geometric cost curves
bool canAfford = total >= cost; // full comparison + equality
double howMany = total.Log10(); // logs return a plain double
Why a big-number type?
Idle/incremental games routinely blow past double and need to display values like 1.50M, 3.24B, or
9.99e1234. BigDouble gives you exact-order-of-magnitude arithmetic far beyond that, plus a pluggable
notation system for display and round-trippable parsing of saved values.
Representation
BigDouble keeps a double mantissa (0, or 1 <= |Mantissa| < 10) and a double exponent that is capped
at ±9e15 (BigDouble.ExponentLimit, just under 2^53) so it is always an exact integer. This matches the
representation used by break_infinity.js; exponent arithmetic saturates to infinity instead of wrapping.
Tetration-scale magnitudes (10↑↑n) are intentionally out of scope.
Highlights
- Arithmetic (
+ - * /, unary-), with an addition short-circuit for negligible operands. - Powers, roots, and logs:
Pow,Sqrt,Root,Log10,Ln,Log,Pow10,Exp. - Full comparison/equality plus
EqualsApproximatelyfor tolerant checks. - IEEE-style edge cases:
NaN,±Infinity, saturating overflow — defined, not thrown. - Multi-targets
netstandard2.1andnet8.0; deterministic and Unity-friendly.
Notation/formatting and parsing are documented alongside the INotation types.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on BeeneticToolkit.BigMath:
| Package | Downloads |
|---|---|
|
BeeneticToolkit
Meta-package that references the full BeeneticToolkit family: BeeneticToolkit.Random, BeeneticToolkit.Collections, BeeneticToolkit.Numerics, BeeneticToolkit.Logging, BeeneticToolkit.Spatial, and BeeneticToolkit.BigMath. Install this to get everything, or install the individual packages to take only what you need. |
GitHub repositories
This package is not used by any popular GitHub repositories.
See the changelog: https://github.com/Beenetic-Studios/BeeneticToolkit/blob/master/CHANGELOG.md