35LOG_LOGGER _log =
LOG_GET(
"lsst.jointcal.Histo4d");
47 LOGLS_WARN(_log,
"Cannot hold a 4D histo with more than " <<
INT_MAX <<
" values.");
61 for (
int i = 0;
i < 4; ++
i) _scale[
i] = _n[
i] / (_maxVal[
i] - _minVal[
i]);
72 index = index * _n[
idim] +
i;
78 for (
int i = 3;
i >= 0; --
i) {
79 int bin = code % _n[
i];
97 if (_ndata == _dataSize) {
101 _data[_ndata++] = code;
116 if (_ndata == 0)
return 0;
121 for (
int i = 1;
i < _ndata; ++
i) {
141 while ((_data[start] < code) && start < _ndata) start++;
144 while (
end < _ndata && _data[start] == _data[
end])
end++;
145 int shift =
end - start;
147 for (
int i = start;
i <
lastShift; ++
i) _data[
i] = _data[
i + shift];
160 for (
int i = 0;
i < _ndata; ++
i)
#define LOGLS_WARN(logger, message)
void zeroBin(double x[4])
void inverse_code(int code, double x[4]) const
void fill(const double x[4])
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.
int code_value(const double x[4]) const