File InterpolationGenerator.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 InterpolationGenerator : public Scine::Utils::BSplines::Generator
#include <InterpolationGenerator.h>

Generates a B-spline curve interpolating the data points. (see the NURBS book by Piegl 1997)

Public Functions

InterpolationGenerator(const Eigen::Ref<const Eigen::MatrixXd> &dataPoints, unsigned degree = 3, bool uniformKnotVector = false)

Parameters
  • dataPoints: number rows = number of points, number of cols = dimension

Private Functions

Eigen::VectorXd generateKnotVector()
Eigen::MatrixXd generateControlPoints()
Eigen::MatrixXd generateControlPointMatrix()
void calculateCoefficientMatrix()
void initializeSolver()

Private Members

bool uniformKnotVector_
Eigen::MatrixXd Nmat_
Eigen::JacobiSVD<Eigen::MatrixXd> svdOfNmat_