Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::planarity_detail::LR_Planarity_Checker< GT, SA > Class Template Reference

#include <Planarity_Test.H>

Collaboration diagram for Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >:
[legend]

Public Member Functions

 LR_Planarity_Checker (const GT &g, SA sa, Planarity_Test_Options options=Planarity_Test_Options())
 
Planarity_Test_Result< GTrun ()
 

Private Types

using Node = typename GT::Node
 
using Arc = typename GT::Arc
 

Private Member Functions

size_t add_oriented_edge (const size_t src, const size_t tgt)
 
size_t other_endpoint (const size_t edge_id, const size_t x) const
 
size_t count_components () const
 
void generate_permutations (Array< size_t > &tail, const size_t pos, const size_t first, Array< Array< size_t > > &out) const
 
bool compute_faces_from_rotation (const Array< Array< size_t > > &order, const size_t isolated_vertices, const size_t num_components, Array< Array< size_t > > &face_idx, size_t &global_faces, const bool enforce_euler=true) const
 
void fill_embedding_result (const Array< Array< size_t > > &order, const Array< Array< size_t > > &face_idx, const size_t global_faces, const bool is_lr_linear)
 
bool conflicting (const Interval &i, const size_t edge_id) const
 
long lowest (const Conflict_Pair &p) const
 
void orient_dfs (const size_t v)
 
void test_dfs (const size_t v)
 
bool fails_component_euler_bound () const
 
void build_underlying_simple_graph ()
 
bool run_lr_planarity_test ()
 
bool simple_edges_are_planar (const Array< Simple_Edge > &simple_edges) const
 
bool classify_k5 (const Array< size_t > &branches, const Array< Compressed_Path > &paths) const
 
bool classify_k33 (const Array< size_t > &branches, const Array< Compressed_Path > &paths) const
 
size_t find_simplified_edge_id (const size_t u, const size_t v) const
 
Planarity_Test_Result< GT >::Edge_Witness make_edge_witness (const size_t u, const size_t v) const
 
void fill_certificate_paths (const Array< size_t > &branches, const Array< Compressed_Path > &paths)
 
void build_nonplanar_certificate ()
 
bool build_combinatorial_embedding_linear_lr ()
 
bool build_combinatorial_embedding_bruteforce ()
 
bool build_combinatorial_embedding ()
 

Static Private Member Functions

static void sort_size_t_array (Array< size_t > &a)
 
static size_t factorial_bounded (const size_t n, const size_t cap)
 
static size_t find_in_array (const Array< size_t > &a, const size_t value)
 

Private Attributes

const GTg_
 
SA sa_
 
Planarity_Test_Options options_
 
Planarity_Test_Result< GTresult_
 
Array< Node * > nodes_
 
DynMapTree< Node *, size_t > node_to_idx_
 
Array< Simple_Edgeedges_
 
Array< Array< size_t > > incident_edges_
 
Array< Array< Arc * > > simplified_edge_input_arcs_
 
Array< longheight_
 
Array< size_t > parent_edge_
 
Array< Array< size_t > > child_edges_
 
Array< charundirected_edge_seen_
 
Array< size_t > roots_
 
Array< size_t > oriented_src_
 
Array< size_t > oriented_tgt_
 
Array< longside_
 
Array< longlowpt_
 
Array< longlowpt2_
 
Array< longnesting_depth_
 
Array< size_t > undirected_to_oriented_
 
Array< size_t > lowpt_edge_
 
Array< size_t > ref_
 
Array< Conflict_Pairstack_bottom_
 
Array< Conflict_Pairstack_
 
bool planar_ = true
 

Detailed Description

template<class GT, class SA>
class Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >

Definition at line 729 of file Planarity_Test.H.

Member Typedef Documentation

◆ Arc

◆ Node

Constructor & Destructor Documentation

◆ LR_Planarity_Checker()

template<class GT , class SA >
Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::LR_Planarity_Checker ( const GT g,
SA  sa,
Planarity_Test_Options  options = Planarity_Test_Options() 
)
inline

Definition at line 2654 of file Planarity_Test.H.

Member Function Documentation

◆ add_oriented_edge()

◆ build_combinatorial_embedding()

◆ build_combinatorial_embedding_bruteforce()

