Debugged ZigzagPersistence (having added heavier consistency checking)
  * Added DEBUG_CONTAINERS option (uses std::__debug::* containers for chains
    and in ZigzagPersistence)
  * Added SizeStorage specialization for std::deque<T>
  * ZigzagPersistence got a lot more consistency checking (in debug mode only,
    which now crawls); as a result it's been debugged (running on non-trivial examples)
  * examples/rips/rips-zigzag takes command-line options
  * added ChainWrapper::clear()
  * added Simplex::VertexDimensionComparison
  * added PairwiseDistances class (for computing distances between points in a
    container according to a distance functor)
#ifndef __TYPES_H__
#define __TYPES_H__
#include <limits>
#include <iostream>
/* Types */
typedef 	bool					Sign;
typedef		short int		        Dimension;
const 		Sign	 				POS = true;
const 		Sign					NEG = false;
typedef		double					RealType;
typedef		unsigned int			SizeType;
static RealType Infinity = std::numeric_limits<RealType>::infinity();
typedef 	const unsigned int&		version_type;
// Empty is made a template so that we don't have to compile and deal with a library
// solely for its operator<<(out, e) function
template<typename T = void>
struct      Empty                   {};
template<typename T>
std::ostream& operator<<(std::ostream& out, Empty<T> e) { return out; }
enum        SwitchType
{
            DiffDim     = 0,
            Case1       = 0x4,
            Case12      = 0x5,
            Case112     = 0x6,
            Case2       = 0x8,
            Case212     = 0x9,
            Case3       = 0x10,
            Case31      = 0x11,
            Case4       = 0x20,
};
// Nothing to do for serializing Empty, but still need to provide this function
namespace boost {
namespace serialization {
template<class Archive, class T>
void serialize(Archive & ar, Empty<T>&, const unsigned int )
{}
} // namespace serialization
} // namespace boost
#endif // __TYPES_H__