SplineFwd.h
Go to the documentation of this file.
1 // This file is part of Eigen, a lightweight C++ template library
2 // for linear algebra.
3 //
4 // Copyright (C) 20010-2011 Hauke Heibel <hauke.heibel@gmail.com>
5 //
6 // This Source Code Form is subject to the terms of the Mozilla
7 // Public License v. 2.0. If a copy of the MPL was not distributed
8 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 
10 #ifndef EIGEN_SPLINES_FWD_H
11 #define EIGEN_SPLINES_FWD_H
12 
13 #include "./InternalHeaderCheck.h"
14 #include "../../../../Eigen/Core"
15 
16 namespace Eigen
17 {
18  template <typename Scalar, int Dim, int Degree = Dynamic> class Spline;
19 
20  template < typename SplineType, int DerivativeOrder = Dynamic > struct SplineTraits {};
21 
26  template <typename Scalar_, int Dim_, int Degree_>
27  struct SplineTraits< Spline<Scalar_, Dim_, Degree_>, Dynamic >
28  {
29  typedef Scalar_ Scalar;
30  enum { Dimension = Dim_ };
31  enum { Degree = Degree_ };
32 
33  enum { OrderAtCompileTime = Degree_==Dynamic ? Dynamic : Degree_+1 };
34  enum { NumOfDerivativesAtCompileTime = OrderAtCompileTime };
35 
36  enum { DerivativeMemoryLayout = Dimension==1 ? RowMajor : ColMajor };
37 
40 
43 
46 
49 
52 
55 
58  };
59 
66  template < typename Scalar_, int Dim_, int Degree_, int _DerivativeOrder >
67  struct SplineTraits< Spline<Scalar_, Dim_, Degree_>, _DerivativeOrder > : public SplineTraits< Spline<Scalar_, Dim_, Degree_> >
68  {
69  enum { OrderAtCompileTime = Degree_==Dynamic ? Dynamic : Degree_+1 };
70  enum { NumOfDerivativesAtCompileTime = _DerivativeOrder==Dynamic ? Dynamic : _DerivativeOrder+1 };
71 
72  enum { DerivativeMemoryLayout = Dim_==1 ? RowMajor : ColMajor };
73 
76 
79  };
80 
83 
86 
89 
92 }
93 
94 #endif // EIGEN_SPLINES_FWD_H
A class representing multi-dimensional spline curves.
Definition: Spline.h:38
: TensorContractionSycl.h, provides various tensor contraction kernel for SYCL backend
Spline< float, 2 > Spline2f
2D float B-spline with dynamic degree.
Definition: SplineFwd.h:82
Spline< double, 3 > Spline3d
3D double B-spline with dynamic degree.
Definition: SplineFwd.h:91
Spline< float, 3 > Spline3f
3D float B-spline with dynamic degree.
Definition: SplineFwd.h:85
Spline< double, 2 > Spline2d
2D double B-spline with dynamic degree.
Definition: SplineFwd.h:88
const int Dynamic
Array< Scalar, 1, OrderAtCompileTime > BasisVectorType
The data type used to store non-zero basis functions.
Definition: SplineFwd.h:39
Array< Scalar, Dimension, Dynamic > ControlPointVectorType
The data type representing the spline's control points.
Definition: SplineFwd.h:57
Array< Scalar, 1, Dynamic > ParameterVectorType
The data type used to store parameter vectors.
Definition: SplineFwd.h:54
Array< Scalar, 1, Dynamic > KnotVectorType
The data type used to store knot vectors.
Definition: SplineFwd.h:51
Array< Scalar, Dynamic, Dynamic, RowMajor, NumOfDerivativesAtCompileTime, OrderAtCompileTime > BasisDerivativeType
The data type used to store the values of the basis function derivatives.
Definition: SplineFwd.h:42
Array< Scalar, Dimension, Dynamic, DerivativeMemoryLayout, Dimension, NumOfDerivativesAtCompileTime > DerivativeType
The data type used to store the spline's derivative values.
Definition: SplineFwd.h:45
Array< Scalar, Dimension, 1 > PointType
The point type the spline is representing.
Definition: SplineFwd.h:48
Array< Scalar_, Dim_, Dynamic, DerivativeMemoryLayout, Dim_, NumOfDerivativesAtCompileTime > DerivativeType
The data type used to store the spline's derivative values.
Definition: SplineFwd.h:78
Array< Scalar_, Dynamic, Dynamic, RowMajor, NumOfDerivativesAtCompileTime, OrderAtCompileTime > BasisDerivativeType
The data type used to store the values of the basis function derivatives.
Definition: SplineFwd.h:75