◆ build_combinatorial_embedding_linear_lr()

template<class GT , class SA >
bool Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::build_combinatorial_embedding_linear_lr ( )
inlineprivate

◆ build_nonplanar_certificate()

template<class GT , class SA >
void Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::build_nonplanar_certificate ( )
inlineprivate

Definition at line 1658 of file Planarity_Test.H.

References Aleph::and, Aleph::Array< T >::append(), Aleph::Planarity_Test_Options::certificate_max_branch_nodes_search, Aleph::Planarity_Test_Options::certificate_max_edges, Aleph::Planarity_Test_Options::certificate_max_reduction_passes, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::classify_k33(), Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::classify_k5(), Aleph::divide_and_conquer_partition_dp(), Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::edges_, Aleph::Array< T >::empty(), Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::fill_certificate_paths(), Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::find_in_array(), Aleph::Array< T >::get_last(), Aleph::Array_Iterator< T >::has_curr(), Aleph::Array< T >::is_empty(), Aleph::K33_Subdivision, Aleph::K5_Subdivision, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::make_edge_witness(), Aleph::Minimal_NonPlanar_Obstruction, Aleph::planarity_detail::Compressed_Path::nodes, Aleph::planarity_detail::Null_Edge, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::options_, Aleph::Array< T >::reserve(), Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::result_, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::simple_edges_are_planar(), Aleph::Array< T >::size(), Aleph::size(), Aleph::planarity_detail::Simple_Edge::u, Aleph::planarity_detail::Compressed_Path::u, Aleph::planarity_detail::Simple_Edge::v, and Aleph::planarity_detail::Compressed_Path::v.

Referenced by Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::run().

◆ build_underlying_simple_graph()

◆ classify_k33()

◆ classify_k5()

◆ compute_faces_from_rotation()

◆ conflicting()

◆ count_components()

◆ factorial_bounded()

template<class GT , class SA >
static size_t Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::factorial_bounded ( const size_t  n,
const size_t  cap 
)
inlinestaticprivate

◆ fails_component_euler_bound()

◆ fill_certificate_paths()

◆ fill_embedding_result()

◆ find_in_array()

◆ find_simplified_edge_id()

◆ generate_permutations()

◆ lowest()

◆ make_edge_witness()

◆ orient_dfs()

◆ other_endpoint()

◆ run()

◆ run_lr_planarity_test()

◆ simple_edges_are_planar()

◆ sort_size_t_array()

◆ test_dfs()

template<class GT , class SA >
void Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::test_dfs ( const size_t  v)
inlineprivate

Definition at line 1104 of file Planarity_Test.H.

References Aleph::and, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::child_edges_, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::conflicting(), Aleph::divide_and_conquer_partition_dp(), Aleph::Array< T >::get_last(), Aleph::Array_Iterator< T >::has_curr(), Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::height_, Aleph::planarity_detail::Interval::high, Aleph::planarity_detail::interval_empty(), Aleph::planarity_detail::Conflict_Pair::left, Aleph::planarity_detail::Interval::low, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::lowest(), Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::lowpt_, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::lowpt_edge_, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::nesting_depth_, Aleph::planarity_detail::Null_Edge, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::oriented_src_, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::oriented_tgt_, Aleph::planarity_detail::pair_empty(), Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::parent_edge_, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::planar_, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::ref_, Aleph::planarity_detail::Conflict_Pair::right, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::side_, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::stack_, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::stack_bottom_, Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::test_dfs(), and w.

Referenced by Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::run_lr_planarity_test(), and Aleph::planarity_detail::LR_Planarity_Checker< GT, SA >::test_dfs().

Member Data Documentation

◆ child_edges_

◆ edges_

◆ g_

◆ height_

◆ incident_edges_

◆ lowpt2_

◆ lowpt_

◆ lowpt_edge_

◆ nesting_depth_

◆ node_to_idx_

◆ nodes_

◆ options_

◆ oriented_src_

◆ oriented_tgt_

◆ parent_edge_

◆ planar_

◆ ref_

◆ result_

◆ roots_

◆ sa_

◆ side_

◆ simplified_edge_input_arcs_

◆ stack_

◆ stack_bottom_

◆ undirected_edge_seen_

◆ undirected_to_oriented_


The documentation for this class was generated from the following file: