Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / histogram / doc / html / histogram / concepts.html
index 939ffb6..95e5efe 100644 (file)
                   in the reduced axis. If <code class="computeroutput"><span class="identifier">n</span></code>
                   is larger than 1, <code class="computeroutput"><span class="identifier">n</span></code>
                   adjacent bins are merged into one larger cell. If this constructor
-                  is not implemented, <code class="computeroutput"><a class="link" href="../boost/histogram/algorithm/reduce_idm45525156086992.html" title="Function template reduce">boost::histogram::algorithm::reduce</a></code>
+                  is not implemented, <code class="computeroutput"><a class="link" href="../boost/histogram/algorithm/reduce_idm45414524960512.html" title="Function template reduce">boost::histogram::algorithm::reduce</a></code>
                   throws an exception on an attempt to reduce this axis.
                 </p>
               </td>
 <tr>
 <td>
                 <p>
+                  <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">inclusive</span><span class="special">()</span></code>
+                </p>
+              </td>
+<td>
+                <p>
+                  <code class="computeroutput"><span class="keyword">bool</span></code>
+                </p>
+              </td>
+<td>
+                <p>
+                  Static constexpr member function which returns true, if the axis
+                  has a bin for every possible input value, and false otherwise.
+                  Faster code can be generated if all axes types in a histogram are
+                  inclusive. An axis with underflow and overflow bins is always inclusive.
+                  An axis may be inclusive even if underflow or overflow bins are
+                  missing. For example, a category axis is inclusive if it has an
+                  overflow bin or if it is growing.
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
                   <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">metadata</span><span class="special">()</span></code>
                 </p>
               </td>
 <tr>
 <td>
                 <p>
-                  <code class="computeroutput"><span class="identifier">ar</span> <span class="special">&amp;</span>
-                  <span class="identifier">a</span></code>
+                  <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">serialize</span><span class="special">(</span><span class="identifier">ar</span><span class="special">,</span>
+                  <span class="identifier">n</span><span class="special">)</span></code>
                 </p>
               </td>
 <td>
 <td>
                 <p>
                   <code class="computeroutput"><span class="identifier">ar</span></code> is a value of
-                  an archive with Boost.Serialization semantics. Serializes <code class="computeroutput"><span class="identifier">a</span></code> to the archive or loads serialized
-                  state from the archive.
+                  an archive with Boost.Serialization semantics and <code class="computeroutput"><span class="identifier">n</span></code> is an unsigned integral value.
+                  Saves to the archive or loads serialized state from the archive.
+                  The version number <code class="computeroutput"><span class="identifier">n</span></code>
+                  is the stored version when the object is loaded or the current
+                  version when the object is saved.
                 </p>
               </td>
 </tr>
 <tbody><tr>
 <td>
                 <p>
-                  <code class="computeroutput"><span class="identifier">ar</span> <span class="special">&amp;</span>
-                  <span class="identifier">t</span></code>
+                  <code class="computeroutput"><span class="identifier">t</span><span class="special">.</span><span class="identifier">serialize</span><span class="special">(</span><span class="identifier">ar</span><span class="special">,</span>
+                  <span class="identifier">n</span><span class="special">)</span></code>
                 </p>
               </td>
 <td>
               </td>
 <td>
                 <p>
-                  Serializes <code class="computeroutput"><span class="identifier">a</span></code> to
-                  the archive or loads serialized state from the archive. Can be
-                  omitted if <code class="computeroutput"><span class="identifier">T</span></code> is
-                  stateless.
+                  <code class="computeroutput"><span class="identifier">ar</span></code> is a value of
+                  an archive with Boost.Serialization semantics and <code class="computeroutput"><span class="identifier">n</span></code> is an unsigned integral value.
+                  Saves to the archive or loads serialized state from the archive.
+                  The version number <code class="computeroutput"><span class="identifier">n</span></code>
+                  is the stored version when the object is loaded or the current
+                  version when the object is saved.
                 </p>
               </td>
 </tr></tbody>
 <tr>
 <td>
                 <p>
-                  <code class="computeroutput"><span class="identifier">ar</span> <span class="special">&amp;</span>
-                  <span class="identifier">s</span></code>
+                  <code class="computeroutput"><span class="identifier">s</span><span class="special">.</span><span class="identifier">serialize</span><span class="special">(</span><span class="identifier">ar</span><span class="special">,</span>
+                  <span class="identifier">n</span><span class="special">)</span></code>
                 </p>
               </td>
 <td>
               </td>
 <td>
                 <p>
