Chemical Data Processing Library C++ API - Version 1.1.1
CDPL
Util
BitSet.hpp
Go to the documentation of this file.
1
/*
2
* BitSet.hpp
3
*
4
* This file is part of the Chemical Data Processing Toolkit
5
*
6
* Copyright (C) 2003 Thomas Seidel <thomas.seidel@univie.ac.at>
7
*
8
* This library is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU Lesser General Public
10
* License as published by the Free Software Foundation; either
11
* version 2 of the License, or (at your option) any later version.
12
*
13
* This library 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 GNU
16
* Lesser General Public License for more details.
17
*
18
* You should have received a copy of the GNU Lesser General Public License
19
* along with this library; see the file COPYING. If not, write to
20
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21
* Boston, MA 02111-1307, USA.
22
*/
23
29
#ifndef CDPL_UTIL_BITSET_HPP
30
#define CDPL_UTIL_BITSET_HPP
31
32
#include <boost/dynamic_bitset.hpp>
33
34
35
namespace
CDPL
36
{
37
38
namespace
Util
39
{
40
46
typedef
boost::dynamic_bitset<>
BitSet
;
47
58
inline
void
fold
(
BitSet
& bs, std::size_t num_times)
59
{
60
BitSet
tmp;
61
62
for
(std::size_t i = 0, new_num_bits = bs.size() >> 1; i < num_times; i++, new_num_bits >>= 1) {
63
tmp = bs;
64
tmp >>= new_num_bits;
65
66
bs |= tmp;
67
bs.resize(new_num_bits);
68
}
69
}
70
}
// namespace Util
71
}
// namespace CDPL
72
73
#endif // CDPL_UTIL_BITSET_HPP
CDPL::Util::fold
void fold(BitSet &bs, std::size_t num_times)
Folds the bitset bs the specified number of times.
Definition:
BitSet.hpp:58
CDPL::Util::BitSet
boost::dynamic_bitset BitSet
A dynamic bitset class.
Definition:
BitSet.hpp:46
CDPL
The namespace of the Chemical Data Processing Library.
Generated by
1.8.20