Skip to content

Commit 90ebbe0

Browse files
committed
improved doxygen docs
1 parent aa6b890 commit 90ebbe0

File tree

4 files changed

+25
-15
lines changed

4 files changed

+25
-15
lines changed

doc/doxygen_postprocessing.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ def select(condition, *tags):
2323

2424
def is_detail(x):
2525
if x.text is not None:
26-
if "detail" in x.text:
26+
if "detail" in x.text.lower():
2727
return True
2828
m = re.match(r"(?:typename)? *([A-Za-z0-9_\:]+)", x.text)
2929
if m is not None:
30-
s = m.group(1)
30+
s = m.group(1).lower()
3131
if s.startswith("detail") or s.endswith("_impl"):
3232
x.text = s
3333
return True
@@ -103,6 +103,12 @@ def item_sorter(elem):
103103
else:
104104
log("removing unnamed template parameter from", parent.tag, name)
105105

106+
# hide macros with detail in the name
107+
for item in select(lambda x: "DETAIL" in x.get("name").split("_"), "macro"):
108+
parent = parent_map[item]
109+
parent.remove(item)
110+
log("removing macro", item.get("name"))
111+
106112
# replace any type with "detail" in its name with "unspecified"
107113
for item in select(is_detail, "type"):
108114
log("replacing", '"%s"' % item.text, 'with "unspecified"')

include/boost/histogram/axis/option.hpp

+4
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,11 @@ constexpr auto operator-(bitset<B1>, bitset<B2>) {
5757
@tparam Pos position of the bit in the set.
5858
*/
5959
template <unsigned Pos>
60+
#ifndef BOOST_HISTOGRAM_DOXYGEN_INVOKED
6061
using bit = bitset<(1 << Pos)>;
62+
#else
63+
struct bit;
64+
#endif
6165

6266
/// All options off.
6367
using none_t = bitset<0>;

include/boost/histogram/axis/traits.hpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -208,16 +208,16 @@ struct get_options;
208208
an axis type and represents compile-time boolean which is true or false, depending on
209209
whether the axis is inclusive or not.
210210
211+
An inclusive axis has a bin for every possible input value. In other words, all
212+
possible input values always end up in a valid cell and there is no need to keep track
213+
of input tuples that need to be discarded. A histogram which consists entirely of
214+
inclusive axes can be filled more efficiently, which can be a factor 2 faster.
215+
211216
An axis with underflow and overflow bins is always inclusive, but an axis may be
212217
inclusive under other conditions. The meta-function checks for the method `constexpr
213218
static bool inclusive()`, and uses the result. If this method is not present, it uses
214219
get_options<Axis> and checks whether the underflow and overflow bits are present.
215220
216-
An inclusive axis has a bin for every possible input value. A histogram which consists
217-
only of inclusive axes can be filled more efficiently, since input values always
218-
end up in a valid cell and there is no need to keep track of input tuples that need to
219-
be discarded.
220-
221221
@tparam Axis axis type
222222
*/
223223
template <class Axis>

include/boost/histogram/fwd.hpp

+8-8
Original file line numberDiff line numberDiff line change
@@ -150,14 +150,14 @@ class BOOST_ATTRIBUTE_NODISCARD histogram;
150150

151151
namespace detail {
152152

153-
/* Most of the histogram code is generic and works for any number of axes. Buffers with a
154-
* fixed maximum capacity are used in some places, which have a size equal to the rank of
155-
* a histogram. The buffers are statically allocated to improve performance, which means
156-
* that they need a preset maximum capacity. 32 seems like a safe upper limit for the rank
157-
* (you can nevertheless increase it here if necessary): the simplest non-trivial axis has
158-
* 2 bins; even if counters are used which need only a byte of storage per bin, 32 axes
159-
* would generate of 4 GB.
160-
*/
153+
/*
154+
Most of the histogram code is generic and works for any number of axes. Buffers with a
155+
fixed maximum capacity are used in some places, which have a size equal to the rank of
156+
a histogram. The buffers are allocated from the stack to improve performance, which
157+
means in C++ that they need a preset maximum capacity. 32 seems like a safe upper limit
158+
for the rank. You can nevertheless increase it with the compile-time flag
159+
BOOST_HISTOGRAM_DETAIL_AXES_LIMIT, if necessary.
160+
*/
161161
#ifndef BOOST_HISTOGRAM_DETAIL_AXES_LIMIT
162162
#define BOOST_HISTOGRAM_DETAIL_AXES_LIMIT 32
163163
#endif

0 commit comments

Comments
 (0)