Loading...
Searching...
No Matches
Function_affine_plane_in_Rd.h
/* This file is part of the Gudhi Library - https://gudhi.inria.fr/ - which is released under MIT.
* See file LICENSE or go to https://gudhi.inria.fr/licensing/ for full license details.
* Author(s): Siargey Kachanovich
*
* Copyright (C) 2019 Inria
*
* Modification(s):
* - YYYY/MM Author: Description of the modification
*/
#ifndef FUNCTIONS_FUNCTION_AFFINE_PLANE_IN_RD_H_
#define FUNCTIONS_FUNCTION_AFFINE_PLANE_IN_RD_H_
#include <cstdlib> // for std::size_t
#include <Eigen/Dense>
namespace Gudhi {
namespace coxeter_triangulation {
struct Function_affine_plane_in_Rd {
Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
Eigen::VectorXd result = normal_matrix_.transpose() * (p - off_);
return result;
}
std::size_t amb_d() const { return d_; };
std::size_t cod_d() const { return k_; };
Eigen::VectorXd seed() const {
Eigen::VectorXd result = off_;
return result;
}
Function_affine_plane_in_Rd(const Eigen::MatrixXd& normal_matrix, const Eigen::VectorXd& offset)
: normal_matrix_(normal_matrix), d_(normal_matrix.rows()), k_(normal_matrix.cols()), off_(offset) {
normal_matrix_.colwise().normalize();
}
Function_affine_plane_in_Rd(const Eigen::MatrixXd& normal_matrix)
: normal_matrix_(normal_matrix),
d_(normal_matrix.rows()),
k_(normal_matrix.cols()),
off_(Eigen::VectorXd::Zero(d_)) {
normal_matrix_.colwise().normalize();
}
private:
Eigen::MatrixXd normal_matrix_;
std::size_t d_, k_;
Eigen::VectorXd off_;
};
} // namespace coxeter_triangulation
} // namespace Gudhi
#endif
Gudhi
Gudhi namespace.
Definition SimplicialComplexForAlpha.h:14
Gudhi::coxeter_triangulation::Function_affine_plane_in_Rd::operator()
Eigen::VectorXd operator()(const Eigen::VectorXd &p) const
Value of the function at a specified point.
Definition Function_affine_plane_in_Rd.h:32
Gudhi::coxeter_triangulation::Function_affine_plane_in_Rd::cod_d
std::size_t cod_d() const
Returns the codomain dimension. Same as the codimension of the sphere.
Definition Function_affine_plane_in_Rd.h:41
Gudhi::coxeter_triangulation::Function_affine_plane_in_Rd::Function_affine_plane_in_Rd
Function_affine_plane_in_Rd(const Eigen::MatrixXd &normal_matrix)
Constructor of the function that defines an m-dimensional implicit affine plane in the d-dimensional ...
Definition Function_affine_plane_in_Rd.h:72
Gudhi::coxeter_triangulation::Function_affine_plane_in_Rd::seed
Eigen::VectorXd seed() const
Returns a point on the affine plane.
Definition Function_affine_plane_in_Rd.h:44
Gudhi::coxeter_triangulation::Function_affine_plane_in_Rd::amb_d
std::size_t amb_d() const
Returns the domain dimension. Same as the ambient dimension of the sphere.
Definition Function_affine_plane_in_Rd.h:38
Gudhi::coxeter_triangulation::Function_affine_plane_in_Rd::Function_affine_plane_in_Rd
Function_affine_plane_in_Rd(const Eigen::MatrixXd &normal_matrix, const Eigen::VectorXd &offset)
Constructor of the function that defines an m-dimensional implicit affine plane in the d-dimensional ...
Definition Function_affine_plane_in_Rd.h:59