Intermediate commit while converting to the new architecture
* Converted Filtration into StaticPersistence and DynamicPersistenceTrails
(both right now work with the underlying std::vector rather than std::list order)
* Filtration is now just an auxilliary glue (a map between Complex and Persistence)
* Whether chains are vectors or lists can be interchanged
* Added PersistenceDiagram with a simple bottleneck_distance() function
* Converted triangle, alphashapes3d, and cech-complex examples
* Lots of organizational changes
(factoring utilities out into containers.h, indirect.h, property-maps.h)
* Trying to document along the way with NaturalDocs-type comments
#ifndef __TYPES_H__
#define __TYPES_H__
#include <limits>
#include <iostream>
/* Types */
typedef bool Sign;
typedef unsigned 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;
struct Empty {};
std::ostream& operator<<(std::ostream& out, Empty 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>
void serialize(Archive & ar, Empty&, const unsigned int )
{}
} // namespace serialization
} // namespace boost
#endif // __TYPES_H__