lsst.jointcal
g99855d9996+2c25dc6b28
Loading...
Searching...
No Matches
include
lsst
jointcal
Histo4d.h
Go to the documentation of this file.
1
// -*- LSST-C++ -*-
2
/*
3
* This file is part of jointcal.
4
*
5
* Developed for the LSST Data Management System.
6
* This product includes software developed by the LSST Project
7
* (https://www.lsst.org).
8
* See the COPYRIGHT file at the top-level directory of this distribution
9
* for details of code ownership.
10
*
11
* This program is free software: you can redistribute it and/or modify
12
* it under the terms of the GNU General Public License as published by
13
* the Free Software Foundation, either version 3 of the License, or
14
* (at your option) any later version.
15
*
16
* This program is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU General Public License for more details.
20
*
21
* You should have received a copy of the GNU General Public License
22
* along with this program. If not, see <https://www.gnu.org/licenses/>.
23
*/
24
25
#ifndef LSST_JOINTCAL_HISTO4D_H
26
#define LSST_JOINTCAL_HISTO4D_H
27
28
namespace
lsst
{
29
namespace
jointcal
{
30
33
class
SparseHisto4d
{
34
public
:
35
SparseHisto4d
() =
default
;
36
// obvious meanings. NEntries is used as the size of the primary allocation.
37
SparseHisto4d
(
int
n1
,
double
min1
,
double
max1
,
int
n2
,
double
min2
,
double
max2
,
38
int
n3
,
double
min3
,
double
max3
,
int
n4
,
double
min4
,
double
max4
,
39
int
nEntries
);
41
void
fill
(
const
double
x[4]);
43
void
fill
(
double
x1,
double
x2
,
double
x3
,
double
x4
);
45
int
maxBin
(
double
x[4]);
46
48
void
zeroBin
(
double
x[4]);
49
51
void
binLimits
(
const
double
x[4],
int
idim
,
double
&xMin,
double
&xMax)
const
;
52
54
int
getNEntries
()
const
{
return
_ndata; }
55
56
~SparseHisto4d
() =
default
;
57
58
// private:
59
int
code_value
(
const
double
x[4])
const
;
60
void
inverse_code
(
int
code,
double
x[4])
const
;
61
void
sort
();
62
void
print
()
const
;
63
64
private
:
65
std::vector<int>
_data;
66
int
_ndata{};
67
int
_dataSize{};
68
int
_n[4]{};
69
double
_minVal[4]{}, _maxVal[4]{};
70
double
_scale[4]{};
71
bool
_sorted{};
72
};
73
}
// namespace jointcal
74
}
// namespace lsst
75
76
#endif
// LSST_JOINTCAL_HISTO4D_H
lsst::jointcal::SparseHisto4d
A class to histogram in 4 dimensions.
Definition
Histo4d.h:33
lsst::jointcal::SparseHisto4d::SparseHisto4d
SparseHisto4d()=default
lsst::jointcal::SparseHisto4d::getNEntries
int getNEntries() const
Definition
Histo4d.h:54
lsst::jointcal::SparseHisto4d::zeroBin
void zeroBin(double x[4])
Definition
Histo4d.cc:136
lsst::jointcal::SparseHisto4d::print
void print() const
Definition
Histo4d.cc:159
lsst::jointcal::SparseHisto4d::sort
void sort()
Definition
Histo4d.cc:85
lsst::jointcal::SparseHisto4d::maxBin
int maxBin(double x[4])
Definition
Histo4d.cc:114
lsst::jointcal::SparseHisto4d::inverse_code
void inverse_code(int code, double x[4]) const
Definition
Histo4d.cc:77
lsst::jointcal::SparseHisto4d::~SparseHisto4d
~SparseHisto4d()=default
lsst::jointcal::SparseHisto4d::fill
void fill(const double x[4])
Definition
Histo4d.cc:92
lsst::jointcal::SparseHisto4d::binLimits
void binLimits(const double x[4], int idim, double &xMin, double &xMax) const
return the bin limits of dimension idim (0<=idim<4), around point X.
Definition
Histo4d.cc:151
lsst::jointcal::SparseHisto4d::code_value
int code_value(const double x[4]) const
Definition
Histo4d.cc:67
lsst::jointcal
Definition
Associations.h:50
lsst
std::unique_ptr
Generated on Sat Jan 6 2024 15:09:09 for lsst.jointcal by
1.10.0