Duke's Big Numbers 1.0
C++ and Blueprint libraries for performing math, analysis, and formatting with really large numbers (>10e308).
Loading...
Searching...
No Matches
Core Concepts

FBigInteger

The heart of the entire DBN plugin is the FBigInteger struct. This is the structure that holds the large integers and operates on them.

FBigInteger is a USTRUCT and a Blueprint type. Any operation available on a FBigInteger that uses only Blueprint-compatible types should be accessible from a Blueprint.

FBigInteger supports dozen of operations.

For more details on FBigInteger, see Working With BigIntegers

Formatting

Formatting of FBigIntegers is very flexible and can easily be set up and customized from either C++ or Blueprints.

Several formatters are provided with FBigInteger: UDecimalInvariantFormatter, UDecimalFullFormatter, UDecimalScalingFormatter, UHexadecimalInvariantFormatter.

Each formatter exposes one or more default instances covering the following formats out-of-the-box: Invariant Decimal, Culture-aware Decimal, Scientific Notation, Engineering Notation, Named Notation, SI Names Notation, SI Symbols Notation, and Invariant Hexadecimal.

UDecimalFullFormatter and UDecimalScalingFormatter have settings that can be customized. Either the default instances can be changed, which will apply to all operations that use the default formatters, or new instances can be created and configured.

UDecimalScalingFormatter has a further UGroupLabeler component that can be configured. UGroupLabeler and its derivatives (UScientificGroupLabeler, UNamedGroupLabeler, USIUnitsGroupLabeler, and UCustomGroupLabeler) specify how the scaled power of ten should be displayed.

Each group labeler exposes one or more default instances covering the following labeling cases out-of-the-box: Scientific Notation, Named Notation, SI Names Notation, and SI Symbols Notation.

UScientificGroupLabeler, USIUnitsGroupLabeler, and UCustomGroupLabeler have settings that can be customized. Either the default instances can be changed, which will apply to all operations that use the default labelers, or new instances can be created and configured.

For more details on formatting, see Formatting BigIntegers

Parsing and Digit Sequencing

DBN provides basic, but fast decimal and hexadecimal parsing functionality with one big surprise feature: A decimal digit sequencer.

The parsing methods are set up to be able to round-trip parse the output from the "Invariant"-flavored formatters.

Both Parse and TryParse variations of the parsing methods are provided. TryParse is able to return a partially-parsed value, while Parse will always return zero if parsing fails. In Blueprints, the TryParse nodes allow branching based on success or failure of the parsing.

The Digit Sequencer allows numbers based on patterns of digits to be easily abbreviated in and generated from string constants. For example, "1111:9+1111;0000" expands to 1111222233334444555566667777888899990000.

For more details on parsing and Digit Sequencing, see Parsing BigIntegers