In the nonlinear timeseries analysis literature, countless quantities have been presented as new ``entropy'' or ``complexity'' measures, often with similar roles. The ever-increasing pool of such measures makes creating a sustainable and all-encompassing software for them difficult both conceptually and pragmatically. Such a software however would be an important tool that can aid researchers make an informed decision of which measure to use and for which application, as well as accelerate novel research. Here we present {ComplexityMeasures.jl}, an easily extendable and highly performant open-source software that implements a vast selection of complexity measures. The software provides 1638 measures with 3,841 lines of source code, averaging only 2.3 lines of code per exported quantity (version 3.7). This is made possible by its mathematically rigorous composable design. In this paper we discuss the software design and demonstrate how it can accelerate complexity-related research in the future. We carefully compare it with alternative software and conclude that {ComplexityMeasures.jl} outclasses the alternatives in several objective aspects of comparison, such as computational performance, overall amount of measures, reliability, and extendability. {ComplexityMeasures.jl} is also a component of the {DynamicalSystems.jl} library for nonlinear dynamics and nonlinear timeseries analysis and follows open source development practices for creating a sustainable community of developers and contributors.
翻译:在非线性时间序列分析文献中,无数被提出作为新的“熵”或“复杂度”度量指标,其角色往往相似。此类度量指标的不断增长,使得创建一个可持续且包罗万象的软件在概念和实践上都变得困难。然而,这样的软件将是一个重要的工具,可以帮助研究人员根据具体应用做出明智的度量选择,并加速新颖的研究。本文我们介绍{ComplexityMeasures.jl},一个易于扩展且高性能的开源软件,它实现了大量的复杂度度量指标。该软件以3,841行源代码提供了1638种度量指标,平均每个导出的量仅需2.3行代码(版本3.7)。这得益于其数学上严谨的可组合设计。在本文中,我们讨论了该软件的设计,并展示了它如何能在未来加速复杂度相关的研究。我们仔细地将其与替代软件进行比较,并得出结论:{ComplexityMeasures.jl}在计算性能、度量指标总量、可靠性和可扩展性等多个客观比较方面优于替代方案。{ComplexityMeasures.jl}也是非线性动力学和非线性时间序列分析库{DynamicalSystems.jl}的一个组成部分,并遵循开源开发实践,以创建一个可持续发展的开发者和贡献者社区。