34 if ( table.empty() ) {
35 throw std::runtime_error(
"LookupTable: table '" + source +
"' is empty");
38 for (
auto& row : table | std::views::drop(1)) {
39 std::vector< double > inputs;
40 size_t columns = row.size();
42 for (
size_t i = 0; i < columns - 1; i++ ) {
44 if ( !std::holds_alternative<BPMNOS::number>(cell) ) {
45 throw std::runtime_error(
"LookupTable: illegal input in table '" + source +
"'");
48 inputs.push_back( (
double)std::get<BPMNOS::number>(cell) );
50 auto& cell = row[columns - 1];
51 if ( !std::holds_alternative<BPMNOS::number>(cell) ) {
52 std::visit([](
auto&& value) { std::cerr <<
"Value: " << value <<
" "; }, cell);
53 throw std::runtime_error(
"LookupTable: illegal output in table '" + source +
"'");
56 auto result = (double)std::get<BPMNOS::number>(cell);