File Generator.h

Copyright

This code is licensed under the 3-clause BSD license.

Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group.

See LICENSE.txt for details.

namespace Scine

This header file contains functions that allow for common notation for common things that can be done at a different degree of derivatives.

This header contains alias definitions defining which classes to use for the different degrees of derivatives.

namespace Utils
namespace BSplines
class Generator
#include <Generator.h>

Basis class for BSpline generators. NB: We do not take a “const Eigen::MatrixXd&” since this would create a temporary when using it with Eigen::VectorXd.

Subclassed by Scine::Utils::BSplines::ControlPolygonGenerator, Scine::Utils::BSplines::FixedEndsPenalizedLeastSquaresGenerator, Scine::Utils::BSplines::InterpolationGenerator, Scine::Utils::BSplines::LooseEndsPenalizedLeastSquaresGenerator

Public Functions

Generator(const Eigen::Ref<const Eigen::MatrixXd> &dataPoints, int splineDegree)
Generator(const Eigen::Ref<const Eigen::MatrixXd> &dataPoints, int numberOfControlPoints, int splineDegree)
virtual ~Generator()
BSpline generateBSpline()

Protected Attributes

const Eigen::Ref<const Eigen::MatrixXd> &dataPoints_
int p_
int dim_
int m_
int n_
Eigen::VectorXd U_
Eigen::VectorXd uBar_
Eigen::MatrixXd controlPoints_

Private Functions

virtual Eigen::VectorXd generateKnotVector() = 0
virtual Eigen::MatrixXd generateControlPoints() = 0