LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
equivalence_options.hpp
浏览该文件的文档.
1#pragma once
2
3#include "lmcas_export.hpp"
4#include "result.hpp"
5
6#include <cstddef>
7#include <string>
8
9namespace LMCAS {
10
16
17/** @brief 各限额均为非零值;深度与规模在重写运行中检查,超限返回 ResourceLimit。 */
18struct EqvBudget {
19 /** @brief 一次证明及 profile 切换共享的重写遍历、候选追加与阶段步数。
20 * 形状查询和缓存清空的实际工作计入 ResourceLimits::max_steps。
21 */
22 std::size_t max_rewrite_steps = 256;
23 /** @brief 同时活动的重写及嵌套 visitor 层数,根为第 1 层。 */
24 std::size_t max_rewrite_depth = 64;
25 /**
26 * @brief 候选树及未封装孩子列表的规模上限取 context.max_ast_nodes
27 * 与原始两输入节点总数乘此因子的较小值。
28 * 每次子树引用分别计数;整个证明及 profile 切换共用原始基数。
29 * 乘法饱和为 SIZE_MAX;真实输入节点和溢出返回 ResourceLimit。
30 */
31 std::size_t max_node_growth_factor = 4;
32};
33
38
39LMCAS_API Result<EqvProfile> eqv_profile_from_name(const std::string& name);
41 const std::string& name);
43 std::size_t steps,
44 std::size_t depth,
45 std::size_t growth);
46
47}
#define LMCAS_API
std::size_t max_rewrite_depth
同时活动的重写及嵌套 visitor 层数,根为第 1 层。
const std::string ComputationContext const SolveOptions & options
std::size_t std::size_t std::size_t growth
std::size_t std::size_t depth
std::size_t max_rewrite_steps
一次证明及 profile 切换共享的重写遍历、候选追加与阶段步数。 形状查询和缓存清空的实际工作计入 ResourceLimits::max_steps。
Result< void > set_eqv_profile(EqvOptions &options, const std::string &name)
std::size_t max_node_growth_factor
候选树及未封装孩子列表的规模上限取 context.max_ast_nodes 与原始两输入节点总数乘此因子的较小值。 每次子树引用分别计数;整个证明及 profile 切换共用原始基数。 乘法饱和为 ...
Result< void > set_eqv_budget(EqvOptions &options, std::size_t steps, std::size_t depth, std::size_t growth)
Result< EqvProfile > eqv_profile_from_name(const std::string &name)
__attribute__((visibility("default"))) Result< EqvProfile > eqv_profile_from_name(const std const std::string & name
各限额均为非零值;深度与规模在重写运行中检查,超限返回 ResourceLimit。