We present the Julia package Manifolds.jl, providing a fast and easy-to-use library of Riemannian manifolds and Lie groups. This package enables working with data defined on a Riemannian manifold, such as the circle, the sphere, symmetric positive definite matrices, or one of the models for hyperbolic spaces. We introduce a common interface, available in ManifoldsBase.jl, with which new manifolds, applications, and algorithms can be implemented. We demonstrate the utility of Manifolds.jl using B\'ezier splines, an optimization task on manifolds, and principal component analysis on nonlinear data. In a benchmark, Manifolds.jl outperforms all comparable packages for low-dimensional manifolds in speed; over Python and Matlab packages, the improvement is often several orders of magnitude, while over C/C++ packages, the improvement is two-fold. For high-dimensional manifolds, it outperforms all packages except for Tensorflow-Riemopt, which is specifically tailored for high-dimensional manifolds.
翻译:我们展示了Julia 软件包 Manifolds.jl, 提供了利伊曼尼方块和利伊组的快速和易于使用的库库。 这个软件包能够使用在里曼尼方块上定义的数据, 如圆圈、球体、正正对正确定矩阵或双曲空间模型之一 。 我们引入了一个共同界面, 可在 Maniflebesbase.jl 中提供, 使用新的元件、 应用程序和算法。 我们用 B\'ezier 样条展示了Manifolds.jl 的效用。 我们用B\'ezier 样条、 元件的优化任务和非线性数据的主要组件分析来演示。 在基准中, Maniforps.jl 将所有可比较的软件包都比得上快速的低度元件; 在 Python 和 Matlab 包中, 改进往往有几个数量级, 而在 C/C+ 软件包中, 改进为两重。 对于高度的公式, 我们展示了所有软件包, 它超越了所有包包的功能。 在高度中, 它超越了所有包包, 。 对于高位流- 。 对于高度的尺寸, 它超越了所有的包包包包包包, 它超越了所有包件, 。