c++ - 如何传递求解器工作空间大小
问题描述
我有一个线检测算法,它使用求解器(优化算法)来找到线检测问题的一些解决方案。
class line-detect {
public:
(some functions);
private:
solver mSolve;
}
class Solver {
public:
(Some functions);
private:
(some functions);
}
在solver.cpp 中,用于求解器计算的工作区/缓冲区的大小是使用线检测算法变量分配的。
在 Solver.cpp 中,工作空间的大小分配如下:
const uint32_t SIZEOF_WORKSPACE = static_cast<uint32_t>(((2 * NUM_ERRS_MAX) + (5 * NUM_VARS_MAX) + NUM_VARS_MAX * NUM_ERRS_MAX ) * sizeof(float64_t) + (NUM_VARS_MAX * sizeof(int32_t)));
目前求解器在算法本身内,但我想提取求解器并用作单独的实体/模块。我已经提取了求解器,但是这个大小的工作区/缓冲区必须静态分配(即我必须在求解器模块中硬编码线检测算法值)
问题: 分配工作空间大小而不必在求解器模块中硬编码线检测算法变量的最佳方法是什么?
解决方案
推荐阅读
- c - 将可变长度数组声明为宏
- javascript - 如何有效地对 JavaScript 和 CSS 文件进行版本控制?
- netbeans - 为什么我不能在 netbeans 8.2 中使用调色板?
- angular - Angular 单元测试单个服务上的多个 getter
- ruby-on-rails - 从ruby中的嵌套数组打印单个元素
- c# - 如何在 C# 中的一行中设置多个变量值?
- c# - 无法从托管 Activity 将值传递给 MvxCommand
- c# - 反向 DNS 给出:没有这样的主机是已知的
- phaser-framework - 如何在 Phaser 3 中获取脊柱游戏对象的大小?
- c - Turbo C 给出的输出为 0.000000