/Users/enrico/Ricerca/develop/PINS/pins-mechatronix/LibSources/submodules/Splines/src/Splines/SplineBiQuintic.hxx Source FileΒΆ

Splines: /Users/enrico/Ricerca/develop/PINS/pins-mechatronix/LibSources/submodules/Splines/src/Splines/SplineBiQuintic.hxx Source File
Splines
SplineBiQuintic.hxx
1/*--------------------------------------------------------------------------*\
2 | |
3 | Copyright (C) 2016 |
4 | |
5 | , __ , __ |
6 | /|/ \ /|/ \ |
7 | | __/ _ ,_ | __/ _ ,_ |
8 | | \|/ / | | | | \|/ / | | | |
9 | |(__/|__/ |_/ \_/|/|(__/|__/ |_/ \_/|/ |
10 | /| /| |
11 | \| \| |
12 | |
13 | Enrico Bertolazzi |
14 | Dipartimento di Ingegneria Industriale |
15 | Universita` degli Studi di Trento |
16 | email: enrico.bertolazzi@unitn.it |
17 | |
18\*--------------------------------------------------------------------------*/
19
20/*\
21 | ____ _ ___ _ _ _ ____ _ _ ____
22 | | __ )(_)/ _ \ _ _(_)_ __ | |_(_) ___/ ___| _ __ | (_)_ __ ___| __ ) __ _ ___ ___
23 | | _ \| | | | | | | | | '_ \| __| |/ __\___ \| '_ \| | | '_ \ / _ \ _ \ / _` / __|/ _ \
24 | | |_) | | |_| | |_| | | | | | |_| | (__ ___) | |_) | | | | | | __/ |_) | (_| \__ \ __/
25 | |____/|_|\__\_\\__,_|_|_| |_|\__|_|\___|____/| .__/|_|_|_| |_|\___|____/ \__,_|___/\___|
26 | |_|
27\*/
28
29namespace Splines {
30
33 protected:
34 #ifndef DOXYGEN_SHOULD_SKIP_THIS
35
36 Malloc_real mem;
37
38 real_type * m_DX{nullptr};
39 real_type * m_DXX{nullptr};
40 real_type * m_DY{nullptr};
41 real_type * m_DYY{nullptr};
42 real_type * m_DXY{nullptr};
43 real_type * m_DXYY{nullptr};
44 real_type * m_DXXY{nullptr};
45 real_type * m_DXXYY{nullptr};
46 void load( integer i, integer j, real_type bili5[6][6] ) const;
47
48 #endif
49
50 public:
51
53 BiQuinticSplineBase( string const & name = "Spline" )
54 : SplineSurf( name )
55 , mem("BiQuinticSplineBase")
56 {}
57
58 ~BiQuinticSplineBase() override
59 { mem.free(); }
60
65
70 Dx_node( integer i, integer j ) const
71 { return m_DX[size_t(this->ipos_C(i,j))]; }
72
77 Dy_node( integer i, integer j ) const
78 { return m_DY[size_t(this->ipos_C(i,j))]; }
79
84 Dxx_node( integer i, integer j ) const
85 { return m_DXX[size_t(this->ipos_C(i,j))]; }
86
91 Dyy_node( integer i, integer j ) const
92 { return m_DYY[size_t(this->ipos_C(i,j))]; }
93
98 Dxy_node( integer i, integer j ) const
99 { return m_DXY[size_t(this->ipos_C(i,j))]; }
101
109 real_type eval( real_type x, real_type y ) const override;
110
118 void D( real_type x, real_type y, real_type d[3] ) const override;
122 real_type Dx( real_type x, real_type y ) const override;
126 real_type Dy( real_type x, real_type y ) const override;
127
138 void DD( real_type x, real_type y, real_type dd[6] ) const override;
142 real_type Dxx( real_type x, real_type y ) const override;
146 real_type Dxy( real_type x, real_type y ) const override;
150 real_type Dyy( real_type x, real_type y ) const override;
151
153 };
154
155 /*\
156 | ____ _ ___ _ _ _ ____ _ _
157 | | __ )(_)/ _ \ _ _(_)_ __ | |_(_) ___/ ___| _ __ | (_)_ __ ___
158 | | _ \| | | | | | | | | '_ \| __| |/ __\___ \| '_ \| | | '_ \ / _ \
159 | | |_) | | |_| | |_| | | | | | |_| | (__ ___) | |_) | | | | | | __/
160 | |____/|_|\__\_\\__,_|_|_| |_|\__|_|\___|____/| .__/|_|_|_| |_|\___|
161 | |_|
162 \*/
165 void make_spline() override;
166 public:
167
173 BiQuinticSpline( string const & name = "BiQuinticSpline" )
175 {}
176
180 ~BiQuinticSpline() override {}
181
182 void write_to_stream( ostream_type & s ) const override;
183 char const * type_name() const override;
184
185 };
186
187}
188
189// EOF: SplineBiQuintic.hxx
Bi-quintic spline base class.
Definition SplineBiQuintic.hxx:32
void DD(real_type x, real_type y, real_type dd[6]) const override
Definition SplinesBivariate.cc:522
real_type Dy(real_type x, real_type y) const override
Definition SplinesBivariate.cc:453
real_type Dx(real_type x, real_type y) const override
Definition SplinesBivariate.cc:440
void D(real_type x, real_type y, real_type d[3]) const override
Definition SplinesBivariate.cc:505
real_type Dxx(real_type x, real_type y) const override
Definition SplinesBivariate.cc:479
BiQuinticSplineBase(string const &name="Spline")
spline constructor
Definition SplineBiQuintic.hxx:53
real_type Dxx_node(integer i, integer j) const
Definition SplineBiQuintic.hxx:84
real_type Dx_node(integer i, integer j) const
Definition SplineBiQuintic.hxx:70
real_type Dxy_node(integer i, integer j) const
Definition SplineBiQuintic.hxx:98
real_type Dyy(real_type x, real_type y) const override
Definition SplinesBivariate.cc:492
real_type Dy_node(integer i, integer j) const
Definition SplineBiQuintic.hxx:77
real_type Dyy_node(integer i, integer j) const
Definition SplineBiQuintic.hxx:91
real_type Dxy(real_type x, real_type y) const override
Definition SplinesBivariate.cc:466
real_type eval(real_type x, real_type y) const override
Definition SplinesBivariate.cc:427
cubic spline base class
Definition SplineBiQuintic.hxx:164
BiQuinticSpline(string const &name="BiQuinticSpline")
Definition SplineBiQuintic.hxx:173
void write_to_stream(ostream_type &s) const override
Definition SplineBiQuintic.cc:108
~BiQuinticSpline() override
Definition SplineBiQuintic.hxx:180
char const * type_name() const override
Definition SplineBiQuintic.cc:136
Definition Splines.hh:1139
string const & name() const
Definition Splines.hh:1313
Definition SplineAkima.cc:50
int integer
Signed integer type for splines.
Definition Splines.hh:58
double real_type
Floating point type for splines.
Definition Splines.hh:57