summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorROUVREAU Vincent <vincent.rouvreau@inria.fr>2020-09-21 16:19:42 +0200
committerROUVREAU Vincent <vincent.rouvreau@inria.fr>2020-09-21 16:19:42 +0200
commit4ebdf2b588017f2ac4a07753c2b1c2a6a569e576 (patch)
tree80c17ae768463dff0b496eea99a87fda9b68071b
parent46a2d96fd8230458a799622d027227c1dd5c49ab (diff)
struct Function should be abstract and virtual functions signatures
-rw-r--r--src/Coxeter_triangulation/example/manifold_tracing_custom_function.cpp8
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Cartesian_product.h8
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Constant_function.h8
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Embed_in_Rd.h8
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function.h10
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_Sm_in_Rd.h8
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_affine_plane_in_Rd.h8
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_chair_in_R3.h8
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_iron_in_R3.h8
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_lemniscate_revolution_in_R3.h8
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_moment_curve_in_Rd.h8
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_torus_in_R3.h8
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Function_whitney_umbrella_in_R3.h8
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Linear_transformation.h8
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Negation.h8
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/PL_approximation.h8
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Functions/Translate.h8
17 files changed, 69 insertions, 69 deletions
diff --git a/src/Coxeter_triangulation/example/manifold_tracing_custom_function.cpp b/src/Coxeter_triangulation/example/manifold_tracing_custom_function.cpp
index 7a89a32f..95f63b4f 100644
--- a/src/Coxeter_triangulation/example/manifold_tracing_custom_function.cpp
+++ b/src/Coxeter_triangulation/example/manifold_tracing_custom_function.cpp
@@ -21,7 +21,7 @@ using namespace Gudhi::coxeter_triangulation;
*/
struct Function_surface_on_CP2_in_R4 : public Function {
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
// The real and imaginary parts of the variables x and y
double xr = p(0), xi = p(1), yr = p(2), yi = p(3);
Eigen::VectorXd result(cod_d());
@@ -42,10 +42,10 @@ struct Function_surface_on_CP2_in_R4 : public Function {
return result;
}
- std::size_t amb_d() const {return 4;};
- std::size_t cod_d() const {return 2;};
+ virtual std::size_t amb_d() const override {return 4;};
+ virtual std::size_t cod_d() const override {return 2;};
- Eigen::VectorXd seed() const {
+ virtual Eigen::VectorXd seed() const override {
Eigen::VectorXd result = Eigen::VectorXd::Zero(4);
return result;
}
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Cartesian_product.h b/src/Coxeter_triangulation/include/gudhi/Functions/Cartesian_product.h
index 43198b89..9fd0d69b 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Cartesian_product.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Cartesian_product.h
@@ -110,20 +110,20 @@ struct Cartesian_product : 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.
*/
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
Eigen::VectorXd result(cod_d_);
get_value(function_tuple_, p, result, 0, 0);
return result;
}
/** \brief Returns the domain (ambient) dimension. */
- std::size_t amb_d() const {return amb_d_;}
+ virtual std::size_t amb_d() const override {return amb_d_;}
/** \brief Returns the codomain dimension. */
- std::size_t cod_d() const {return cod_d_;}
+ virtual std::size_t cod_d() const override {return cod_d_;}
/** \brief Returns a point on the zero-set. */
- Eigen::VectorXd seed() const {
+ virtual Eigen::VectorXd seed() const override {
Eigen::VectorXd result(amb_d_);
get_seed(function_tuple_, result, 0);
return result;
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Constant_function.h b/src/Coxeter_triangulation/include/gudhi/Functions/Constant_function.h
index ea354fac..b0c7a167 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Constant_function.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Constant_function.h
@@ -32,19 +32,19 @@ struct Constant_function : public Function {
/** \brief Value of the function at a specified point. The value is constant.
* @param[in] p The input point. The dimension needs to coincide with the ambient dimension.
*/
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
Eigen::VectorXd result = value_;
return result;
}
/** \brief Returns the domain dimension. Same as the ambient dimension of the sphere. */
- std::size_t amb_d() const {return d_;};
+ virtual std::size_t amb_d() const override {return d_;};
/** \brief Returns the codomain dimension. Same as the codimension of the sphere. */
- std::size_t cod_d() const {return k_;};
+ virtual std::size_t cod_d() const override {return k_;};
/** \brief No seed point is available. Throws an exception on evocation. */
- Eigen::VectorXd seed() const {
+ virtual Eigen::VectorXd seed() const override {
throw "Seed invoked on a constant function.\n";
}
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 9476944b..c2419783 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Embed_in_Rd.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Embed_in_Rd.h
@@ -40,7 +40,7 @@ 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.
*/
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ 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)
@@ -55,13 +55,13 @@ struct Embed_in_Rd : public Function {
}
/** \brief Returns the domain (ambient) dimension. */
- std::size_t amb_d() const {return d_;}
+ virtual std::size_t amb_d() const override {return d_;}
/** \brief Returns the codomain dimension. */
- std::size_t cod_d() const {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. */
- Eigen::VectorXd seed() const {
+ 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)
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Function.h b/src/Coxeter_triangulation/include/gudhi/Functions/Function.h
index dbcb0142..afafbb2f 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Function.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Function.h
@@ -31,16 +31,16 @@ struct Function {
/** \brief Virtual method for the value of the function at a specified point.
* @param[in] p The input point.
*/
- virtual Eigen::VectorXd evaluate(const Eigen::VectorXd& p) const {return Eigen::VectorXd(0);}
-
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const = 0;
+
/** \brief Virtual method for the domain dimension. */
- virtual std::size_t amb_d() const {return 0;};
+ virtual std::size_t amb_d() const = 0;
/** \brief Virtual method for the codomain dimension. */
- virtual std::size_t cod_d() const {return 0;};
+ virtual std::size_t cod_d() const = 0;
/** \brief Virtual method for the seed point. */
- virtual Eigen::VectorXd seed() const {return Eigen::VectorXd(0);}
+ virtual Eigen::VectorXd seed() const = 0;
/** \brief Virtual destructor. */
virtual ~Function() {}
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 a7d4a965..d8b3a780 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
@@ -32,7 +32,7 @@ struct Function_Sm_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.
*/
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
Eigen::VectorXd x = p;
for (std::size_t i = 0; i < d_; ++i)
x(i) -= center_[i];
@@ -46,13 +46,13 @@ struct Function_Sm_in_Rd: public Function {
}
/** \brief Returns the domain dimension. Same as the ambient dimension of the sphere. */
- std::size_t amb_d() const {return d_;};
+ virtual std::size_t amb_d() const override {return d_;};
/** \brief Returns the codomain dimension. Same as the codimension of the sphere. */
- std::size_t cod_d() const {return k_;};
+ virtual std::size_t cod_d() const override {return k_;};
/** \brief Returns a point on the sphere. */
- Eigen::VectorXd seed() const {
+ virtual Eigen::VectorXd seed() const override {
Eigen::VectorXd result = Eigen::VectorXd::Zero(d_);
result(0) += r_;
for (std::size_t i = 0; i < d_; ++i)
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 cb3af848..3af0b14c 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
@@ -33,19 +33,19 @@ struct Function_affine_plane_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.
*/
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
Eigen::VectorXd result = normal_matrix_.transpose() * (p - off_);
return result;
}
/** \brief Returns the domain dimension. Same as the ambient dimension of the sphere. */
- std::size_t amb_d() const {return d_;};
+ virtual std::size_t amb_d() const override {return d_;};
/** \brief Returns the codomain dimension. Same as the codimension of the sphere. */
- std::size_t cod_d() const {return k_;};
+ virtual std::size_t cod_d() const override {return k_;};
/** \brief Returns a point on the affine plane. */
- Eigen::VectorXd seed() const {
+ virtual Eigen::VectorXd seed() const override {
Eigen::VectorXd result = off_;
return result;
}
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 2a76e631..26b62731 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
@@ -35,7 +35,7 @@ struct Function_chair_in_R3 : 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.
*/
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
double x = p(0)-off_[0], y = p(1)-off_[1], z = p(2)-off_[2];
Eigen::VectorXd result(cod_d());
result(0) = std::pow(x*x + y*y + z*z - a_*k_*k_, 2) - b_*((z-k_)*(z-k_) - 2*x*x)*((z+k_)*(z+k_) - 2*y*y);
@@ -43,13 +43,13 @@ struct Function_chair_in_R3 : public Function {
}
/** \brief Returns the domain (ambient) dimension. */
- std::size_t amb_d() const {return 3;}
+ virtual std::size_t amb_d() const override {return 3;}
/** \brief Returns the codomain dimension. */
- std::size_t cod_d() const {return 1;}
+ virtual std::size_t cod_d() const override {return 1;}
/** \brief Returns a point on the surface. */
- Eigen::VectorXd seed() const {
+ virtual Eigen::VectorXd seed() const override {
double t1 = a_-b_;
double discr = t1*t1 - (1.0 - b_)*(a_*a_ - b_);
double z0 = k_*std::sqrt((t1+std::sqrt(discr))/(1-b_));
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 af323c94..ad12a29f 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
@@ -33,7 +33,7 @@ struct Function_iron_in_R3 : 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.
*/
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
double x = p(0), y = p(1), z = p(2);
Eigen::VectorXd result(cod_d());
result(0) = - std::pow(x,6)/300. - std::pow(y,6)/300. - std::pow(z,6)/300. + x*y*y*z/2.1 + y*y + std::pow(z-2, 4) - 1;
@@ -41,13 +41,13 @@ struct Function_iron_in_R3 : public Function {
}
/** \brief Returns the domain (ambient) dimension. */
- std::size_t amb_d() const {return 3;};
+ virtual std::size_t amb_d() const override {return 3;};
/** \brief Returns the codomain dimension. */
- std::size_t cod_d() const {return 1;};
+ virtual std::size_t cod_d() const override {return 1;};
/** \brief Returns a point on the surface. */
- Eigen::VectorXd seed() const {
+ virtual Eigen::VectorXd seed() const override {
Eigen::Vector3d result(std::pow(4500, 1./6), 0, 0);
return result;
}
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 cd03a0a5..67dcf0b1 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
@@ -33,7 +33,7 @@ struct Function_lemniscate_revolution_in_R3 : 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.
*/
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
double x = p(0)-off_[0], y = p(1)-off_[1], z = p(2)-off_[2];
Eigen::VectorXd result(cod_d());
double x2 = x*x, y2 = y*y, z2 = z*z, a2 = a_*a_;
@@ -43,16 +43,16 @@ struct Function_lemniscate_revolution_in_R3 : public Function {
}
/** \brief Returns the (ambient) domain dimension.*/
- std::size_t amb_d() const {return 3;};
+ virtual std::size_t amb_d() const override {return 3;};
/** \brief Returns the codomain dimension. */
- std::size_t cod_d() const {return 1;};
+ virtual std::size_t cod_d() const override {return 1;};
/** \brief Returns a point on the surface. This seed point is only one of
* two necessary seed points for the manifold tracing algorithm.
* See the method seed2() for the other point.
*/
- Eigen::VectorXd seed() const {
+ virtual Eigen::VectorXd seed() const override {
Eigen::Vector3d result(sqrt(2*a_)+off_[0], off_[1], off_[2]);
return result;
}
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 91eb016b..e27d35ae 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
@@ -32,7 +32,7 @@ struct Function_moment_curve_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.
*/
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
Eigen::VectorXd result(k_);
for (std::size_t i = 1; i < d_; ++i)
result(i-1) = p(i) - p(0) * p(i-1);
@@ -40,13 +40,13 @@ struct Function_moment_curve_in_Rd : public Function {
}
/** \brief Returns the domain (ambient) dimension.. */
- std::size_t amb_d() const {return d_;};
+ virtual std::size_t amb_d() const override {return d_;};
/** \brief Returns the codomain dimension. */
- std::size_t cod_d() const {return k_;};
+ virtual std::size_t cod_d() const override {return k_;};
/** \brief Returns a point on the moment curve. */
- Eigen::VectorXd seed() const {
+ virtual Eigen::VectorXd seed() const override {
Eigen::VectorXd result = Eigen::VectorXd::Zero(d_);
return result;
}
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 3cda2518..8fd93a2a 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
@@ -33,7 +33,7 @@ struct Function_torus_in_R3 : 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.
*/
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
double x = p(0)-off_[0], y = p(1)-off_[1], z = p(2)-off_[2];
Eigen::VectorXd result(cod_d());
result(0) = (z*z + (std::sqrt(x*x + y*y) - r_)*(std::sqrt(x*x + y*y) - r_) - R_*R_);
@@ -41,13 +41,13 @@ struct Function_torus_in_R3 : public Function {
}
/** \brief Returns the domain (ambient) dimension. */
- std::size_t amb_d() const {return 3;};
+ virtual std::size_t amb_d() const override {return 3;};
/** \brief Returns the codomain dimension. */
- std::size_t cod_d() const {return 1;};
+ virtual std::size_t cod_d() const override {return 1;};
/** \brief Returns a point on the surface. */
- Eigen::VectorXd seed() const {
+ virtual Eigen::VectorXd seed() const override {
Eigen::Vector3d result(R_ + r_ +off_[0], off_[1], off_[2]);
return result;
}
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 3d825f8f..10ff53f3 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
@@ -33,7 +33,7 @@ struct Function_whitney_umbrella_in_R3 : 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.
*/
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
double x = p(0)-off_[0], y = p(1)-off_[1], z = p(2)-off_[2];
Eigen::VectorXd result(cod_d());
result(0) = x*x - y*y*z;
@@ -41,16 +41,16 @@ struct Function_whitney_umbrella_in_R3 : public Function {
}
/** \brief Returns the (ambient) domain dimension.*/
- std::size_t amb_d() const {return 3;};
+ virtual std::size_t amb_d() const override {return 3;};
/** \brief Returns the codomain dimension. */
- std::size_t cod_d() const {return 1;};
+ virtual std::size_t cod_d() const override {return 1;};
/** \brief Returns a point on the surface. This seed point is only one of
* two necessary seed points for the manifold tracing algorithm.
* See the method seed2() for the other point.
*/
- Eigen::VectorXd seed() const {
+ virtual Eigen::VectorXd seed() const override {
Eigen::Vector3d result(1+off_[0], 1+off_[1], 1+off_[2]);
return result;
}
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Linear_transformation.h b/src/Coxeter_triangulation/include/gudhi/Functions/Linear_transformation.h
index 4cb5ca84..5f7485e7 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Linear_transformation.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Linear_transformation.h
@@ -38,19 +38,19 @@ struct Linear_transformation : 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.
*/
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
Eigen::VectorXd result = fun_(matrix_.householderQr().solve(p));
return result;
}
/** \brief Returns the domain (ambient) dimension. */
- std::size_t amb_d() const {return fun_.amb_d();}
+ virtual std::size_t amb_d() const override {return fun_.amb_d();}
/** \brief Returns the codomain dimension. */
- std::size_t cod_d() const {return fun_.cod_d();}
+ virtual std::size_t cod_d() const override {return fun_.cod_d();}
/** \brief Returns a point on the zero-set. */
- Eigen::VectorXd seed() const {
+ virtual Eigen::VectorXd seed() const override {
Eigen::VectorXd result = fun_.seed();
result = matrix_ * result;
return result;
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Negation.h b/src/Coxeter_triangulation/include/gudhi/Functions/Negation.h
index 6b7feff5..e28d9ddb 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Negation.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Negation.h
@@ -39,19 +39,19 @@ struct Negation : 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.
*/
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
Eigen::VectorXd result = -fun_(p);
return result;
}
/** \brief Returns the domain (ambient) dimension. */
- std::size_t amb_d() const {return fun_.amb_d();}
+ virtual std::size_t amb_d() const override {return fun_.amb_d();}
/** \brief Returns the codomain dimension. */
- std::size_t cod_d() const {return fun_.cod_d();}
+ virtual std::size_t cod_d() const override {return fun_.cod_d();}
/** \brief Returns a point on the zero-set. */
- Eigen::VectorXd seed() const {
+ virtual Eigen::VectorXd seed() const override {
Eigen::VectorXd result = fun_.seed();
return result;
}
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/PL_approximation.h b/src/Coxeter_triangulation/include/gudhi/Functions/PL_approximation.h
index 25c8a139..e161f697 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/PL_approximation.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/PL_approximation.h
@@ -42,7 +42,7 @@ struct PL_approximation : 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.
*/
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
std::size_t cod_d = this->cod_d();
std::size_t amb_d = this->amb_d();
auto s = tr_.locate_point(p);
@@ -71,13 +71,13 @@ struct PL_approximation : public Function {
}
/** \brief Returns the domain (ambient) dimension. */
- std::size_t amb_d() const {return fun_.amb_d();}
+ virtual std::size_t amb_d() const override {return fun_.amb_d();}
/** \brief Returns the codomain dimension. */
- std::size_t cod_d() const {return fun_.cod_d();}
+ virtual std::size_t cod_d() const override {return fun_.cod_d();}
/** \brief Returns a point on the zero-set. */
- Eigen::VectorXd seed() const {
+ virtual Eigen::VectorXd seed() const override {
// TODO: not finished. Should use an oracle.
return Eigen::VectorXd(amb_d());
}
diff --git a/src/Coxeter_triangulation/include/gudhi/Functions/Translate.h b/src/Coxeter_triangulation/include/gudhi/Functions/Translate.h
index 6edac28c..2236ea31 100644
--- a/src/Coxeter_triangulation/include/gudhi/Functions/Translate.h
+++ b/src/Coxeter_triangulation/include/gudhi/Functions/Translate.h
@@ -39,19 +39,19 @@ struct Translate : 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.
*/
- Eigen::VectorXd operator()(const Eigen::VectorXd& p) const {
+ virtual Eigen::VectorXd operator()(const Eigen::VectorXd& p) const override {
Eigen::VectorXd result = fun_(p - off_);
return result;
}
/** \brief Returns the domain (ambient) dimension. */
- std::size_t amb_d() const {return fun_.amb_d();}
+ virtual std::size_t amb_d() const override {return fun_.amb_d();}
/** \brief Returns the codomain dimension. */
- std::size_t cod_d() const {return fun_.cod_d();}
+ virtual std::size_t cod_d() const override {return fun_.cod_d();}
/** \brief Returns a point on the zero-set. */
- Eigen::VectorXd seed() const {
+ virtual Eigen::VectorXd seed() const override {
Eigen::VectorXd result = fun_.seed();
result += off_;
return result;