G+Smo  24.08.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsBoehm.h File Reference

Boehm's algorithm for knot insertion. More...

+ Include dependency graph for gsBoehm.h:

Go to the source code of this file.

Namespaces

 gismo
 The G+Smo namespace, containing all definitions for the library.
 
 gismo::bspline
 This namespace contains implementation of B-spline related algorithms.
 

Functions

template<short_t d>
void buildCoeffsStrides (const gsVector< index_t, d > &size_of_coefs, gsVector< index_t, d > &strides)
 
template<typename T , typename KnotVectorType >
void computeAlpha (std::vector< std::vector< T > > &alpha, const KnotVectorType &knots, T value, int r, int k, int p, int s)
 
template<typename T , typename KnotVectorType , typename ValIt , typename newKnotsType >
void computeTensorAlpha (std::vector< std::vector< T > > &alpha, newKnotsType &nknots, const KnotVectorType &knots, ValIt valBegin, ValIt valEnd, bool sparse=false)
 
void correctNewStride (gsVector< unsigned > &new_str, const gsVector< unsigned > &str, const int direction, const int r)
 
int getIndex (const gsVector< unsigned > &stride, const gsVector< int > &position)
 
void getLastIndex (const gsVector< unsigned > &stride, const unsigned number_of_points, gsVector< int > &last_point)
 
template<short_t d>
void getLastIndexLocal (const gsVector< index_t, d > &size_of_coef, gsVector< index_t, d > &last_point)
 
template<class T , class KnotVectorType , class Mat >
void gsBoehm (KnotVectorType &knots, Mat &coefs, T val, int r=1, bool update_knots=true)
 Performs insertion of multiple knot on "knots" and coefficients "coefs".
 
template<class KnotVectorType , class Mat , class ValIt >
void gsBoehmRefine (KnotVectorType &knots, Mat &coefs, int p, ValIt valBegin, ValIt valEnd, bool update_knots=true)
 
template<class T , class KnotVectorType , class Mat >
void gsBoehmSingle (KnotVectorType &knots, Mat &coefs, T val, bool update_knots=true)
 Performs knot insertion once on "knots" and coefficients "coefs".
 
template<class T , class iter , class Mat >
void gsBoehmSingle (iter knot, Mat &coefs, int p, T val)
 
template<typename T , typename KnotVectorType , typename Mat >
void gsTensorBoehm (KnotVectorType &knots, Mat &coefs, T val, int direction, gsVector< unsigned > str, int r=1, bool update_knots=true)
 
template<typename KnotVectorType , typename Mat , typename ValIt >
void gsTensorBoehmRefine (KnotVectorType &knots, Mat &coefs, int direction, gsVector< unsigned > str, ValIt valBegin, ValIt valEnd, bool update_knots=true)
 
template<short_t d, typename KnotVectorType , typename Mat , typename ValIt >
void gsTensorBoehmRefineLocal (KnotVectorType &knots, const unsigned index, Mat &coefs, gsVector< index_t, d > &nmb_of_coefs, const gsVector< index_t, d > &act_size_of_coefs, const gsVector< index_t, d > &size_of_coefs, const unsigned direction, ValIt valBegin, ValIt valEnd, const bool update_knots)
 Local refinement algorithm. More...
 
template<short_t d, typename T , typename KnotVectorType , typename Mat >
void gsTensorInsertKnotDegreeTimes (const KnotVectorType &knots, Mat &coefs, const gsVector< index_t, d > &size_of_coefs, T val, const unsigned direction, gsVector< index_t, d > &start, gsVector< index_t, d > &end)
 Inserts knot val such that multiplicity of a val in knot vector is equal degree. More...
 
unsigned numberOfIterations (const gsVector< index_t > &nmb_of_coefs, const unsigned direction)
 

Detailed Description

Boehm's algorithm for knot insertion.

This file is part of the G+Smo library.

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

Author(s): J. Speh