include/geometry/linalg.h
author Aravindakshan Babu <akshan@stanford.edu>
Thu, 08 Jul 2010 23:50:39 -0700
branchdev
changeset 217 64a272a34cb2
parent 19 efa14432761a
permissions -rw-r--r--
Added extra functionality to Point class( an iterator ) and PersistenceDiagram( dimension property and __len__ func ). persistence-diagram.h: Added a new read-only dimension member and member function to access it. With a new constructor that that takes in an int type to initialize dimension. persistence-diagram.cpp: Added new bp::init constructor. Takes in an integer type to initialize the dimension. Exposed the dimension property. Exposed the size property via a __len__ method. __init__.py: Added an iterator for Point objects. This iterates over the coords and then the data( if present ).

#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