Rhea 0.2.4

Rhea 0.2.4

测试已测试
语言语言 C++C++
许可 MIT
版本发布最新版本2015年2月

Håvard Fossli维护。



Rhea 0.2.4

  • 作者:
  • Nocte

Windows build status Readthedocs build

关于

Rhea是一个基于Cassowary的增量约束求解器,最初由Greg J. Badros和Alan Borning开发。主要区别在于:

  • 允许程序员以自然的方式编写约束
  • 用C++11重写
  • 使用CMake代替GNU Autoconfig
  • 单元测试使用Boost Test框架
  • 使用Doxygen进行文档
  • 基于Boost Spirit的表达式解析器
  • 没有有限域子求解器

快速示例

#include <rhea/simplex_solver.hpp>
#include <rhea/iostream.hpp>

main()
{
    rhea::variable left, mid, right;
    rhea::simplex_solver solver;

    solver.add_constraints(
    {
        mid == (left + right) / 2,
        right == left + 10,
        right <= 100,
        left >= 0
    });
    solver.suggest(mid, 2);

    std::cout << left << " " << mid << " " << right << std::endl;
    // Prints "0 5 10"
}

这是原始论文中的线条示例。这些约束确保线条至少有10宽,适合在0..100范围内,并且中点位于左侧和右侧之间。

请注意,尽管我们建议中点为2,但求解器决定将其移到5,以便满足所有约束。

状态

本软件处于测试版。它通过了所有单元测试,已被多个应用程序积极使用,但界面尚不稳定。

许可

Rhea是免费软件:您可以在MIT/Expat许可证的条款下重新分发它或修改它。