1#include "raid/core/estimate.hpp"2#include "raid/core/plan.hpp"34namespace raid {56nlohmann::json Provenance::to_json() const {7 return {{"dataset_id", dataset_id}, {"dataset_version", dataset_version}, {"request_ids", request_ids},8 {"input_hashes", input_hashes}, {"code_version", code_version}, {"source", source}, {"extra", extra}};9}10nlohmann::json Convergence::to_json() const {11 return {{"converged", converged}, {"iterations", iterations}, {"function_evaluations", function_evaluations},12 {"gradient_norm", gradient_norm}, {"status_code", status_code}, {"message", message}};13}14nlohmann::json InferenceResult::to_json() const {15 std::vector<std::vector<f64>> cov(static_cast<usize>(covariance.rows()));16 for (Eigen::Index i = 0; i < covariance.rows(); ++i) { cov[static_cast<usize>(i)].resize(static_cast<usize>(covariance.cols())); for (Eigen::Index j = 0; j < covariance.cols(); ++j) cov[static_cast<usize>(i)][static_cast<usize>(j)] = covariance(i, j); }17 return {{"std_errors", std_errors}, {"t_stats", t_stats}, {"p_values", p_values}, {"covariance", cov},18 {"covariance_type", covariance_type}, {"small_sample_correction", small_sample_correction}};19}20nlohmann::json Estimate::to_json() const {21 nlohmann::json j = {{"model", model}, {"names", names}, {"coefficients", coefficients}, {"loss", loss},22 {"convergence", convergence.to_json()}, {"warnings", warnings}, {"runtime_seconds", runtime_seconds},23 {"backend", std::string(to_string(backend))}, {"precision", std::string(to_string(precision))},24 {"provenance", provenance.to_json()}, {"n_obs", n_obs}, {"extra", extra}, {"ok", ok()}};25 if (inference) j["inference"] = inference->to_json();26 return j;27}28nlohmann::json Device::to_json() const {29 return {{"name", name}, {"kind", std::string(to_string(kind))}, {"memory_bytes", memory_bytes}, {"compute_units", compute_units},30 {"unified_memory", unified_memory}, {"supports_fp64", supports_fp64}, {"max_buffer_bytes", max_buffer_bytes}, {"details", details}};31}32nlohmann::json PrecisionPolicy::to_json() const {33 return {{"requested", std::string(to_string(requested))}, {"fp32_chunk_max", fp32_chunk_max}, {"compensated", compensated}, {"validate_rtol", validate_rtol}};34}35nlohmann::json ExecutionPlan::to_json() const {36 return {{"backend", std::string(to_string(backend))}, {"precision", precision.to_json()}, {"deterministic", deterministic},37 {"threads", threads}, {"chunk_rows", chunk_rows}, {"max_memory_bytes", max_memory_bytes}, {"allow_fallback", allow_fallback}, {"seed", seed}};38}3940} // namespace raid41