7#include <nlohmann/json.hpp>
8#include <symengine/basic.h>
10using JSON = nlohmann::json;
25 bool contains(
const std::string& name)
const;
31 std::vector<double>
resolveArray(
const JSON& array,
const char* context)
const;
43 int expectedSize = -1)
const;
49 std::vector<std::string>
names()
const;
52 std::map<std::string, double> values_;
Lookup table for "parameters": { "name": number } at simulation or component scope.
Definition json_parameters.h:18
double resolveScalar(const JSON &value, const char *context) const
Resolve a JSON number or parameter-name string to double.
Definition json_parameters.cpp:56
std::vector< double > resolveArray(const JSON &array, const char *context) const
Resolve each element of a JSON array (numbers or parameter names).
Definition json_parameters.cpp:74
void validateNumericOrReferenceArray(const JSON &array, const char *context, int expectedSize=-1) const
Validate array: each entry is a number or known parameter name.
Definition json_parameters.cpp:88
bool contains(const std::string &name) const
Definition json_parameters.cpp:28
void clear()
Definition json_parameters.cpp:15
static void validateObject(const JSON &obj, const char *context)
Validate object shape: all values must be numbers.
Definition json_parameters.cpp:38
static bool isReference(const JSON &value)
True when value is a non-empty string (parameter reference).
Definition json_parameters.cpp:33
SymEngine::map_basic_basic toSubstitutionMap() const
SymEngine substitution map for numeric parameter names.
Definition json_parameters.cpp:123
void mergeFromObject(const JSON &obj, const char *context)
Add or override entries from a JSON object of numeric values.
Definition json_parameters.cpp:20
std::vector< std::string > names() const
All defined parameter names.
Definition json_parameters.cpp:132
nlohmann::json JSON
Definition component_builder.h:6
nlohmann::json JSON
Definition json_parameters.h:10