余晖落尽暮晚霞,黄昏迟暮远山寻
本站
当前位置:网站首页 > 编程知识 > 正文

苹果开源Swift的数学计算项目:Swift Numerics

xiyangw 2022-12-03 13:12 14 浏览 0 评论

来源:IThome

链接:https://www.ithome.com.tw/news/134151

苹果的程序语言Swift标准函式库团队成员Steve Canon,宣布了一项名为Swift Numerics的开源专案,内含实数与复数运算模块,提供Swift开发者建置数值运算的基础,相关的数值运算模块都会捆绑在一起,以单一Swift套件发布。

目前Swift Numerics程序代码储存库中,已经有两个一直以来被开发者强烈要求的模块,其一是提案SE-0246的功能实作实数(Real Number)模块,以及提供复数运算的复数(Complex Number)模块。SE-0246提案在Swift加入基础数学函式API,提供像是三角函数与对数等通用运算,这项提案已经被接受,但由于编译程序的限制,该API还不能被加到标准函式库中,因此实数模块将以独立的模块提供API,开发者现在就已经能在项目中使用这些功能。

而复数模块则是建立在基础实数类型之上,复数在数值运算上常会用到,尤其是在进行傅立叶变换的时候,处理音频或是电路仿真时都会用到复数,Steve Canon提到,在开发者日常使用时,函式库通常会自动隐藏这些复数讯息,但是当要开发相关函式库时,复数模块会是很重要的工具。

之所以不在标准函式库中提供Swift Numerics功能,而要利用套件的形式发布,Steve Canon表示,这之中存在许多考虑,但是最主要的原因是,他认为,并非所有内容都应该放进标准函式库中,随着时间变迁,Swift Numerics中的部分功能可能会被放进标准函式库中,但是在默认情况,有一些模块不应该默认加入每一个项目里,应该要有一个自己专属的地方,而Swift Numerics就是这类数值运算模块的集合,就像是SwiftNIO套件是专门提供网络相关功能一样。

另外,以套件打包的好处,还包括Swift Numerics的更新将不受Swift版本发布的时间限制,可以在进入稳定版之前,先释出测试模块进行试验。

Steve Canon提到,接下来他们还会为Swift Numerics加入重要的ShapedArray协议以及支持的类型,让开发者能方便地表达多维度的同类数据,此外,也会新增支持Float16。

相关推荐

小白编程应该怎么入门?教你从一个hello world学到3个知识点

小白编程应该怎么入门?首先在教材的选择上,直接找豆瓣,挑评分最高的书来看就好了,那些经典书籍真的很简单,很适合入门。其次是学习的过程,不在于你怎么看怎么听,而在于你有没有进行实践!编程是一定要动手的课...

会做菜就会编程?一篇写给从未编程过的人的入门教程
会做菜就会编程?一篇写给从未编程过的人的入门教程

平时工作之余,很多蚂蚁技术同学也乐于分享技术心得和经验感悟,我们会不定期精选其中的优秀文章,分享给大家。不少同学对于编程感到好奇,但一看到厚厚的教程就打退堂鼓,...

2023-03-21 18:04 xiyangw

怎样学会代码编程(新手怎么学代码编程)
怎样学会代码编程(新手怎么学代码编程)

怎样学会代码编程学习代码编程需要掌握以下步骤:选择编程语言:首先需要选择一门编程语言。常用的编程语言有Python、Java、JavaScript、C++、C#...

2023-03-21 18:04 xiyangw

0基础如何快速自学一门编程?(零基础如何自学编程语言)
0基础如何快速自学一门编程?(零基础如何自学编程语言)

时代的潮流一直在变,前几年还是人人都是自媒体,如今已是人人都会一门编程语言,特别是这两年的python学习浪潮,似乎身边的人都在学习编程。那么,对于一个没有基础...

2023-03-21 18:04 xiyangw

新手如何快速学习编程(如何快速入门编程)
新手如何快速学习编程(如何快速入门编程)

学习编程是一个漫长的过程,但有一些方法可以帮助新手更快地学习编程。下面是一些建议:确定目标:明确你想学习编程的目的,有助于保持学习的动力。选择语言:确定你要学习...

2023-03-21 18:03 xiyangw

7 行代码 3 分钟:从零开始实现一门编程语言(编程代码入门教程)

本文最初发布于MattMight的个人博客。本文介绍了多种解释器实现。通过修改最后一个解释器,你应该可以快速测试关于编程语言的新想法。如果你希望有一种语法不一样的语言,就可以构建一个解析器,把...

spring利用spring.handlers解析自定义配置(spring validation 自定义)

一、问题我们在spring的xml配置文件里经常定义各种各样的配置(tx、bean、mvc、bean等等)。以及集成第三方框架时,也会看到一些spring之外的配置,例如dubbo的配置、securi...

「Spring源码分析」AOP源码解析(上篇)(spring源码深度解析(第2版))

前言前面写了六篇文章详细地分析了SpringBean加载流程,这部分完了之后就要进入一个比较困难的部分了,就是AOP的实现原理分析。为了探究AOP实现原理,首先定义几个类,一个Dao接口:1&nbs...

Spring 解析注册BeanDefinition这一篇就Over
Spring 解析注册BeanDefinition这一篇就Over

一、简介:学习过Spring框架的人一定都会听过Spring的IoC(控制反转)、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC、...

2023-03-20 14:53 xiyangw

域、模块、空间、闭包,你真的懂了吗?(模块控制域与作用域的关系)

Javascript有一个特性叫做域。尽管对于初学者来说理解域是有难度的,但我会尽力用最简单的方式让你理解域。理解域能让你的代码更优秀,减少错误,及有助于你做出更强大的模式设计。什么是域域是在运行时,...

这一次搞懂Spring自定义标签以及注解解析原理
这一次搞懂Spring自定义标签以及注解解析原理

前言在上一篇文章中分析了Spring是如何解析默认标签的,并封装为BeanDefinition注册到缓存中,这一篇就来看看对于像context这种自定义标签是如...

2023-03-20 14:53 xiyangw

前端基础进阶(七)-前端工程师最容易出错的问题-this关键字

我们在学习JavaScript的时候,因为对一些概念不是很清楚,但是又会通过一些简洁的方式把它给记下来,那么这样自己记下来的概念和真正的概念产生了很强的偏差.当然,还有一些以为这个是对的,还会把它发在...

深入K8s:守护进程DaemonSet及其源码分析(k8s 进程)
深入K8s:守护进程DaemonSet及其源码分析(k8s 进程)

建议学习:膜拜!阿里内部都在强推的K8S(kubernetes)学习指南,不能再详细了最近也一直在加班,处理项目中的事情,发现问题越多越是感觉自己的能力不足,...

2023-03-20 14:52 xiyangw

Spring 是如何解析 bean 标签的?(spring beans标签)
Spring 是如何解析 bean 标签的?(spring beans标签)

前情回顾上回「SpringIoC容器初始化(2)」说到了Spring如何解析我们定义的<bean>标签,代码跟进了一层又一层,跋山涉水,...

2023-03-20 14:52 xiyangw

快速了解JavaScript文本框操作(javascript文本框代码)
快速了解JavaScript文本框操作(javascript文本框代码)

HTML中使用<input>元素表示单行输入框和<textarea>元素表示多行文本框。HTML中使用的<input&...

2023-03-20 14:51 xiyangw

取消回复欢迎 发表评论: