11#ifndef COXETER_TRIANGULATION_H_
12#define COXETER_TRIANGULATION_H_
17#include <boost/range/iterator_range.hpp>
18#include <boost/graph/graph_traits.hpp>
19#include <boost/graph/adjacency_list.hpp>
21#include <Eigen/Eigenvalues>
22#include <Eigen/Sparse>
25#include <gudhi/Freudenthal_triangulation.h>
26#include <gudhi/Permutahedral_representation.h>
30namespace coxeter_triangulation {
43template <
class Permutahedral_representation_ =
46 using Matrix = Eigen::MatrixXd;
48 Matrix root_matrix(
unsigned d) {
49 Matrix cartan(Matrix::Identity(d, d));
50 for (
unsigned i = 1; i < d; i++) {
51 cartan(i - 1, i) = -0.5;
52 cartan(i, i - 1) = -0.5;
54 Eigen::SelfAdjointEigenSolver<Matrix> saes(cartan);
55 Eigen::VectorXd sqrt_diag(d);
56 for (
unsigned i = 0; i < d; ++i) sqrt_diag(i) = std::sqrt(saes.eigenvalues()[i]);
58 Matrix lower(Matrix::Ones(d, d));
59 lower = lower.triangularView<Eigen::Lower>();
61 Matrix result = (lower * saes.eigenvectors() * sqrt_diag.asDiagonal()).inverse();
Coxeter_triangulation(std::size_t dimension)
Constructor of Coxeter triangulation of a given dimension.
Definition Coxeter_triangulation.h:69
Freudenthal_triangulation(std::size_t dimension)
Constructor of the Freudenthal-Kuhn triangulation of a given dimension.
Definition Freudenthal_triangulation.h:60
unsigned dimension() const
Dimension of the triangulation.
Definition Freudenthal_triangulation.h:93
A class that stores the permutahedral representation of a simplex in a Coxeter triangulation or a Fre...
Definition Permutahedral_representation.h:38
Gudhi namespace.
Definition SimplicialComplexForAlpha.h:14