Skip to content

Releases: oscbyspro/AwesomeNumbersKit

v4.0.2

16 Jul 06:44
Compare
Choose a tag to compare

Some improvements ported from Numberick.

  • #151 Improved Int strides
  • #150 isPowerOf2 should not return true for signed min
  • #149 Single perfect radix encoding specialization

v4.0.1

08 Jul 02:55
Compare
Choose a tag to compare
  • #148 Fix masking shifts by negative multiples of non-power-of-two bit widths

v4.0.0

30 Jun 11:10
Compare
Choose a tag to compare

More changes ported from my other project: Numberick.

  • #147 Custom index methods
  • #146 Shift methods rework
  • #145 30% faster decoding
  • #144 Galaxy-brain radix exponentiation
  • #143 Back to front encoding is fastest
  • #142 Future-proof core integer dividingFullWidthReportingOverflow(_:)
  • #141 Use xctestplan(s)
  • #140 Improved string decoding
  • #139 Add uninitialized(_:)

v3.0.0

16 Jun 07:44
Compare
Choose a tag to compare

Lots of improvements inspired by my other project: Numberick.

  • #137 No Self.DoubleWidth and Self.Plus1 aliases
  • #136 No minLastIndex[...] methods
  • #135 Req. generic masking shifts
  • #134 Bounds checked pointers
  • #132 Consistent division by zero semantics
  • #131 Expose unchecked shift methods
  • #130 Overload Swift's generic masking shifts
  • #129 Replace ANKSign and demote ANKSigned to ANKSignedKit
  • #128 Remove ANKError model
  • #127 Rework core protocols
  • #126 Remove redundant type aliases
  • #125 Rename ANKFoundation as ANKCoreKit
  • #124 Req. dividingFullWidthReportingOverflow(_:)
  • #123 No matches(repeating: and isFull
  • #122 Galaxy brain multipliedReportingOverflow(by:)
  • #121 Req. twosCompelementSubsequence(_:)
  • #120 ascending and descending tuple get and set
  • #119 High and Low init
  • #118 Sneaky signed ± anti-overflow
  • #117 Decoding strings without digits
  • #112 Move init(x32:|x64:) to test targets
  • #111 Add precondition messages

v2.2.0

08 May 10:32
Compare
Choose a tag to compare

New and improved comparisons. A fix thereof.

  • #106 Fix Signed's < operator
  • #105 Three-way, and faster, comparisons

New ANKBinaryInteger comparisons

func compared(to other: Self) -> Int // -1, 0, 1

v2.1.0

06 May 08:29
Compare
Choose a tag to compare

Faster multiplication. Better testing. A fix thereof.

  • #104 Fixed-width bitwise inverse of isZero
  • #103 Faster signed multiplication
  • #102 Low Signed/multiplyFullWidth(by:) sign
  • #101 Denormalized Signed tests
  • #99 Simultaneous non/mutating tests

New ANKFixedWidthInteger getters

var  isFull: Bool { get }
func matches(repeating bit: Bool) -> Bool

v2.0.0 - The Great Simplification™

28 Apr 08:31
Compare
Choose a tag to compare

Fewer protocols. Faster builds. What's not to like?

GitHub

  • #98 Fix mostSignificantBit comment
  • #97 Req. integer text de/encoding
  • #96 No Words
  • #95 Merge [...]Large[...]Integer
  • #94 No IntOrUInt
  • #93 No ContiguousBytes
  • #92 One Shade of Un/signed™
  • #91 Unsigned is Magnitude req.
  • #89 The Great Simplification™

Protocols

  1. ANKBigEndianTextCodable
  2. ANKBinaryInteger
  3. ANKBitPatternConvertible
  4. ❌ ANKContiguousBytes
  5. ANKCoreInteger
  6. ANKFixedWidthInteger
  7. ❌ ANKIntOrUInt
  8. ❌ ANKLargeBinaryInteger
  9. ❌ ANKLargeFixedWidthInteger
  10. ❌ ANKMutableContiguousBytes
  11. ❌ ANKSignedFixedWidthInteger
  12. ANKSignedInteger
  13. ❌ ANKSignedLargeBinaryInteger
  14. ❌ ANKSignedLargeFixedWidthInteger
  15. ❌ ANKTrivialContiguousBytes
  16. ❌ ANKUnsignedFixedWidthInteger
  17. ANKUnsignedInteger
  18. ❌ ANKUnsignedLargeBinaryInteger
  19. ❌ ANKUnsignedLargeFixedWidthInteger
  20. ❌ ANKWords

v1.2.0

24 Apr 06:35
Compare
Choose a tag to compare

Some new methods. A precondition fix. Cleanup n' stuff.

  • #88 quotientAndRemainderReportingOverflow(dividingBy:)
  • #87 Int256.min.quotientAndRemainder(dividingBy: -1) should trap
  • #86 ANKFixedWidthInteger.BitPattern
  • #84 Lazy division overflow detection
  • #82 Arithmetic protocol extensions
  • #81 Truncating multiplication operators

v1.1.0

18 Apr 09:00
Compare
Choose a tag to compare

Rock. Paper. blackHole(_:)

  • #80 Hide unsafe words base
  • #79 Keep "[hashtag] good form [trademark]"
  • #77 Remove error operations
  • #76 Better bitshifts
  • #75 Better digit arithmetic
  • #72 Better division
  • #69 Rock. Paper. blackHole(_:)

v1.0.0

07 Apr 05:40
Compare
Choose a tag to compare

Larger literals. Sendable models. Swift(er) encoding.

  • #70 Sendable
  • #68 [Im]PerfectRadixUIntRoot
  • #67 Magic chunk count
  • #66 throwing decodeBigEndianText(_:radix:)
  • #65 Up to 4x faster encoding
  • #64 Remove: ExpressibleByStringLiteral
  • #20 StaticBigInt

Requirements

Language and platform requirements were updated to match StaticBigInt.

Package Swift iOS iPadOS Mac Catalyst macOS tvOS watchOS
0.6.2 5.7 13.0 13.0 13.0 10.15 13.0 6.0
1.0.0 5.8 16.4 16.4 16.4 13.3 16.4 9.4