Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
RoutingKit::detail Namespace Reference

Data Structures

struct  CompareByKey
 
struct  GetExtraWeightTypeHelper
 
struct  GetExtraWeightTypeHelper< ContractionHierarchyExtraWeight< T > >
 
struct  InverseLinkFunction
 
struct  InvertShorcutWeights
 
struct  ShortcutWeights
 
struct  ShortcutWeights< ContractionHierarchyExtraWeight< WeightT >, LinkFunction >
 

Typedefs

template<class T >
using GetExtraWeightType = typename GetExtraWeightTypeHelper< T >::type
 
template<class T >
using ReturnTypeWhenPassedIntOf = typename std::remove_const< typename std::remove_reference< decltype(std::declval< T >()(1))>::type >::type
 
template<class T >
using ValueTypeOfContainer = typename std::remove_const< typename std::remove_reference< decltype(std::declval< T >()[1])>::type >::type
 

Functions

template<bool is_stable, class T , class K >
std::vector< unsigned > compute_inverse_maybe_stable_sort_permutation_using_key (const std::vector< T > &v, unsigned key_count, const K &get_key)
 
template<class T , class K >
std::vector< unsigned > compute_key_pos (const std::vector< T > &v, unsigned key_count, const K &get_key)
 
template<bool is_stable, class T , class K >
std::vector< unsigned > compute_maybe_stable_sort_permutation_using_key (const std::vector< T > &v, unsigned key_count, const K &get_key)
 
template<class LinkFunction , class ExtraWeight , class TmpContainer , class DistContainer >
void extract_distances_to_targets (const std::vector< unsigned > &target_list, unsigned target_count, const TimestampFlags &has_forward_predecessor, const std::vector< unsigned > &forward_predecessor_node, const std::vector< unsigned > &predecessor_arc, const ExtraWeight &extra_weight, const std::vector< unsigned > &forward_first_out, const std::vector< unsigned > &forward_head, const std::vector< unsigned > &backward_first_out, const std::vector< unsigned > &backward_head, TmpContainer &source_to_node_distance, TimestampFlags &has_source_to_node_distance, DistContainer &output, std::vector< unsigned > &stack, const LinkFunction &link)
 
template<class GetForwardWeight , class LinkFunction >
ReturnTypeWhenPassedIntOf< GetForwardWeight > get_extra_weight_up_distance (unsigned shortest_path_meeting_node, const std::vector< unsigned > &forward_predecessor_node, const std::vector< unsigned > &forward_predecessor_arc, const GetForwardWeight &get_forward_extra_weight, const LinkFunction &link)
 
const char * handle_null_ptr (const char *p)
 
const char * handle_null_ptr (const decltype(nullptr))
 
template<class T >
const T & handle_null_ptr (const T &t)
 
template<class ShortcutWeights , class LinkFunction >
ShortcutWeights::Weight internal_get_extra_weight_distance (const ShortcutWeights &shortcut_weights, const LinkFunction &link, unsigned shortest_path_meeting_node, const std::vector< unsigned > &forward_predecessor_node, const std::vector< unsigned > &forward_predecessor_arc, const std::vector< unsigned > &backward_predecessor_node, const std::vector< unsigned > &backward_predecessor_arc)
 
template<class LinkFunction >
InverseLinkFunction< LinkFunction > inverse_link_function (const LinkFunction &link)
 
template<class ShortcutWeights >
InvertShorcutWeights< ShortcutWeightsinverse_shortcut_weights (const ShortcutWeights &shortcut_weights)
 
template<class K >
CompareByKey< Kmake_compare_by_key (unsigned n, const K &k)
 
template<class ExtraWeight , class LinkFunction >
ShortcutWeights< ExtraWeight, LinkFunction > make_shortcut_weights (const ExtraWeight &extra_weight, const LinkFunction &link, const ContractionHierarchy &ch)
 
template<bool is_stable, class T , class K >
std::vector< T > maybe_stable_sort_using_key (const std::vector< T > &v, unsigned key_count, const K &get_key)
 
