Map Adaptors
[Maps]


Detailed Description

This group describes map adaptors that are used to create "implicit" maps from other maps.

Most of them are ReadMaps. They can make arithmetic operations between one or two maps (negation, scaling, addition, multiplication etc.) or e.g. convert a map to another one of different Value type.

The typical usage of this classes is passing implicit maps to algorithms. If a function type algorithm is called then the function type map adaptors can be used comfortable. For example let's see the usage of map adaptors with the graphToEps() function:

  Color nodeColor(int deg) {
    if (deg >= 2) {
      return Color(0.5, 0.0, 0.5);
    } else if (deg == 1) {
      return Color(1.0, 0.5, 1.0);
    } else {
      return Color(0.0, 0.0, 0.0);
    }
  }
  
  Graph::NodeMap<int> degree_map(graph);
  
  graphToEps(graph, "graph.eps")
    .coords(coords).scaleToA4().undirected()
    .nodeColors(composeMap(functorMap(nodeColor), degree_map)) 
    .run();
The functorMap() function makes an int to Color map from the nodeColor() function. The composeMap() compose the degree_map and the previous created map. The composed map is proper function to get color of each node.

The usage with class type algorithms is little bit harder. In this case the function type map adaptors can not be used, because the function map adaptors give back temporary objects.

  Graph graph;
  
  typedef Graph::EdgeMap<double> DoubleEdgeMap;
  DoubleEdgeMap length(graph);
  DoubleEdgeMap speed(graph);
  
  typedef DivMap<DoubleEdgeMap, DoubleEdgeMap> TimeMap;
  
  TimeMap time(length, speed);
  
  Dijkstra<Graph, TimeMap> dijkstra(graph, time);
  dijkstra.run(source, target);

We have a length map and a maximum speed map on a graph. The minimum time to pass the edge can be calculated as the division of the two maps which can be done implicitly with the DivMap template class. We use the implicit minimum time map as the length map of the Dijkstra algorithm.

Classes

class  IdentityMap< T >
 Identity map. More...
class  ConvertMap< M, T >
 Convert the Value of a map to another type using the default conversion. More...
class  SimpleMap< M >
 Simple wrapping of a map. More...
class  SimpleWriteMap< M >
 Simple writable wrapping of a map. More...
class  AddMap< M1, M2 >
 Sum of two maps. More...
class  ShiftMap< M, C >
 Shift a map with a constant. More...
class  ShiftWriteMap< M, C >
 Shift a map with a constant (ReadWrite version). More...
class  SubMap< M1, M2 >
 Difference of two maps. More...
class  MulMap< M1, M2 >
 Product of two maps. More...
class  ScaleMap< M, C >
 Scales a map with a constant. More...
class  ScaleWriteMap< M, C >
 Scales a map with a constant (ReadWrite version). More...
class  DivMap< M1, M2 >
 Quotient of two maps. More...
class  ComposeMap< M1, M2 >
 Composition of two maps. More...
class  CombineMap< M1, M2, F, V >
 Combine of two maps using an STL (binary) functor. More...
class  NegMap< M >
 Negative value of a map. More...
class  NegWriteMap< M >
 Negative value of a map (ReadWrite version). More...
class  AbsMap< M >
 Absolute value of a map. More...
class  FunctorMap< F, K, V >
 Converts an STL style functor to a map. More...
class  MapFunctor< M >
 Converts a map to an STL style (unary) functor. More...
class  ForkMap< M1, M2 >
 Just readable version of ForkWriteMap. More...
class  ForkWriteMap< M1, M2 >
 Applies all map setting operations to two maps. More...
class  NotMap< M >
 Logical 'not' of a map. More...
class  NotWriteMap< M >
 Logical 'not' of a map (ReadWrie version). More...
class  StoreBoolMap< _Iterator, _Functor >
 Writable bool map for logging each true assigned element. More...
class  BackInserterBoolMap< Container, Functor >
 Writable bool map for logging each true assigned element in a back insertable container. More...
class  FrontInserterBoolMap< Container, Functor >
 Writable bool map for logging each true assigned element in a front insertable container. More...
class  InserterBoolMap< Container, Functor >
 Writable bool map for storing each true assigned element in an insertable container. More...
class  FillBoolMap< Map >
 Writable bool map for filling each true assigned element with a given value. More...
class  SettingOrderBoolMap< Map >
 Writable bool map for storing the sequence number of true assignments. More...

Functions

template<typename T >
IdentityMap< T > identityMap ()
 Returns an IdentityMap class.
template<typename T , typename M >
ConvertMap< M, T > convertMap (const M &m)
 Returns a ConvertMap class.
template<typename M >
SimpleMap< M > simpleMap (const M &m)
 Returns a SimpleMap class.
template<typename M >
SimpleWriteMap< M > simpleWriteMap (M &m)
 Returns a SimpleWriteMap class.
template<typename M1 , typename M2 >
AddMap< M1, M2 > addMap (const M1 &m1, const M2 &m2)
 Returns an AddMap class.
template<typename M , typename C >
ShiftMap< M, C > shiftMap (const M &m, const C &v)
 Returns a ShiftMap class.
template<typename M , typename C >
ShiftWriteMap< M, C > shiftMap (M &m, const C &v)
 Returns a ShiftWriteMap class.
template<typename M1 , typename M2 >
SubMap< M1, M2 > subMap (const M1 &m1, const M2 &m2)
 Returns a SubMap class.
