summaryrefslogtreecommitdiff
path: root/src/Coxeter_triangulation/include/gudhi/Functions
diff options
context:
space:
mode:
Diffstat (limited to 'src/Coxeter_triangulation/include/gudhi/Functions')
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Cartesian_product.h6
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Constant_function.h6
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Embed_in_Rd.h6
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_Sm_in_Rd.h5
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_affine_plane_in_Rd.h5
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_chair_in_R3.h4
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_iron_in_R3.h6
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_lemniscate_revolution_in_R3.h10
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_moment_curve_in_Rd.h5
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_torus_in_R3.h6
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_whitney_umbrella_in_R3.h5
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Linear_transformation.h5
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Negation.h7
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/PL_approximation.h5
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Translate.h5
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/random_orthogonal_matrix.h17
16 files changed, 77 insertions, 26 deletions
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Cartesian_product.h b/src/Coxeter_triangulation/include/gudhi/Functions/Cartesian_product.h
index cda966f8..0a6f264d 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Cartesian_product.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Cartesian_product.h
@@ -13,9 +13,11 @@
#include <cstdlib>
#include <tuple>
-#include <utility>
+#include <type_traits> // for std::enable_if
+#include <cstdlib> // for std::size_t
#include <gudhi/Functions/Function.h>
+
#include <Eigen/Dense>
namespace Gudhi {
@@ -139,7 +141,7 @@ struct Cartesian_product : public Function {
cod_d_ = get_cod_d(function_tuple_);
}
-private:
+ private:
std::tuple<Functions...> function_tuple_;
std::size_t amb_d_, cod_d_;
};
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Constant_function.h b/src/Coxeter_triangulation/include/gudhi/Functions/Constant_function.h
index e5b78b04..c03a2a24 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Constant_function.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Constant_function.h
@@ -11,7 +11,10 @@
#ifndef FUNCTIONS_CONSTANT_FUNCTION_H_
#define FUNCTIONS_CONSTANT_FUNCTION_H_
+#include <cstdlib> // for std::size_t
+
#include <gudhi/Functions/Function.h>
+
#include <Eigen/Dense>
namespace Gudhi {
@@ -57,7 +60,8 @@ struct Constant_function : public Function {
*/
Constant_function(std::size_t d, std::size_t k, const Eigen::VectorXd& value)
: d_(d), k_(k), value_(value) {}
-
+
+ private:
std::size_t d_, k_;
Eigen::VectorXd value_;
};
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 230c89d8..5ebeac75 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Embed_in_Rd.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Embed_in_Rd.h
@@ -11,10 +11,10 @@
#ifndef FUNCTIONS_EMBED_IN_RD_H_
#define FUNCTIONS_EMBED_IN_RD_H_
-#include <cstdlib>
-#include <random>
+#include <cstdlib> // for std::size_t
#include <gudhi/Functions/Function.h>
+
#include <Eigen/Dense>
@@ -76,6 +76,8 @@ struct Embed_in_Rd : public Function {
Embed_in_Rd(const Function_& function, std::size_t d) :
fun_(function), d_(d) {
}
+
+ private:
Function_ fun_;
std::size_t d_;
};
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Function_Sm_in_Rd.h b/src/Coxeter_triangulation/include/gudhi/Functions/Function_Sm_in_Rd.h
index f3ae577a..7ebb7fc8 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Function_Sm_in_Rd.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Function_Sm_in_Rd.h
@@ -11,7 +11,10 @@
#ifndef FUNCTIONS_FUNCTION_SM_IN_RD_H_
#define FUNCTIONS_FUNCTION_SM_IN_RD_H_
+#include <cstdlib> // for std::size_t
+
#include <gudhi/Functions/Function.h>
+
#include <Eigen/Dense>
namespace Gudhi {
@@ -115,7 +118,7 @@ struct Function_Sm_in_Rd: public Function {
: Function_Sm_in_Rd(rhs.r_, rhs.m_, rhs.d_, rhs.center_) {}
-protected:
+ private:
std::size_t m_, k_, d_;
double r_;
Eigen::VectorXd center_;
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Function_affine_plane_in_Rd.h b/src/Coxeter_triangulation/include/gudhi/Functions/Function_affine_plane_in_Rd.h
index 75fb9322..1e950d4e 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Function_affine_plane_in_Rd.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Function_affine_plane_in_Rd.h
@@ -11,7 +11,10 @@
#ifndef FUNCTIONS_FUNCTION_AFFINE_PLANE_IN_RD_H_
#define FUNCTIONS_FUNCTION_AFFINE_PLANE_IN_RD_H_
+#include <cstdlib> // for std::size_t
+
#include <gudhi/Functions/Function.h>
+
#include <Eigen/Dense>
namespace Gudhi {
@@ -85,7 +88,7 @@ struct Function_affine_plane_in_Rd : public Function {
normal_matrix_.colwise().normalize();
}
-protected:
+private:
Eigen::MatrixXd normal_matrix_;
std::size_t d_, k_, m_;
Eigen::VectorXd off_;
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Function_chair_in_R3.h b/src/Coxeter_triangulation/include/gudhi/Functions/Function_chair_in_R3.h
index 1649ef9c..fe16d37b 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Function_chair_in_R3.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Function_chair_in_R3.h
@@ -11,9 +11,11 @@
#ifndef FUNCTIONS_FUNCTION_CHAIR_IN_R3_H_
#define FUNCTIONS_FUNCTION_CHAIR_IN_R3_H_
-#include <cstdlib>
+#include <cstdlib> // for std::size_t
+#include <cmath> // for std::pow
#include <gudhi/Functions/Function.h>
+
#include <Eigen/Dense>
namespace Gudhi {
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Function_iron_in_R3.h b/src/Coxeter_triangulation/include/gudhi/Functions/Function_iron_in_R3.h
index 8a438bf4..fa5e4e66 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Function_iron_in_R3.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Function_iron_in_R3.h
@@ -11,7 +11,11 @@
#ifndef FUNCTIONS_FUNCTION_IRON_IN_R3_H_
#define FUNCTIONS_FUNCTION_IRON_IN_R3_H_
+#include <cstdlib> // for std::size_t
+#include <cmath> // for std::pow
+
#include <gudhi/Functions/Function.h>
+
#include <Eigen/Dense>
namespace Gudhi {
@@ -59,7 +63,7 @@ struct Function_iron_in_R3 : public Function {
Function_iron_in_R3(Eigen::Vector3d off = Eigen::Vector3d::Zero()) :
off_(off) {}
-protected:
+ private:
Eigen::Vector3d off_;
};
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Function_lemniscate_revolution_in_R3.h b/src/Coxeter_triangulation/include/gudhi/Functions/Function_lemniscate_revolution_in_R3.h
index 4f08614f..b715932b 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Function_lemniscate_revolution_in_R3.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Function_lemniscate_revolution_in_R3.h
@@ -11,7 +11,11 @@
#ifndef FUNCTIONS_FUNCTION_LEMNISCATE_REVOLUTION_IN_R3_H_
#define FUNCTIONS_FUNCTION_LEMNISCATE_REVOLUTION_IN_R3_H_
+#include <cstdlib> // for std::size_t
+#include <cmath> // for std::sqrt
+
#include <gudhi/Functions/Function.h>
+
#include <Eigen/Dense>
namespace Gudhi {
@@ -51,7 +55,7 @@ struct Function_lemniscate_revolution_in_R3 : public Function {
* See the method seed2() for the other point.
*/
virtual Eigen::VectorXd seed() const override {
- Eigen::Vector3d result(sqrt(2*a_)+off_[0], off_[1], off_[2]);
+ Eigen::Vector3d result(std::sqrt(2*a_)+off_[0], off_[1], off_[2]);
return result;
}
@@ -60,7 +64,7 @@ struct Function_lemniscate_revolution_in_R3 : public Function {
* See the method seed() for the other point.
*/
Eigen::VectorXd seed2() const {
- Eigen::Vector3d result(-sqrt(2*a_)+off_[0], off_[1], off_[2]);
+ Eigen::Vector3d result(-std::sqrt(2*a_)+off_[0], off_[1], off_[2]);
return result;
}
@@ -75,7 +79,7 @@ struct Function_lemniscate_revolution_in_R3 : public Function {
Eigen::Vector3d off = Eigen::Vector3d::Zero())
: a_(a), off_(off) {}
-protected:
+ private:
double a_;
Eigen::Vector3d off_;
};
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Function_moment_curve_in_Rd.h b/src/Coxeter_triangulation/include/gudhi/Functions/Function_moment_curve_in_Rd.h
index f7588225..eecbc914 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Function_moment_curve_in_Rd.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Function_moment_curve_in_Rd.h
@@ -11,7 +11,10 @@
#ifndef FUNCTIONS_FUNCTION_MOMENT_CURVE_IN_RD_H_
#define FUNCTIONS_FUNCTION_MOMENT_CURVE_IN_RD_H_
+#include <cstdlib> // for std::size_t
+
#include <gudhi/Functions/Function.h>
+
#include <Eigen/Dense>
namespace Gudhi {
@@ -73,7 +76,7 @@ struct Function_moment_curve_in_Rd : public Function {
Eigen::VectorXd& offset)
: m_(1), k_(d-1), d_(d), r_(r), off_(offset) {}
-protected:
+ private:
std::size_t m_, k_, d_;
double r_;
Eigen::VectorXd off_;
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Function_torus_in_R3.h b/src/Coxeter_triangulation/include/gudhi/Functions/Function_torus_in_R3.h
index af0675b0..c756c1a6 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Function_torus_in_R3.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Function_torus_in_R3.h
@@ -11,7 +11,11 @@
#ifndef FUNCTIONS_FUNCTION_TORUS_IN_R3_H_
#define FUNCTIONS_FUNCTION_TORUS_IN_R3_H_
+#include <cstdlib> // for std::size_t
+#include <cmath> // for std::sqrt
+
#include <gudhi/Functions/Function.h>
+
#include <Eigen/Dense>
namespace Gudhi {
@@ -62,7 +66,7 @@ struct Function_torus_in_R3 : public Function {
Eigen::Vector3d off = Eigen::Vector3d::Zero()) :
R_(R), r_(r), off_(off) {}
-protected:
+ private:
double R_, r_;
Eigen::Vector3d off_;
};
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Function_whitney_umbrella_in_R3.h b/src/Coxeter_triangulation/include/gudhi/Functions/Function_whitney_umbrella_in_R3.h
index 3c729878..09306561 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Function_whitney_umbrella_in_R3.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Function_whitney_umbrella_in_R3.h
@@ -11,7 +11,10 @@
#ifndef FUNCTIONS_FUNCTION_WHITNEY_UMBRELLA_IN_R3_H_
#define FUNCTIONS_FUNCTION_WHITNEY_UMBRELLA_IN_R3_H_
+#include <cstdlib> // for std::size_t
+
#include <gudhi/Functions/Function.h>
+
#include <Eigen/Dense>
namespace Gudhi {
@@ -69,6 +72,8 @@ struct Function_whitney_umbrella_in_R3 : public Function {
*/
Function_whitney_umbrella_in_R3(Eigen::Vector3d off = Eigen::Vector3d::Zero())
: off_(off) {}
+
+ private:
Eigen::Vector3d off_;
};
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Linear_transformation.h b/src/Coxeter_triangulation/include/gudhi/Functions/Linear_transformation.h
index 7d36cf84..a5d17fe0 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Linear_transformation.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Linear_transformation.h
@@ -11,9 +11,10 @@
#ifndef FUNCTIONS_LINEAR_TRANSFORMATION_H_
#define FUNCTIONS_LINEAR_TRANSFORMATION_H_
-#include <cstdlib>
+#include <cstdlib> // for std::size_t
#include <gudhi/Functions/Function.h>
+
#include <Eigen/Dense>
namespace Gudhi {
@@ -65,7 +66,7 @@ struct Linear_transformation : public Function {
fun_(function), matrix_(matrix) {
}
-private:
+ private:
Function_ fun_;
Eigen::MatrixXd matrix_;
};
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Negation.h b/src/Coxeter_triangulation/include/gudhi/Functions/Negation.h
index e3ddecdb..3439dbad 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Negation.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Negation.h
@@ -11,9 +11,10 @@
#ifndef FUNCTIONS_NEGATION_H_
#define FUNCTIONS_NEGATION_H_
-#include <cstdlib>
+#include <cstdlib> // for std::size_t
#include <gudhi/Functions/Function.h>
+
#include <Eigen/Dense>
namespace Gudhi {
@@ -62,6 +63,8 @@ struct Negation : public Function {
Negation(const Function_& function) :
fun_(function) {
}
+
+ private:
Function_ fun_;
};
@@ -78,7 +81,7 @@ struct Negation : public Function {
* \ingroup coxeter_triangulation
*/
template <class Function_>
-Negation<Function_> negation(const Function_& function) {
+Negation<Function_> negation(const Function_& function) {
return Negation<Function_>(function);
}
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/PL_approximation.h b/src/Coxeter_triangulation/include/gudhi/Functions/PL_approximation.h
index abfad697..ab2b9294 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/PL_approximation.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/PL_approximation.h
@@ -11,9 +11,10 @@
#ifndef FUNCTIONS_PL_APPROXIMATION_H_
#define FUNCTIONS_PL_APPROXIMATION_H_
-#include <cstdlib>
+#include <cstdlib> // for std::size_t
#include <gudhi/Functions/Function.h>
+
#include <Eigen/Dense>
namespace Gudhi {
@@ -90,7 +91,7 @@ struct PL_approximation : public Function {
PL_approximation(const Function_& function, const Triangulation_& triangulation)
: fun_(function), tr_(triangulation) {}
-private:
+ private:
Function_ fun_;
Triangulation_ tr_;
};
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Translate.h b/src/Coxeter_triangulation/include/gudhi/Functions/Translate.h
index 90f09a0b..b3f53fe0 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Translate.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Translate.h
@@ -11,9 +11,10 @@
#ifndef FUNCTIONS_TRANSLATE_H_
#define FUNCTIONS_TRANSLATE_H_
-#include <cstdlib>
+#include <cstdlib> // for std::size_t
#include <gudhi/Functions/Function.h>
+
#include <Eigen/Dense>
namespace Gudhi {
@@ -65,6 +66,8 @@ struct Translate : public Function {
Translate(const Function_& function, const Eigen::VectorXd& off) :
fun_(function), off_(off) {
}
+
+ private:
Function_ fun_;
Eigen::VectorXd off_;
};
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/random_orthogonal_matrix.h b/src/Coxeter_triangulation/include/gudhi/Functions/random_orthogonal_matrix.h
index e1bbaea3..34fc1a67 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/random_orthogonal_matrix.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/random_orthogonal_matrix.h
@@ -11,8 +11,11 @@
#ifndef FUNCTIONS_RANDOM_ORTHOGONAL_MATRIX_H_
#define FUNCTIONS_RANDOM_ORTHOGONAL_MATRIX_H_
-#include <cstdlib>
-#include <random>
+#include <cstdlib> // for std::size_t
+#include <cmath> // for std::cos, std::sin
+#include <random> // for std::uniform_real_distribution, std::random_device
+
+#include <gudhi/math.h>
#include <Eigen/Dense>
#include <Eigen/Sparse>
@@ -41,10 +44,14 @@ Eigen::MatrixXd random_orthogonal_matrix(std::size_t d) {
if (d == 1)
return Eigen::VectorXd::Constant(1, 1.0);
if (d == 2) {
- double X = 2 * 3.14159265358;
- double alpha = static_cast <float> (rand()) / (static_cast <float> (RAND_MAX/X));
+ // 0. < alpha < 2 Pi
+ std::uniform_real_distribution<double> unif(0., 2 * Gudhi::PI);
+ std::random_device rand_dev;
+ std::mt19937 rand_engine(rand_dev());
+ double alpha = unif(rand_engine);
+
Eigen::Matrix2d rot;
- rot << cos(alpha), -sin(alpha), sin(alpha), cos(alpha);
+ rot << std::cos(alpha), -std::sin(alpha), std::sin(alpha), cos(alpha);
return rot;
}
Eigen::MatrixXd low_dim_rot = random_orthogonal_matrix(d-1);