Exported manifests
Input YAML is for configuration and editing. Exported YAML is a materialized record of what FuncCraft built at runtime.
Function export
BenchmarkFunction::export_spec and BenchmarkFunction.export_spec write
one materialized function spec. Exported function specs include generated
details such as transform matrices, selected subspaces, DPM centers and
biases, assigned optima, scale factors, labels, and metadata.
Python:
import funccraft as fc
function_index = 0
year = 2026
version = 1
f = fc.suite_collection(year, version).benchmark_suite(2).function(function_index)
f.export_spec("function_materialized.yaml")
same = fc.BenchmarkFunction("function_materialized.yaml")
C++:
const int function_index = 0;
const FuncCraft::BenchmarkFunction& f = suite.function(function_index);
f.export_spec("function_materialized.yaml");
FuncCraft::BenchmarkFunction same =
FuncCraft::make_benchmark_function("function_materialized.yaml");
Suite manifest export
BenchmarkSuite::export_manifest and BenchmarkSuite.export_manifest
write the normalized suite spec plus every generated function spec.
Python:
suite.export_manifest("suite_manifest.yaml")
C++:
suite.export_manifest("suite_manifest.yaml");
Use exported manifests when you want to archive the exact generated function table used by an experiment.
Evaluation contract
Evaluation is batched in both interfaces:
C++:
std::vector<std::vector<double>>in,std::vector<double>out.Python:
list[list[float]]in,list[float]out.
A single point must still be wrapped as a one-element batch.