114 [[nodiscard]] std::size_t size()
const noexcept;
121 [[nodiscard]] std::optional<Eigen::MatrixXd>
122 compute_spacetime_covariance()
const noexcept;
129 [[nodiscard]] std::optional<double>
130 interval_correlation(std::size_t i, std::size_t j)
const noexcept;
138 [[nodiscard]] std::optional<manifold::IntervalType>
139 classify_pair(std::size_t i, std::size_t j)
const noexcept;
142 [[nodiscard]]
const std::vector<AssetEvent>& events()
const noexcept;
145 void clear()
noexcept;
149 [[nodiscard]]
double raw_interval(std::size_t i,
150 std::size_t j)
const noexcept;
152 std::vector<AssetEvent> events_;
190 [[nodiscard]]
static std::optional<SpacetimeCausalGraph>
195 [[nodiscard]]
const Eigen::MatrixXi& adjacency_matrix()
const noexcept;
201 [[nodiscard]]
bool has_edge(std::size_t i, std::size_t j)
const noexcept;
204 [[nodiscard]] std::size_t n_assets()
const noexcept;
207 [[nodiscard]]
int out_degree(std::size_t i)
const noexcept;
210 [[nodiscard]]
int in_degree(std::size_t j)
const noexcept;
213 [[nodiscard]]
const std::vector<std::string>& asset_ids()
const noexcept;
217 std::vector<std::string> ids)
noexcept;
219 Eigen::MatrixXi adj_;
220 std::vector<std::string> asset_ids_;