lsst.afw
g3a5ebb7d8a+28b83bf6a5
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
afw
math
traits.h
Go to the documentation of this file.
1
/*
2
* LSST Data Management System
3
* Copyright 2008, 2009, 2010 LSST Corporation.
4
*
5
* This product includes software developed by the
6
* LSST Project (http://www.lsst.org/).
7
*
8
* This program is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation, either version 3 of the License, or
11
* (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the LSST License Statement and
19
* the GNU General Public License along with this program. If not,
20
* see <http://www.lsstcorp.org/LegalNotices/>.
21
*/
22
23
#if !defined(LSST_AFW_MATH_KERNEL_TRAITS_H)
24
#define LSST_AFW_MATH_KERNEL_TRAITS_H 1
25
26
#include "boost/mpl/bool.hpp"
27
/*
28
* Traits to describe kernels, allowing for compile-time optimisation
29
*/
30
namespace
lsst
{
31
namespace
afw
{
32
namespace
math
{
33
class
AnalyticKernel
;
34
36
template
<
typename
KernelT>
37
struct
is_analyticKernel
{
38
BOOST_STATIC_CONSTANT
(
bool
, value =
false
);
39
};
40
41
template
<
typename
KernelT>
42
struct
is_analyticKernel
<KernelT *> :
public
is_analyticKernel<KernelT>
{};
43
44
template
<
typename
KernelT>
45
struct
is_analyticKernel
<
std
::shared_ptr<KernelT> > :
public
is_analyticKernel
<KernelT> {};
46
47
template
<>
48
struct
is_analyticKernel
<
AnalyticKernel
> {
49
BOOST_STATIC_CONSTANT
(
bool
, value =
true
);
50
};
51
53
struct
generic_kernel_tag
{
54
generic_kernel_tag
() {}
55
};
56
struct
deltafunction_kernel_tag
:
public
generic_kernel_tag
{
57
deltafunction_kernel_tag
() {}
58
};
59
61
template
<
typename
KernelT>
62
struct
kernel_traits
{
63
using
kernel_fill_factor
=
typename
KernelT::kernel_fill_factor;
64
};
65
66
extern
generic_kernel_tag
generic_kernel_tag_
;
67
extern
deltafunction_kernel_tag
deltafunction_kernel_tag_
;
68
}
// namespace math
69
}
// namespace afw
70
}
// namespace lsst
71
72
#endif
lsst::afw::math::AnalyticKernel
A kernel described by a function.
Definition
Kernel.h:535
lsst::afw::math
Definition
statistics.dox:6
lsst::afw::math::deltafunction_kernel_tag_
deltafunction_kernel_tag deltafunction_kernel_tag_
Used as default value in argument lists.
Definition
Kernel.cc:43
lsst::afw::math::generic_kernel_tag_
generic_kernel_tag generic_kernel_tag_
Used as default value in argument lists.
Definition
Kernel.cc:42
lsst::afw
Definition
imageAlgorithm.dox:1
lsst
std
STL namespace.
lsst::afw::math::deltafunction_kernel_tag
Kernel has only one non-zero pixel.
Definition
traits.h:56
lsst::afw::math::deltafunction_kernel_tag::deltafunction_kernel_tag
deltafunction_kernel_tag()
Definition
traits.h:57
lsst::afw::math::generic_kernel_tag
Tags carrying information about KernelsKernel with no special properties.
Definition
traits.h:53
lsst::afw::math::generic_kernel_tag::generic_kernel_tag
generic_kernel_tag()
Definition
traits.h:54
lsst::afw::math::is_analyticKernel< AnalyticKernel >::BOOST_STATIC_CONSTANT
BOOST_STATIC_CONSTANT(bool, value=true)
lsst::afw::math::is_analyticKernel
traits class to determine if a Kernel is represented as an analytic function
Definition
traits.h:37
lsst::afw::math::is_analyticKernel::BOOST_STATIC_CONSTANT
BOOST_STATIC_CONSTANT(bool, value=false)
lsst::afw::math::kernel_traits
template trait class with information about Kernels
Definition
traits.h:62
lsst::afw::math::kernel_traits::kernel_fill_factor
typename KernelT::kernel_fill_factor kernel_fill_factor
Fraction of non-zero pixels.
Definition
traits.h:63
Generated on
for lsst.afw by
1.17.0