summaryrefslogtreecommitdiff
path: root/src/Coxeter_triangulation/include/gudhi/Functions/Embed_in_Rd.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Coxeter_triangulation/include/gudhi/Functions/Embed_in_Rd.h')
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Embed_in_Rd.h37
1 files changed, 14 insertions, 23 deletions
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Embed_in_Rd.h b/src/Coxeter_triangulation/include/gudhi/Functions/Embed_in_Rd.h
index 5ebeac75..69bd269a 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Embed_in_Rd.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Embed_in_Rd.h
@@ -17,7 +17,6 @@
#include <Eigen/Dense>
-
namespace Gudhi {
namespace coxeter_triangulation {
@@ -26,70 +25,62 @@ namespace coxeter_triangulation {
* \class Embed_in_Rd
* \brief Embedding of an implicit manifold in a higher dimension.
*
- * \tparam Function_ The function template parameter. Should be a model of
+ * \tparam Function_ The function template parameter. Should be a model of
* the concept FunctionForImplicitManifold.
*
* \ingroup coxeter_triangulation
*/
template <class Function_>
struct Embed_in_Rd : public Function {
-
- /**
+ /**
* \brief Value of the function at a specified point.
* @param[in] p The input point. The dimension needs to coincide with the ambient dimension.
*/
virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
Eigen::VectorXd x = p;
Eigen::VectorXd x_k(fun_.amb_d()), x_rest(d_ - fun_.amb_d());
- for (std::size_t i = 0; i < fun_.amb_d(); ++i)
- x_k(i) = x(i);
- for (std::size_t i = fun_.amb_d(); i < d_; ++i)
- x_rest(i - fun_.amb_d()) = x(i);
+ for (std::size_t i = 0; i < fun_.amb_d(); ++i) x_k(i) = x(i);
+ for (std::size_t i = fun_.amb_d(); i < d_; ++i) x_rest(i - fun_.amb_d()) = x(i);
Eigen::VectorXd result = fun_(x_k);
result.conservativeResize(this->cod_d());
- for (std::size_t i = fun_.cod_d(); i < this->cod_d(); ++i)
- result(i) = x_rest(i - fun_.cod_d());
+ for (std::size_t i = fun_.cod_d(); i < this->cod_d(); ++i) result(i) = x_rest(i - fun_.cod_d());
return result;
}
/** \brief Returns the domain (ambient) dimension. */
- virtual std::size_t amb_d() const override {return d_;}
+ virtual std::size_t amb_d() const override { return d_; }
/** \brief Returns the codomain dimension. */
- virtual std::size_t cod_d() const override {return d_-(fun_.amb_d() - fun_.cod_d());}
+ virtual std::size_t cod_d() const override { return d_ - (fun_.amb_d() - fun_.cod_d()); }
/** \brief Returns a point on the zero-set of the embedded function. */
virtual Eigen::VectorXd seed() const override {
Eigen::VectorXd result = fun_.seed();
result.conservativeResize(d_);
- for (std::size_t l = fun_.amb_d(); l < d_; ++l)
- result(l) = 0;
+ for (std::size_t l = fun_.amb_d(); l < d_; ++l) result(l) = 0;
return result;
}
- /**
+ /**
* \brief Constructor of the embedding function.
*
* @param[in] function The function to be embedded in higher dimension.
* @param[in] d Embedding dimension.
*/
- Embed_in_Rd(const Function_& function, std::size_t d) :
- fun_(function), d_(d) {
- }
+ Embed_in_Rd(const Function_& function, std::size_t d) : fun_(function), d_(d) {}
private:
Function_ fun_;
std::size_t d_;
};
-
-/**
+/**
* \brief Static constructor of an embedding function.
*
* @param[in] function The function to be embedded in higher dimension.
* @param[in] d Embedding dimension.
*
- * \tparam Function_ The function template parameter. Should be a model of
+ * \tparam Function_ The function template parameter. Should be a model of
* the concept FunctionForImplicitManifold.
*
* \ingroup coxeter_triangulation
@@ -99,8 +90,8 @@ Embed_in_Rd<Function_> make_embedding(const Function_& function, std::size_t d)
return Embed_in_Rd<Function_>(function, d);
}
-} // namespace coxeter_triangulation
+} // namespace coxeter_triangulation
-} // namespace Gudhi
+} // namespace Gudhi
#endif