dlvhex  2.5.0
include/dlvhex2/CAUAlgorithms.h File Reference

Function templates related to Common Ancestor Units (CAUs). More...

#include "Logger.h"
#include "Printhelpers.h"
#include "EvalGraph.h"
#include "ModelGraph.h"
#include "ModelGenerator.h"
#include <boost/graph/depth_first_search.hpp>
#include <boost/graph/two_bit_color_map.hpp>
#include <boost/graph/reverse_graph.hpp>
Include dependency graph for CAUAlgorithms.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  CAUAlgorithms::AncestryMarkingVisitor< Graph >
class  CAUAlgorithms::RelevanceMarkingVisitor< Graph >

Namespaces

namespace  CAUAlgorithms
 

Function templates related to Common Ancestor Units (CAUs).


Typedefs

typedef std::set< int > CAUAlgorithms::Ancestry
typedef
boost::vector_property_map
< Ancestry > 
CAUAlgorithms::AncestryPropertyMap
 Store for each eval unit the ancestry starting from some join.
typedef
boost::vector_property_map
< bool > 
CAUAlgorithms::JoinRelevancePropertyMap

Functions

template<typename EvalGraphT >
void CAUAlgorithms::findCAUs (std::set< typename EvalGraphT::EvalUnit > &caus, const EvalGraphT &eg, typename EvalGraphT::EvalUnit u, AncestryPropertyMap &apm)
 Finds CAUs of a unit in an evaluation graph.
template<typename EvalGraphT >
void CAUAlgorithms::findCAUs (std::set< typename EvalGraphT::EvalUnit > &caus, const EvalGraphT &eg, typename EvalGraphT::EvalUnit u)
 Finds CAUs of a unit in an evaluation graph.
DLVHEX_EXPORT void CAUAlgorithms::logAPM (const AncestryPropertyMap &apm)
 Logs a given AncestryPropertyMap.
template<typename EvalGraphT >
void CAUAlgorithms::initJoinRelevance (JoinRelevancePropertyMap &jr, const EvalGraphT &eg)
 Stores for each unit whether it is relevant for joining.
template<typename EvalGraphT >
void CAUAlgorithms::markJoinRelevance (JoinRelevancePropertyMap &jr, const EvalGraphT &eg, typename EvalGraphT::EvalUnit u, const std::set< typename EvalGraphT::EvalUnit > &caus, const AncestryPropertyMap &apm)
 Given the results of findCAUs(caus, eg, u), mark all units between u and elements of caus as relevant (true), others as irrelevant (false) (do this by going from caus along a DFS through the reversed graph, marking everything that has an ancestry as relevant).
DLVHEX_EXPORT void CAUAlgorithms::logJRPM (const JoinRelevancePropertyMap &jr)

Detailed Description

Function templates related to Common Ancestor Units (CAUs).

Author:
Peter Schueller <ps@kr.tuwien.ac.at>

Definition in file CAUAlgorithms.h.