#include "raid/core/estimate.hpp" #include "raid/core/plan.hpp" namespace raid { nlohmann::json Provenance::to_json() const { return {{"dataset_id", dataset_id}, {"dataset_version", dataset_version}, {"request_ids", request_ids}, {"input_hashes", input_hashes}, {"code_version", code_version}, {"source", source}, {"extra", extra}}; } nlohmann::json Convergence::to_json() const { return {{"converged", converged}, {"iterations", iterations}, {"function_evaluations", function_evaluations}, {"gradient_norm", gradient_norm}, {"status_code", status_code}, {"message", message}}; } nlohmann::json InferenceResult::to_json() const { std::vector> cov(static_cast(covariance.rows())); for (Eigen::Index i = 0; i < covariance.rows(); ++i) { cov[static_cast(i)].resize(static_cast(covariance.cols())); for (Eigen::Index j = 0; j < covariance.cols(); ++j) cov[static_cast(i)][static_cast(j)] = covariance(i, j); } return {{"std_errors", std_errors}, {"t_stats", t_stats}, {"p_values", p_values}, {"covariance", cov}, {"covariance_type", covariance_type}, {"small_sample_correction", small_sample_correction}}; } nlohmann::json Estimate::to_json() const { nlohmann::json j = {{"model", model}, {"names", names}, {"coefficients", coefficients}, {"loss", loss}, {"convergence", convergence.to_json()}, {"warnings", warnings}, {"runtime_seconds", runtime_seconds}, {"backend", std::string(to_string(backend))}, {"precision", std::string(to_string(precision))}, {"provenance", provenance.to_json()}, {"n_obs", n_obs}, {"extra", extra}, {"ok", ok()}}; if (inference) j["inference"] = inference->to_json(); return j; } nlohmann::json Device::to_json() const { return {{"name", name}, {"kind", std::string(to_string(kind))}, {"memory_bytes", memory_bytes}, {"compute_units", compute_units}, {"unified_memory", unified_memory}, {"supports_fp64", supports_fp64}, {"max_buffer_bytes", max_buffer_bytes}, {"details", details}}; } nlohmann::json PrecisionPolicy::to_json() const { return {{"requested", std::string(to_string(requested))}, {"fp32_chunk_max", fp32_chunk_max}, {"compensated", compensated}, {"validate_rtol", validate_rtol}}; } nlohmann::json ExecutionPlan::to_json() const { return {{"backend", std::string(to_string(backend))}, {"precision", precision.to_json()}, {"deterministic", deterministic}, {"threads", threads}, {"chunk_rows", chunk_rows}, {"max_memory_bytes", max_memory_bytes}, {"allow_fallback", allow_fallback}, {"seed", seed}}; } } // namespace raid