Suite collections

Suite collections are versioned benchmark-suite definitions shipped with FuncCraft. They are backed by YAML files in suites/ and exposed through a stable API.

The current packaged collection is 2026_v1:

import funccraft as fc

year = 2026
version = 1
collection = fc.suite_collection(year, version)
print(collection.name)
print(collection.number_of_functions)

suite = collection.benchmark_suite(10)

C++:

#include "funccraft.h"

int main() {
    const int year = 2026;
    const int version = 1;
    FuncCraft::SuiteCollection collection =
        FuncCraft::suite_collection(year, version);

    int n = collection.number_of_functions();
    FuncCraft::BenchmarkSuite suite =
        collection.benchmark_suite(10);
}

When to use a collection

Use suite_collection(year, version) when you want a published FuncCraft suite exactly as shipped.

Use load_suite_spec("my_suite.yaml") when you want to edit the suite recipe yourself. The YAML fields are described in Editable YAML specs.

Dimension and seeds

The suite YAML defines the number of generated functions. You choose the dimension when materializing a runtime BenchmarkSuite.

For a given collection and function index, FuncCraft keeps structural choices stable across dimensions: base/composed decision, base-function choices, composition kind, coordinate-transform kind, value-transform kind, and the relevant seeds. Generated coordinate vectors use prefix-stable generation where applicable, so higher-dimensional assigned optima and DPM centers extend lower-dimensional ones. The detailed design constraints and limitations are described in Design constraints.