@@ -1567,6 +1567,64 @@ template <traits::c_hypergraph Hypergraph>
15671567 return Hypergraph (source);
15681568}
15691569
1570+ template <
1571+ traits::c_properties VertexProperties = empty_properties,
1572+ traits::c_properties HyperedgeProperties = empty_properties,
1573+ traits::c_hypergraph_impl_tag ImplTag = impl::list_t <>>
1574+ using undirected_hypergraph =
1575+ hypergraph<undirected_hypergraph_traits<VertexProperties, HyperedgeProperties, ImplTag>>;
1576+
1577+ template <
1578+ traits::c_properties VertexProperties = empty_properties,
1579+ traits::c_properties HyperedgeProperties = empty_properties,
1580+ traits::c_hypergraph_impl_tag ImplTag = impl::list_t <>>
1581+ using bf_directed_hypergraph =
1582+ hypergraph<bf_directed_hypergraph_traits<VertexProperties, HyperedgeProperties, ImplTag>>;
1583+
1584+ template <
1585+ traits::c_hypergraph_layout_tag LayoutTag = impl::bidirectional_t ,
1586+ traits::c_hypergraph_directional_tag DirectionalTag = undirected_t ,
1587+ traits::c_properties VertexProperties = empty_properties,
1588+ traits::c_properties HyperedgeProperties = empty_properties,
1589+ traits::c_id_type IdType = default_id_type>
1590+ using list_hypergraph = hypergraph<
1591+ list_hypergraph_traits<LayoutTag, DirectionalTag, VertexProperties, HyperedgeProperties, IdType>>;
1592+
1593+ template <
1594+ traits::c_hypergraph_layout_tag LayoutTag = impl::bidirectional_t ,
1595+ traits::c_hypergraph_directional_tag DirectionalTag = undirected_t ,
1596+ traits::c_properties VertexProperties = empty_properties,
1597+ traits::c_properties HyperedgeProperties = empty_properties,
1598+ traits::c_id_type IdType = default_id_type>
1599+ using flat_list_hypergraph = hypergraph<flat_list_hypergraph_traits<
1600+ LayoutTag,
1601+ DirectionalTag,
1602+ VertexProperties,
1603+ HyperedgeProperties,
1604+ IdType>>;
1605+
1606+ template <
1607+ traits::c_hypergraph_layout_tag LayoutTag = impl::bidirectional_t ,
1608+ traits::c_hypergraph_directional_tag DirectionalTag = undirected_t ,
1609+ traits::c_properties VertexProperties = empty_properties,
1610+ traits::c_properties HyperedgeProperties = empty_properties,
1611+ traits::c_id_type IdType = default_id_type>
1612+ using matrix_hypergraph = hypergraph<
1613+ matrix_hypergraph_traits<LayoutTag, DirectionalTag, VertexProperties, HyperedgeProperties, IdType>>;
1614+
1615+ template <
1616+ traits::c_hypergraph_layout_tag LayoutTag = impl::bidirectional_t ,
1617+ traits::c_hypergraph_directional_tag DirectionalTag = undirected_t ,
1618+ traits::c_properties VertexProperties = empty_properties,
1619+ traits::c_properties HyperedgeProperties = empty_properties,
1620+ traits::c_id_type IdType = default_id_type>
1621+ using flat_matrix_hypergraph = hypergraph<flat_matrix_hypergraph_traits<
1622+ LayoutTag,
1623+ DirectionalTag,
1624+ VertexProperties,
1625+ HyperedgeProperties,
1626+ IdType>>;
1627+
15701628// --- degree bounds ---
15711629
15721630[[nodiscard]] size_type max_degree (const traits::c_hypergraph auto & hypergraph) noexcept {
0 commit comments