template<typename M1 , typename M2 >
MulMap< M1, M2 > mulMap (const M1 &m1, const M2 &m2)
 Returns a MulMap class.
template<typename M , typename C >
ScaleMap< M, C > scaleMap (const M &m, const C &v)
 Returns a ScaleMap class.
template<typename M , typename C >
ScaleWriteMap< M, C > scaleMap (M &m, const C &v)
 Returns a ScaleWriteMap class.
template<typename M1 , typename M2 >
DivMap< M1, M2 > divMap (const M1 &m1, const M2 &m2)
 Returns a DivMap class.
template<typename M1 , typename M2 >
ComposeMap< M1, M2 > composeMap (const M1 &m1, const M2 &m2)
 Returns a ComposeMap class.
template<typename M1 , typename M2 , typename F , typename V >
CombineMap< M1, M2, F, V > combineMap (const M1 &m1, const M2 &m2, const F &f)
 Returns a CombineMap class.
template<typename M >
NegMap< M > negMap (const M &m)
 Returns a NegMap class.
template<typename M >
NegWriteMap< M > negMap (M &m)
 Returns a NegWriteMap class.
template<typename M >
AbsMap< M > absMap (const M &m)
 Returns an AbsMap class.
template<typename K , typename V , typename F >
FunctorMap< F, K, V > functorMap (const F &f)
 Returns a FunctorMap class.
template<typename M >
MapFunctor< M > mapFunctor (const M &m)
 Returns a MapFunctor class.
template<typename M1 , typename M2 >
ForkMap< M1, M2 > forkMap (const M1 &m1, const M2 &m2)
 Returns a ForkMap class.
template<typename M1 , typename M2 >
ForkWriteMap< M1, M2 > forkMap (M1 &m1, M2 &m2)
 Returns a ForkWriteMap class.
template<typename M >
NotMap< M > notMap (const M &m)
 Returns a NotMap class.
template<typename M >
NotWriteMap< M > notMap (M &m)
 Returns a NotWriteMap class.


Function Documentation

IdentityMap< T > identityMap (  )  [related, inherited]

This function just returns an IdentityMap class.

ConvertMap< M, T > convertMap ( const M &  m  )  [related, inherited]

This function just returns a ConvertMap class.

SimpleMap< M > simpleMap ( const M &  m  )  [related, inherited]

This function just returns a SimpleMap class.

SimpleWriteMap< M > simpleWriteMap ( M &  m  )  [related, inherited]

This function just returns a SimpleWriteMap class.

AddMap< M1, M2 > addMap ( const M1 &  m1,
const M2 &  m2 
) [related, inherited]

This function just returns an AddMap class.

Todo:
How to call these type of functions?

ShiftMap< M, C > shiftMap ( const M &  m,
const C &  v 
) [related, inherited]

This function just returns an ShiftMap class.

ShiftWriteMap< M, C > shiftMap ( M &  m,
const C &  v 
) [related, inherited]

This function just returns a ShiftWriteMap class.

SubMap< M1, M2 > subMap ( const M1 &  m1,
const M2 &  m2 
) [related, inherited]

This function just returns a SubMap class.

MulMap< M1, M2 > mulMap ( const M1 &  m1,
const M2 &  m2 
) [related, inherited]

This function just returns a MulMap class.

ScaleMap< M, C > scaleMap ( const M &  m,
const C &  v 
) [related, inherited]

This function just returns a ScaleMap class.

ScaleWriteMap< M, C > scaleMap ( M &  m,
const C &  v 
) [related, inherited]

This function just returns a ScaleWriteMap class.

DivMap< M1, M2 > divMap ( const M1 &  m1,
const M2 &  m2 
) [related, inherited]

This function just returns a DivMap class.

ComposeMap< M1, M2 > composeMap ( const M1 &  m1,
const M2 &  m2 
) [related, inherited]

This function just returns a ComposeMap class.

CombineMap< M1, M2, F, V > combineMap ( const M1 &  m1,
const M2 &  m2,
const F &  f 
) [related, inherited]

This function just returns a CombineMap class.

For example if m1 and m2 are both double valued maps, then

     combineMap(m1,m2,std::plus<double>())
is equivalent to
     addMap(m1,m2)

This function is specialized for adaptable binary function classes and C++ functions.

NegMap< M > negMap ( const M &  m  )  [related, inherited]

This function just returns a NegMap class.

NegWriteMap< M > negMap ( M &  m  )  [related, inherited]

This function just returns a NegWriteMap class.

AbsMap< M > absMap ( const M &  m  )  [related, inherited]

This function just returns an AbsMap class.

FunctorMap< F, K, V > functorMap ( const F &  f  )  [related, inherited]

This function just returns a FunctorMap class.

This function is specialized for adaptable binary function classes and C++ functions.

MapFunctor< M > mapFunctor ( const M &  m  )  [related, inherited]

This function just returns a MapFunctor class.

ForkMap< M1, M2 > forkMap ( const M1 &  m1,
const M2 &  m2 
) [related, inherited]

This function just returns a ForkMap class.

ForkWriteMap< M1, M2 > forkMap ( M1 &  m1,
M2 &  m2 
) [related, inherited]

This function just returns a ForkWriteMap class.

NotMap< M > notMap ( const M &  m  )  [related, inherited]

This function just returns a NotMap class.

NotWriteMap< M > notMap ( M &  m  )  [related, inherited]

This function just returns a NotWriteMap class.


Generated on Thu Jun 4 04:03:12 2009 for LEMON by  doxygen 1.5.9