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 __LINALG_H__
#define __LINALG_H__
#include <vector>
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/lu.hpp>
#include <boost/numeric/ublas/io.hpp>
template<class ValueType_>
class LinearAlgebra
{
public:
typedef ValueType_ ValueType;
typedef boost::numeric::ublas::matrix<ValueType> MatrixType;
typedef boost::numeric::ublas::vector<ValueType> VectorType;
/* Currently don't need any of this */
static ValueType determinant(const MatrixType& a);
static void solve(const MatrixType& a, const VectorType& b, VectorType& x);
private:
template<class TriangularType_>
static ValueType determinant(const boost::numeric::ublas::triangular_adaptor<MatrixType, TriangularType_>& t);
};
#include "linalg.hpp"
#endif