1
Fork 0
mirror of https://github.com/Jaxan/hybrid-ads.git synced 2025-04-27 23:17:44 +02:00
hybrid-ads/lib/create_splitting_tree.hpp

33 lines
695 B
C++

#pragma once
#include "mealy.hpp"
#include "partition.hpp"
#include "splitting_tree.hpp"
#include <vector>
struct result {
result(size_t N)
: root(N, 0)
, successor_cache()
, is_complete(true)
{}
// The splitting tree as described in Lee & Yannakakis
splijtboom root;
// Encodes f_u : depth -> state -> state, where only the depth of u is of importance
std::vector<std::vector<state>> successor_cache;
// false <-> no adaptive distinguishing sequence
bool is_complete;
};
struct options {
bool check_validity = true;
};
constexpr options with_validity_check{true};
constexpr options without_validity_check{false};
result create_splitting_tree(Mealy const & m, options opt);