1// Minimal C++ example: realized measures on the synthetic fixture with backend auto|cpu|metal and CPU fallback.2// Build: cmake --preset macos-release && cmake --build --preset macos-release --target example_minimal (or compile against libraid)3#include <cstdio>4#include "raid/data/io.hpp"5#include "raid/data/calendar.hpp"6#include "raid/data/returns.hpp"7#include "raid/estimators/realized.hpp"89int main(int argc, char** argv) {10 const std::string backend = argc > 1 ? argv[1] : "auto";11 auto bars = raid::data::read_bars_csv(argc > 2 ? argv[2] : "datasets/fixtures/synthetic_bars_1m.csv");12 raid::MarketCalendar cal;13 for (auto& [sym, b] : bars) {14 b.normalize();15 auto reg = b.filter_session(cal, raid::SessionPolicy::regular);16 auto ir = raid::data::intraday_returns(reg);17 raid::est::RealizedOptions o; o.plan.backend = raid::backend_from_string(backend); o.plan.allow_fallback = true;18 auto m = raid::est::realized_measures(ir, o);19 std::printf("%s: %zu sessions, backend=%s precision=%s (%s)\n", sym.c_str(), m.sessions.size(), std::string(raid::to_string(m.stats.backend)).c_str(), std::string(raid::to_string(m.stats.precision)).c_str(), m.stats.note.c_str());20 for (size_t k = 0; k < m.sessions.size(); ++k) std::printf(" %s M=%zu RV=%.3e BPV=%.3e RSV-=%.3e RQ=%.3e\n", m.sessions[k].iso().c_str(), m.n_returns[k], m.rv[k], m.bpv[k], m.rsv_neg[k], m.rq[k]);21 }22 return 0;23}24