template<bool is_stable, class T , class K >
std::vector< T > maybe_stable_sort_using_key (std::vector< T > &&v, unsigned key_count, const K &get_key)
 

Variables

const unsigned bucket_sort_min_key_to_element_ratio = 16
 

Typedef Documentation

◆ GetExtraWeightType

template<class T >
using RoutingKit::detail::GetExtraWeightType = typedef typename GetExtraWeightTypeHelper<T>::type

Definition at line 101 of file contraction_hierarchy.h.

◆ ReturnTypeWhenPassedIntOf

template<class T >
using RoutingKit::detail::ReturnTypeWhenPassedIntOf = typedef typename std::remove_const<typename std::remove_reference<decltype(std::declval<T>()(1))>::type>::type

Definition at line 85 of file contraction_hierarchy.h.

◆ ValueTypeOfContainer

template<class T >
using RoutingKit::detail::ValueTypeOfContainer = typedef typename std::remove_const<typename std::remove_reference<decltype(std::declval<T>()[1])>::type>::type

Definition at line 88 of file contraction_hierarchy.h.

Function Documentation

◆ compute_inverse_maybe_stable_sort_permutation_using_key()

template<bool is_stable, class T , class K >
std::vector< unsigned > RoutingKit::detail::compute_inverse_maybe_stable_sort_permutation_using_key ( const std::vector< T > &  v,
unsigned  key_count,
const K get_key 
)

◆ compute_key_pos()

template<class T , class K >
std::vector< unsigned > RoutingKit::detail::compute_key_pos ( const std::vector< T > &  v,
unsigned  key_count,
const K get_key 
)

Definition at line 131 of file sort.h.

Referenced by compute_inverse_maybe_stable_sort_permutation_using_key(), compute_maybe_stable_sort_permutation_using_key(), maybe_stable_sort_using_key(), and maybe_stable_sort_using_key().

Here is the caller graph for this function:

◆ compute_maybe_stable_sort_permutation_using_key()

template<bool is_stable, class T , class K >
std::vector< unsigned > RoutingKit::detail::compute_maybe_stable_sort_permutation_using_key ( const std::vector< T > &  v,
unsigned  key_count,
const K get_key 
)

◆ extract_distances_to_targets()

template<class LinkFunction , class ExtraWeight , class TmpContainer , class DistContainer >
void RoutingKit::detail::extract_distances_to_targets ( const std::vector< unsigned > &  target_list,
unsigned  target_count,
const TimestampFlags has_forward_predecessor,
const std::vector< unsigned > &  forward_predecessor_node,
const std::vector< unsigned > &  predecessor_arc,
const ExtraWeight &  extra_weight,
const std::vector< unsigned > &  forward_first_out,
const std::vector< unsigned > &  forward_head,
const std::vector< unsigned > &  backward_first_out,
const std::vector< unsigned > &  backward_head,
TmpContainer &  source_to_node_distance,
TimestampFlags has_source_to_node_distance,
DistContainer &  output,
std::vector< unsigned > &  stack,
const LinkFunction &  link 
)

Definition at line 543 of file contraction_hierarchy.h.

References RoutingKit::invalid_id, RoutingKit::TimestampFlags::is_set(), RoutingKit::TimestampFlags::reset_all(), and RoutingKit::TimestampFlags::set().

Referenced by RoutingKit::ContractionHierarchyQuery::get_extra_weight_distances_to_sources(), and RoutingKit::ContractionHierarchyQuery::get_extra_weight_distances_to_targets().

Here is the caller graph for this function:

◆ get_extra_weight_up_distance()

template<class GetForwardWeight , class LinkFunction >
ReturnTypeWhenPassedIntOf< GetForwardWeight > RoutingKit::detail::get_extra_weight_up_distance ( unsigned  shortest_path_meeting_node,
const std::vector< unsigned > &  forward_predecessor_node,
const std::vector< unsigned > &  forward_predecessor_arc,
const GetForwardWeight &  get_forward_extra_weight,
const LinkFunction &  link 
)

