FWCore
Utilities
src
Adler32Calculator.cc
Go to the documentation of this file.
1
#include "
FWCore/Utilities/interface/Adler32Calculator.h
"
2
3
namespace
cms
{
4
5
//-------------------------------------------------------
6
// the following is adapted from
7
// http://en.wikipedia.org/wiki/Adler-32
8
//-------------------------------------------------------
9
10
void
Adler32
(
char
const
*
data
,
size_t
len, uint32_t&
a
, uint32_t&
b
) {
11
/* data: Pointer to the data to be summed; len is in bytes */
12
13
#define MOD_ADLER 65521
14
15
unsigned
char
const
* ptr = static_cast<unsigned char const*>(static_cast<void const*>(
data
));
16
while
(len > 0) {
17
size_t
tlen = (len > 5552 ? 5552 : len);
18
len -= tlen;
19
do
{
20
a
+= *ptr++;
21
b
+=
a
;
22
}
while
(--tlen);
23
24
a
%=
MOD_ADLER
;
25
b
%=
MOD_ADLER
;
26
}
27
28
#undef MOD_ADLER
29
}
30
31
uint32_t
Adler32
(
char
const
*
data
,
size_t
len) {
32
/* data: Pointer to the data to be summed; len is in bytes */
33
uint32_t
a
= 1,
b
= 0;
34
Adler32
(
data
, len,
a
,
b
);
35
return
(
b
<< 16) |
a
;
36
}
37
}
// namespace cms
MOD_ADLER
#define MOD_ADLER
cms::Adler32
void Adler32(char const *data, size_t len, uint32_t &a, uint32_t &b)
Definition:
Adler32Calculator.cc:10
b
double b
Definition:
hdecay.h:118
a
double a
Definition:
hdecay.h:119
Adler32Calculator.h
data
char data[epos_bytes_allocation]
Definition:
EPOS_Wrapper.h:79
cms
Namespace of DDCMS conversion namespace.
Definition:
ProducerAnalyzer.cc:21
Generated for CMSSW Reference Manual by
1.8.16