2008年10月19日下午05:26
A类上一个帖子描述了函数线性映射的数据类型。作为安迪·吉尔 指出,我们花了很多时间试图取得好成绩。本说明描述了一种新的表示法,即非常简单而且效率更高。回想起来,这很明显,但我花了很长时间才发现。
这里描述的Haskell模块是向量空间库(版本0.5或更高版本),并要求ghc版本6.10或更高(对于相关类型)。
编辑:
- 2008-11-09:更改了有关版本的备注。矢量空间版本0.5取决于ghc 6.10。
- 2008-10-21:修复了向量空间库引子中的链接。
继续阅读“更简单、更高效、功能性更强的线性地图”»
前一篇文章描述了功能线性图的数据类型。正如安迪·吉尔(Andy Gill)指出的那样,我们花了很多时间试图取得好的表现。此便笺。。。
2008年10月19日下午05:23
A类基础 B类向量空间的V(V)是一个子集B类属于V(V),以便B类线性无关且跨度V(V)也就是说V(V)是以下元素的线性组合B类,没有的元素B类是其他元素的线性组合B类此外,每个基都决定了V(V)到相对于的坐标B类.
本文给出了向量空间规范基的简单Haskell实现,以及将向量分解为坐标的方法。它使用[索引类型族](关联类型),尽管它很简单,但非常通用。
这里描述的Haskell模块是矢量空间库(0.4或更高版本)的一部分,该库在Hackage和darcs存储库中可用。请参阅wiki页面,接口文档、和源代码。下面描述的库版本(0.5或更高版本)依赖于ghc 6.10。
编辑:
- 2008-11-09:修改了上面关于版本的评论。
- 2008年2月9日:无所事事
继续阅读“通过类型族的向量空间基”»
向量空间V的基B是V的子集B,因此B的元素是线性无关的,跨越V。也就是说,。。。
2008年6月3日,09:49 pm
两个早期的 帖子描述了导数这统一了传统微积分课程中所教的许多具体概念。所有这些变化都是一个抽象概念的具体表现线性地图.相应地,链规则中各种形式的多重复制都是作文线性地图。为了简单起见,我建议直接实现线性映射作为函数。不幸的是,这种直接表示妨碍了效率,因为函数与数据结构不同,默认情况下不缓存。
这篇文章展示了一个数据线性映射的表示方法,它主要利用了(a)线性和(b)最近添加的语言特性索引类型族(“相关类型”)。
有一段时间,我想知道线性映射库是否可以取代和推广矩阵库。毕竟,矩阵表示一类有限的线性映射。然而,与传统的矩阵库不同,本文中描述的线性映射库通过静态类型.下面定义的合成函数静态地强制执行矩阵乘法(实现线性映射合成)所需的一致性属性。同样,线性映射添加的一致性也被简单而静态地强制执行。此外,通过对Haskell编译器进行足够复杂的哄骗Don Stewart是,也许像这样的库也可以有出色的性能。(还没有。)
你可以在模块中阅读并尝试这篇文章的代码数据。线性贴图在版本0.2.0或更高版本中向量空间包裹。该模块还包含线性地图合成的实现,以及Functor(仿真器)
-喜欢和适用
-类似操作。安迪·吉尔一直在帮助我了解一些严重的性能问题,显然涉及大量冗余字典创建。
编辑:
- 2008-06-04:相关数据类型声明的简要说明。
继续阅读“功能线性图”»
之前的两篇文章描述了一个简单而通用的导数概念,它统一了传统微积分课程中所教的许多具体概念。所有这些变化结果都是。。。