-                  Serializes <code class="computeroutput"><span class="identifier">s</span></code> to
-                  the archive or loads serialized state from the archive.
+                  <code class="computeroutput"><span class="identifier">ar</span></code> is a value of
+                  an archive with Boost.Serialization semantics and <code class="computeroutput"><span class="identifier">n</span></code> is an unsigned integral value.
+                  Saves to the archive or loads serialized state from the archive.
+                  The version number <code class="computeroutput"><span class="identifier">n</span></code>
+                  is the stored version when the object is loaded or the current
+                  version when the object is saved.
                 </p>
               </td>
 </tr>
           </li>
 <li class="listitem">
             <code class="computeroutput"><span class="identifier">ts</span><span class="special">...</span></code>
-            is a pack of values
+            is a pack of values of arbitrary types
           </li>
 </ul></div>
 <div class="table">
 <td>
                 <p>
                   Either a call operator accepting a fixed number of arguments must
-                  be implemented, or the pre-increment operator.
+                  be implemented, or the pre-increment operator. The call operator
+                  may not be templated and not overloaded, except to support weights
+                  as described under optional features.
                 </p>
               </td>
 </tr>
             <code class="computeroutput"><span class="identifier">a</span></code> and <code class="computeroutput"><span class="identifier">b</span></code>
             are values of type <code class="computeroutput"><span class="identifier">A</span></code>
           </li>
+<li class="listitem">
+            <code class="computeroutput"><span class="identifier">w</span></code> is a value of type
+            <code class="computeroutput"><a class="link" href="../boost/histogram/weight_type.html" title="Struct template weight_type">boost::histogram::weight_type</a></code>,
+            where <code class="computeroutput"><span class="identifier">T</span></code> is a number type
+          </li>
+<li class="listitem">
+            <code class="computeroutput"><span class="identifier">ts</span><span class="special">...</span></code>
+            is a pack of values of arbitrary types
+          </li>
+<li class="listitem">
+            <code class="computeroutput"><span class="identifier">v</span></code> is a number value (integral
+            or floating point)
+          </li>
 </ul></div>
 <div class="table">
 <a name="histogram.concepts.Accumulator.valid_expressions0"></a><p class="title"><b>Table&#160;1.10.&#160;Valid expressions</b></p>
 <td>
                 <p>
                   <code class="computeroutput"><span class="identifier">a</span> <span class="special">+=</span>
+                  <span class="identifier">v</span></code> or <code class="computeroutput"><span class="identifier">a</span><span class="special">(</span><span class="identifier">w</span><span class="special">,</span> <span class="identifier">ts</span><span class="special">...)</span></code>
+                </p>
+              </td>
+<td>
+              </td>
+<td>
+                <p>
+                  Does a weighted fill of the accumulator. Use this to implement
+                  weight support for an accumulator that is normally filled with
+                  <code class="computeroutput"><span class="special">++</span><span class="identifier">a</span></code>
+                  or <code class="computeroutput"><span class="identifier">a</span><span class="special">(</span><span class="identifier">ts</span><span class="special">...)</span></code>,
+                  respectively. Only the corresponding matching form may be implemented:
+                  <code class="computeroutput"><span class="identifier">a</span> <span class="special">+=</span>
+                  <span class="identifier">v</span></code> for <code class="computeroutput"><span class="special">++</span><span class="identifier">a</span></code>, <code class="computeroutput"><span class="identifier">a</span><span class="special">(</span><span class="identifier">w</span><span class="special">,</span> <span class="identifier">ts</span><span class="special">...)</span></code> for <code class="computeroutput"><span class="identifier">a</span><span class="special">(</span><span class="identifier">ts</span><span class="special">...)</span></code>. The implementations may not
+                  be templated and not overloaded.
+                </p>
+              </td>
+</tr>
+<tr>
+<td>
+                <p>
+                  <code class="computeroutput"><span class="identifier">a</span> <span class="special">+=</span>
                   <span class="identifier">b</span></code>
                 </p>
               </td>
 <tr>
 <td>
                 <p>
-                  <code class="computeroutput"><span class="identifier">ar</span> <span class="special">&amp;</span>
-                  <span class="identifier">a</span></code>
+                  <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">serialize</span><span class="special">(</span><span class="identifier">ar</span><span class="special">,</span>
+                  <span class="identifier">n</span><span class="special">)</span></code>
                 </p>
               </td>
 <td>
 <td>
                 <p>
                   <code class="computeroutput"><span class="identifier">ar</span></code> is a value of
-                  an archive with Boost.Serialization semantics. Serializes <code class="computeroutput"><span class="identifier">a</span></code> to the archive or loads serialized
-                  state from the archive.
+                  an archive with Boost.Serialization semantics and <code class="computeroutput"><span class="identifier">n</span></code> is an unsigned integral value.
+                  Saves to the archive or loads serialized state from the archive.
+                  The version number <code class="computeroutput"><span class="identifier">n</span></code>
+                  is the stored version when the object is loaded or the current
+                  version when the object is saved.
                 </p>
               </td>
 </tr>