[decimal] Add cache for powers of 10 #28
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces a module-level cache for powers of 10 in the
src/decimojo/utility.mojofile. The cache is designed to store the powers of 10 up to the required value, avoiding the need to recalculate the same powers multiple times. The cache is initialized with the first value (10^0 = 1) and extended as needed.Key changes include:
Module-level cache initialization:
var _power_of_10_as_uint128_cacheandvar _power_of_10_as_uint256_cacheto store cached values of powers of 10 forUInt128andUInt256types, respectively._init_power_of_10_as_uint128_cacheand_init_power_of_10_as_uint256_cachefunctions to initialize the caches with the first value (10^0 = 1).Cache usage and extension:
power_of_10_as_uint128andpower_of_10_as_uint256functions to return 10^n using cached values when available, extending the cache if necessary.