Alexandria
2.19
Please provide a description of the project.
MathUtils
MathUtils
interpolation
interpolation.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2012-2021 Euclid Science Ground Segment
3
*
4
* This library is free software; you can redistribute it and/or modify it under
5
* the terms of the GNU Lesser General Public License as published by the Free
6
* Software Foundation; either version 3.0 of the License, or (at your option)
7
* any later version.
8
*
9
* This library is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12
* details.
13
*
14
* You should have received a copy of the GNU Lesser General Public License
15
* along with this library; if not, write to the Free Software Foundation, Inc.,
16
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
25
#ifndef INTERPOLATION_H
26
#define INTERPOLATION_H
27
28
#include <memory>
29
#include <vector>
30
31
#include "
ElementsKernel/Exception.h
"
32
#include "
ElementsKernel/Export.h
"
33
34
#include "
MathUtils/function/Function.h
"
35
#include "
XYDataset/XYDataset.h
"
36
37
namespace
Euclid
{
38
namespace
MathUtils {
39
41
enum class
InterpolationType
{
LINEAR
,
CUBIC_SPLINE
};
42
43
struct
InterpolationException
:
public
Elements::Exception
{
44
using
Elements::Exception::Exception
;
45
};
46
61
ELEMENTS_API
std::unique_ptr<Function>
interpolate
(
const
std::vector<double>
& x,
const
std::vector<double>
& y,
62
InterpolationType
type,
bool
extrapolate =
false
);
63
75
ELEMENTS_API
std::unique_ptr<Function>
interpolate
(
const
Euclid::XYDataset::XYDataset
& dataset,
InterpolationType
type,
76
bool
extrapolate =
false
);
77
78
}
// namespace MathUtils
79
}
// end of namespace Euclid
80
81
#endif
/* INTERPOLATION_H */
Exception.h
Export.h
Function.h
XYDataset.h
Elements::Exception
Elements::Exception::Exception
Exception(ExitCode e=ExitCode::NOT_OK)
Euclid::XYDataset::XYDataset
This module provides an interface for accessing two dimensional datasets (pairs of (X,...
Definition:
XYDataset.h:59
ELEMENTS_API
#define ELEMENTS_API
Euclid::MathUtils::interpolate
ELEMENTS_API std::unique_ptr< Function > interpolate(const std::vector< double > &x, const std::vector< double > &y, InterpolationType type, bool extrapolate=false)
Definition:
interpolation.cpp:40
Euclid::MathUtils::InterpolationType
InterpolationType
Enumeration of the different supported interpolation types.
Definition:
interpolation.h:41
Euclid::MathUtils::InterpolationType::LINEAR
@ LINEAR
Euclid::MathUtils::InterpolationType::CUBIC_SPLINE
@ CUBIC_SPLINE
Euclid
Definition:
InstOrRefHolder.h:29
Euclid::MathUtils::InterpolationException
Definition:
interpolation.h:43
std::unique_ptr
std::vector< double >
Generated by
1.9.1