Euler 是一个包含大量有用数学函数的数学框架。它由代数、数论、统计学等大多数数学领域的函数组成。它旨在帮助您将您的计算机变成一个数学专家。
链接
安装
我正在与 Apple 合作解决这个问题,但如果您有解决方案,请提出拉取请求。
CocoaPods
CocoaPods 是 Cocoa 项目的依赖管理器。有关使用和安装说明,请访问他们的网站。要使用 CocoaPods 将 Euler 集成到您的 Xcode 项目中,请指定它位于您的 Podfile
中
pod 'Euler', '~> 0.3.4'
Carthage
Carthage 是一个去中心化的依赖管理器,它构建您的依赖并为您提供二进制框架。要使用 Carthage 在 Xcode 项目中集成 Euler,请将其指定在您的 Cartfile
中。
github "arguiot/Euler" ~> 0.3.4
Swift Package Manager
Swift Package Manager 是一种自动化 Swift 代码分发的工具,集成了 swift
编译器。目前处于早期开发阶段,但 Euler 在支持的平台上也支持其使用。
一旦设置好 Swift 包,将 Euler 作为依赖项添加的方法就像将其添加到 Package.swift
中的 dependencies
值一样简单。
dependencies: [
.package(url: "https://github.com/arguiot/Euler.git", .upToNextMajor(from: "0.3.4"))
]
手动
如果您不希望使用上述任何依赖管理器,也可以手动将 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
将会显示为Euler iOS
、Euler macOS
、Euler tvOS
或Euler watchOS
。 -
就这么多!
Euler.framework
会被自动添加为项目中目标依赖项、链接框架和嵌入框架,在复制文件构建阶段,这就是你在模拟器和设备上进行构建所需要的一切。
展示
以下是一些使用 Euler 进行工作的应用列表(不全面)
欧几里得计算器
Euclid 是一款面向 macOS 的现代且功能齐全的计算器,旨在替换默认的计算应用。Euclid 使用 Euler 进行每项计算的解析和评估。它严重依赖于代数和表格模块。
项目
灵感
该项目大部分灵感来自
为什么选择 Swift
回顾过去,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`
帮助解析和处理数学表达式
-
表格
`表格`旨在开发类似Excel的软件/解析器。
-
统计
`统计`旨在帮助处理收集、组织和解释数值数据,特别是对人口特征的抽样推断分析。
-
可视化与几何(`Graph`)
使用SwiftPlot可视化任何一组点。
-
矩阵与向量
简单的矩阵/向量类型。
⚠️ 它仅适用于支持`Accelerate`的Apple设备。 -
密码学
实现了一些基本的加密算法。我们不建议在生产环境中使用这些算法,因为它们主要用于实验目的。