14 #include "libmesh/parallel_eigen.h" 41 const auto vec_of_vec =
42 json_value.get<std::vector<std::vector<double>>>();
43 const auto nrows = vec_of_vec.size();
45 return RealEigenMatrix::Zero(0, 0);
46 const auto ncols = vec_of_vec[0].size();
49 matrix.resize(nrows, ncols);
52 const auto & row = vec_of_vec[i];
53 if (row.size() != ncols)
54 throw std::runtime_error(
"Matrix is jagged");
57 matrix(i, j) = row[j];
registerWebServerControlType(RealEigenMatrix, [](const nlohmann::json &json_value) -> RealEigenMatrix { const auto vec_of_vec=json_value.get< std::vector< std::vector< double >>>();const auto nrows=vec_of_vec.size();if(nrows==0) return RealEigenMatrix::Zero(0, 0);const auto ncols=vec_of_vec[0].size();RealEigenMatrix matrix;matrix.resize(nrows, ncols);for(const auto i :make_range(nrows)) { const auto &row=vec_of_vec[i];if(row.size() !=ncols) throw std::runtime_error("Matrix is jagged");for(const auto j :index_range(row)) matrix(i, j)=row[j];} return matrix;})
registerWebServerControlScalar(bool)
Defines classes for registering values that can be parsed, communicated, and stored in the WebServerC...
Eigen::Matrix< Real, Eigen::Dynamic, Eigen::Dynamic > RealEigenMatrix
registerWebServerControlVector(Real)
IntRange< T > make_range(T beg, T end)
auto index_range(const T &sizable)