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

Splines: /Users/enrico/Ricerca/develop/PINS/pins-mechatronix/LibSources/submodules/Splines/src/Splines/SplineBiCubic.hxx Source File
Splines
SplineBiCubic.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
20namespace Splines {
21
22 /*\
23 | ____ _ ____ _ _ ____ _ _ ____
24 | | __ )(_)/ ___| _| |__ (_) ___/ ___| _ __ | (_)_ __ ___| __ ) __ _ ___ ___
25 | | _ \| | | | | | | '_ \| |/ __\___ \| '_ \| | | '_ \ / _ \ _ \ / _` / __|/ _ \
26 | | |_) | | |__| |_| | |_) | | (__ ___) | |_) | | | | | | __/ |_) | (_| \__ \ __/
27 | |____/|_|\____\__,_|_.__/|_|\___|____/| .__/|_|_|_| |_|\___|____/ \__,_|___/\___|
28 | |_|
29 \*/
30
35 protected:
36
37 #ifndef DOXYGEN_SHOULD_SKIP_THIS
38
39 Malloc_real m_mem_bicubic;
40
41 real_type * m_DX{nullptr};
42 real_type * m_DY{nullptr};
43 real_type * m_DXY{nullptr};
44
45 using SplineSurf::m_nx;
46 using SplineSurf::m_ny;
47
48 using SplineSurf::m_X;
49 using SplineSurf::m_Y;
50 using SplineSurf::m_Z;
51
52 void load( integer i, integer j, real_type bili3[4][4] ) const;
53
54 #endif
55
56 public:
57
59 BiCubicSplineBase( string const & name = "BiCubicSplineBase" );
60
61 ~BiCubicSplineBase() override {}
62
67
72 Dx_node( integer i, integer j ) const
73 { return m_DX[size_t(this->ipos_C(i,j))]; }
74
79 Dy_node( integer i, integer j ) const
80 { return m_DY[size_t(this->ipos_C(i,j))]; }
81
86 Dxy_node( integer i, integer j ) const
87 { return m_DXY[size_t(this->ipos_C(i,j))]; }
88
90
98 real_type eval( real_type x, real_type y ) const override;
99
107 void D( real_type x, real_type y, real_type d[3] ) const override;
111 real_type Dx( real_type x, real_type y ) const override;
115 real_type Dy( real_type x, real_type y ) const override;
116
127 void DD( real_type x, real_type y, real_type dd[6] ) const override;
131 real_type Dxx( real_type x, real_type y ) const override;
135 real_type Dxy( real_type x, real_type y ) const override;
139 real_type Dyy( real_type x, real_type y ) const override;
141 };
142
143 /*\
144 | ____ _ ____ _ _ ____ _ _
145 | | __ )(_)/ ___| _| |__ (_) ___/ ___| _ __ | (_)_ __ ___
146 | | _ \| | | | | | | '_ \| |/ __\___ \| '_ \| | | '_ \ / _ \
147 | | |_) | | |__| |_| | |_) | | (__ ___) | |_) | | | | | | __/
148 | |____/|_|\____\__,_|_.__/|_|\___|____/| .__/|_|_|_| |_|\___|
149 | |_|
150 \*/
155 void make_spline() override;
156
157 using BiCubicSplineBase::m_mem_bicubic;
158 using BiCubicSplineBase::m_DX;
159 using BiCubicSplineBase::m_DY;
160 using BiCubicSplineBase::m_DXY;
161
162 public:
163
169 BiCubicSpline( string const & name = "BiCubicSpline" )
171 {}
172
176 ~BiCubicSpline() override {}
177
178 void write_to_stream( ostream_type & s ) const override;
179 char const * type_name() const override;
180
181 };
182
183}
184
185// EOF: SplineBiCubic.hxx
Definition SplineBiCubic.hxx:34
real_type Dxy(real_type x, real_type y) const override
Definition SplinesBivariate.cc:282
real_type Dxx(real_type x, real_type y) const override
Definition SplinesBivariate.cc:295
void D(real_type x, real_type y, real_type d[3]) const override
Definition SplinesBivariate.cc:321
real_type Dyy(real_type x, real_type y) const override
Definition SplinesBivariate.cc:308
real_type Dxy_node(integer i, integer j) const
Definition SplineBiCubic.hxx:86
real_type Dx(real_type x, real_type y) const override
Definition SplinesBivariate.cc:256
void DD(real_type x, real_type y, real_type dd[6]) const override
Definition SplinesBivariate.cc:338
BiCubicSplineBase(string const &name="BiCubicSplineBase")
spline constructor
Definition SplineBiCubic.cc:42
real_type Dy(real_type x, real_type y) const override
Definition SplinesBivariate.cc:269
real_type eval(real_type x, real_type y) const override
Definition SplinesBivariate.cc:243
real_type Dy_node(integer i, integer j) const
Definition SplineBiCubic.hxx:79
real_type Dx_node(integer i, integer j) const
Definition SplineBiCubic.hxx:72
Definition SplineBiCubic.hxx:154
void write_to_stream(ostream_type &s) const override
Definition SplineBiCubic.cc:75
BiCubicSpline(string const &name="BiCubicSpline")
Definition SplineBiCubic.hxx:169
~BiCubicSpline() override
Definition SplineBiCubic.hxx:176
char const * type_name() const override
Definition SplineBiCubic.cc:103
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