Swift NumberKit

Platforms: macOS, iOS, Linux Language: Swift 5/6 IDE: Xcode 15/16 Package managers: SwiftPM, Carthage License: Apache

概述

这是一个框架,为 macOS、iOS 和 Linux 上的 Swift 编程语言实现了高级数值数据类型。目前,该框架提供了四种新的数值类型,每种类型都表示为结构体或枚举

  1. BigInt: 任意大小的有符号整数
  2. Integer: 任意大小的有符号整数,其实现取决于表示值的大小。
  3. Rational: 有符号有理数
  4. Complex: 复数浮点数

注意:到目前为止,对于 Swift 的每个主要版本,Apple 都决定以向后不兼容的方式显着且一致地更改 Swift 中数值类型的基础 API。为了在未来更好地与此类更改隔离,在 Swift 3 中,我决定引入 NumberKit 中使用的基于新协议 IntegerNumber 的独特整数类型。所有标准数值整数类型都实现了此协议。这与对浮点数使用协议 FloatingPointNumber 是一致的,到目前为止,浮点数从来没有一个真正通用的基础(现在仍然没有)。

BigInt

BigInt 值是不可变的、有符号的、任意大小的整数,可以用作 Swift 5 现有二进制整数类型的直接替代品。结构体 BigInt 定义了所有标准的算术整数运算,并实现了 Swift 相应的数值协议。

Integer

Integer 值是不可变的、有符号的、任意大小的整数,可以用作 Swift 5 现有二进制整数类型的直接替代品。与 BigInt 不同,值的表示方式经过选择,以优化内存大小和算术运算的性能。枚举 Integer 定义了所有标准的算术整数运算,并实现了 Swift 相应的数值协议。

Rational

结构体 Rational<T> 基于现有的有符号整数类型 T(如 Int32Int64BigInt)定义了不可变的有理数。有理数是一个有符号数,可以表示为两个整数 ab 的商:a / b

Complex

结构体 Complex<T> 基于现有的浮点类型 T(如 FloatDouble)定义了复数。复数由两个分量组成:实部 re 和虚部 im,通常写为:re + im * i,其中 i虚数单位

Requirements

构建 Swift NumberKit 框架的组件需要以下技术

Copyright

作者:Matthias Zenger (matthias@objecthub.net)
版权所有 © 2016-2024 Matthias Zenger。保留所有权利。