Euler 是一个数学框架,包含了大量有用的数学函数。它由代数、数论、统计等大多数数学领域的函数组成。它的设计旨在帮助您将计算机变成数学专家。
您可以使用以下选项来安装 Euler,但我们建议使用 CocoaPods 或 SPM。
CocoaPods 是 Cocoa 项目的依赖管理器。 有关用法和安装说明,请访问他们的网站。 要使用 CocoaPods 将 Euler 集成到您的 Xcode 项目中,请在您的 Podfile
中指定它。
pod 'Euler', '~> 0.3.12'
Carthage 是一个分散的依赖管理器,可以构建您的依赖项并为您提供二进制框架。 要使用 Carthage 将 Euler 集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它。
github "arguiot/Euler" ~> 0.3.12
Swift 包管理器是一种用于自动分发 Swift 代码的工具,并已集成到 swift
编译器中。 它还处于早期开发阶段,但 Euler 确实支持在支持的平台上使用它。
设置好 Swift 包后,只需将其添加到 Package.swift
的 dependencies
值中,即可轻松地将 Euler 作为依赖项添加进去。
dependencies: [
.package(url: "https://github.com/arguiot/Euler.git", .upToNextMajor(from: "0.3.12"))
]
如果您不喜欢使用任何上述依赖管理器,您可以手动将 Euler 集成到您的项目中。
打开终端,cd
到您的顶级项目目录,然后运行以下命令“如果”您的项目未初始化为 git 仓库
$ git init
通过运行以下命令将 Euler 作为 git 子模块 添加。
$ git submodule add https://github.com/arguiot/Euler.git
打开新的 Euler
文件夹,然后将 Euler.xcodeproj
拖到应用程序的 Xcode 项目的项目导航器中。
它应该显示在应用程序的蓝色项目图标下。 无论它位于所有其他 Xcode 组之上还是之下,都没有关系。
在项目导航器中选择 Euler.xcodeproj
,并验证部署目标是否与您的应用程序目标匹配。
接下来,在项目导航器(蓝色项目图标)中选择您的应用程序项目,以导航到目标配置窗口,然后在侧栏的“Targets”标题下选择应用程序目标。
在该窗口顶部的选项卡栏中,打开“General”面板。
单击“Embedded Binaries”部分下的 +
按钮。
您将看到两个不同的 Euler.xcodeproj
文件夹,每个文件夹都有两个不同版本的 Euler.framework
嵌套在 Products
文件夹中。
选择哪个
Products
文件夹都没有关系,但选择顶部还是底部的Euler.framework
确实很重要。
对于 iOS,选择顶部的 Euler.framework
,对于 macOS,选择底部的 Euler.framework
。
您可以通过检查项目的构建日志来验证您选择了哪一个。
Euler
的构建目标将列为Euler iOS
、Euler macOS
、Euler tvOS
或Euler watchOS
。
就这样!
Euler.framework
会自动添加为目标依赖项、链接框架和嵌入式框架,并复制文件构建阶段,这就是在模拟器和设备上进行构建所需要的一切。
以下是使用 Euler 的应用程序列表(不详尽)
Euclid 计算器
Euclid 是一个现代且功能齐全的 macOS 计算器,旨在替代默认的计算应用程序。 Euclid 使用 Euler 来解析和评估每个计算。 它很大程度上依赖于 Algebra 和 Tables 模块。
该项目很大程度上受到以下启发
回想起来,Swift 适合该项目的需求并不奇怪。 Swift 由一个紧密的团队设计和构建。 该团队之前构建了一个高度模块化和可组合的编译器基础架构 (LLVM),一个高度动态的 Smalltalk 派生语言 (Objective-C) 的编译器和运行时,一个具有强大泛型系统 (C++) 的高度静态语言的编译器,以及一个路径敏感的静态分析引擎(Clang 静态分析器)。 此外,Swift 的设计目标是构建一种既易于学习和使用(如脚本语言)的东西,又具有足够的强大功能可以用作系统编程语言。
Swift 是一种完美的语言,因为它具有性能、模块化、易于阅读的语法和并发 API。 Swift 旨在最大限度地提高代码的清晰度,因此它努力减少样板代码。 Swift 的首要目标是优化编写和维护项目所需的时间,其中包括调试时间和超出编写代码范围的其他事项。
Euler 旨在提供 Swift 中数值计算的构建块,作为一组捆绑到单个 Swift 包中的细粒度模块。 Euler 旨在用于试验 Swift 及其数学功能。 它还旨在用作可以移植到其他语言的算法数据库。
Euler 围绕两个主要对象构建:BigDouble
和 BigInt
。 它们都用于以精度表示大数字。 您可以将 Euler 视为一组模块
数值计算: BigDouble
/ BigInt
& 更多
帮助处理数字
代数: Expression
帮助解析和处理数学表达式
表格
Tables
旨在开发类似 Excel 的软件/解析器。
统计
Statistics
旨在帮助处理数值数据的收集、组织和解释的数学,特别是通过抽样推断人口特征的分析。
可视化 & 几何 (Graph
)
用于使用 SwiftPlot 可视化任何
Point
集的实用程序。
矩阵 & 向量
简单的矩阵/向量类型。
⚠️ 它仅适用于支持Accelerate
的 Apple 设备。
密码学
实现了基本的密码算法。 我们不建议在生产环境中使用它,因为它更多的是用于实验目的。