Definition at line 406 of file contraction_hierarchy.h.

References RoutingKit::invalid_id.

Referenced by internal_get_extra_weight_distance().

Here is the caller graph for this function:

◆ handle_null_ptr() [1/3]

const char * RoutingKit::detail::handle_null_ptr ( const char *  p)
inline

Definition at line 13 of file expect.h.

◆ handle_null_ptr() [2/3]

const char * RoutingKit::detail::handle_null_ptr ( const   decltypenullptr)
inline

Definition at line 14 of file expect.h.

◆ handle_null_ptr() [3/3]

template<class T >
const T & RoutingKit::detail::handle_null_ptr ( const T &  t)

Definition at line 12 of file expect.h.

◆ internal_get_extra_weight_distance()

template<class ShortcutWeights , class LinkFunction >
ShortcutWeights::Weight RoutingKit::detail::internal_get_extra_weight_distance ( const ShortcutWeights shortcut_weights,
const LinkFunction &  link,
unsigned  shortest_path_meeting_node,
const std::vector< unsigned > &  forward_predecessor_node,
const std::vector< unsigned > &  forward_predecessor_arc,
const std::vector< unsigned > &  backward_predecessor_node,
const std::vector< unsigned > &  backward_predecessor_arc 
)

◆ inverse_link_function()

template<class LinkFunction >
InverseLinkFunction< LinkFunction > RoutingKit::detail::inverse_link_function ( const LinkFunction &  link)

Definition at line 324 of file contraction_hierarchy.h.

Referenced by RoutingKit::ContractionHierarchyQuery::get_extra_weight_distances_to_sources(), and internal_get_extra_weight_distance().

Here is the caller graph for this function:

◆ inverse_shortcut_weights()

template<class ShortcutWeights >
InvertShorcutWeights< ShortcutWeights > RoutingKit::detail::inverse_shortcut_weights ( const ShortcutWeights shortcut_weights)

Definition at line 401 of file contraction_hierarchy.h.

Referenced by RoutingKit::ContractionHierarchyQuery::get_extra_weight_distances_to_sources().

Here is the caller graph for this function:

◆ make_compare_by_key()

template<class K >
CompareByKey< K > RoutingKit::detail::make_compare_by_key ( unsigned  n,
const K k 
)

Definition at line 173 of file sort.h.

Referenced by compute_inverse_maybe_stable_sort_permutation_using_key(), compute_maybe_stable_sort_permutation_using_key(), maybe_stable_sort_using_key(), and maybe_stable_sort_using_key().

Here is the caller graph for this function:

◆ make_shortcut_weights()

template<class ExtraWeight , class LinkFunction >
ShortcutWeights< ExtraWeight, LinkFunction > RoutingKit::detail::make_shortcut_weights ( const ExtraWeight &  extra_weight,
const LinkFunction &  link,
const ContractionHierarchy ch 
)

Definition at line 379 of file contraction_hierarchy.h.

Referenced by RoutingKit::ContractionHierarchyQuery::get_extra_weight_distance(), RoutingKit::ContractionHierarchyQuery::get_extra_weight_distances_to_sources(), and RoutingKit::ContractionHierarchyQuery::get_extra_weight_distances_to_targets().

Here is the caller graph for this function:

◆ maybe_stable_sort_using_key() [1/2]

template<bool is_stable, class T , class K >
std::vector< T > RoutingKit::detail::maybe_stable_sort_using_key ( const std::vector< T > &  v,
unsigned  key_count,
const K get_key 
)

◆ maybe_stable_sort_using_key() [2/2]

template<bool is_stable, class T , class K >
std::vector< T > RoutingKit::detail::maybe_stable_sort_using_key ( std::vector< T > &&  v,
unsigned  key_count,
const K get_key 
)

Variable Documentation

◆ bucket_sort_min_key_to_element_ratio

const unsigned RoutingKit::detail::bucket_sort_min_key_to_element_ratio = 16