<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src/catch2/benchmark/detail/catch_stats.cpp, branch constexpr_approx</title>
<subtitle>Progmasoft Catch3: an independently maintained C++17 test framework with a parallel runner, property checks, snapshots and structured results.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/'/>
<entry>
<title>Replace last use of std::uniform_int_distribution with our own</title>
<updated>2024-04-03T11:28:26+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-04-02T16:13:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=bff6e35e2b239217f3940ed52429f94b745adc50'/>
<id>bff6e35e2b239217f3940ed52429f94b745adc50</id>
<content type='text'>
Our implementation should be slightly faster, and has the
advantage of being consistent between platforms. This does not
have immediate user impact, because we currently use random_device
to generate random seed for resampling, but if we decide to change
this in the future, it is one less place to fix.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Our implementation should be slightly faster, and has the
advantage of being consistent between platforms. This does not
have immediate user impact, because we currently use random_device
to generate random seed for resampling, but if we decide to change
this in the future, it is one less place to fix.
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup types in resample</title>
<updated>2024-01-14T19:59:05+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-01-14T19:59:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=a0ef2115f833ad5a79263d2b3634ffe3497d008c'/>
<id>a0ef2115f833ad5a79263d2b3634ffe3497d008c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Ensure we always read 32 bit seed from std::random_device</title>
<updated>2023-12-10T20:37:12+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-12-10T20:37:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=b7d70ddcd609a798048f055cf8f5b6803ac06e52'/>
<id>b7d70ddcd609a798048f055cf8f5b6803ac06e52</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove static instance of std::random_device in Benchmark::analyse_samples</title>
<updated>2023-12-10T20:22:43+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-12-10T20:22:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=a6f22c51699b78116cac54a4ac95bbed710efbd4'/>
<id>a6f22c51699b78116cac54a4ac95bbed710efbd4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use our PCG32 RNG instead of mt19937 in Benchmark::analyse_samples</title>
<updated>2023-12-10T20:18:23+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-12-10T20:18:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=1887d42e3d880414a8e9c6746810a42521b0ee90'/>
<id>1887d42e3d880414a8e9c6746810a42521b0ee90</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add implementation of helpers for uniform float distribution</title>
<updated>2023-12-10T17:44:10+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-11-19T20:00:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=d139b4ff7cd8823923e8616e8fef954e09e46322'/>
<id>d139b4ff7cd8823923e8616e8fef954e09e46322</id>
<content type='text'>
Specifically we add
 * `gamma(a, b)`, which returns the magnitude of largest 1-ULP
   step in range [a, b].
 * `count_equidistant_float(a, b, distance)`, which returns the
   number of equi-distant floats in range [a, b].
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Specifically we add
 * `gamma(a, b)`, which returns the magnitude of largest 1-ULP
   step in range [a, b].
 * `count_equidistant_float(a, b, distance)`, which returns the
   number of equi-distant floats in range [a, b].
</pre>
</div>
</content>
</entry>
<entry>
<title>Make jackknife TU-local to stats.cpp</title>
<updated>2023-09-16T19:29:47+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-09-16T19:29:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=92672591c114b442d3471bba600f6201f2d08b4c'/>
<id>92672591c114b442d3471bba600f6201f2d08b4c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Make directCompare TU-local to stats.cpp</title>
<updated>2023-09-16T19:18:44+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-09-16T19:18:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=56fcd584c1a4ca7f9449843e239559e69a084a63'/>
<id>56fcd584c1a4ca7f9449843e239559e69a084a63</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Reduce the number of templates in Benchmarking</title>
<updated>2023-09-08T08:04:31+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-08-31T19:52:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=47a2c969380259e899f471edde84f06a6d687dc9'/>
<id>47a2c969380259e899f471edde84f06a6d687dc9</id>
<content type='text'>
The basic idea was to reduce the number of things dependent on the `Clock`
type. To that end, I replaced `Duration&lt;Clock&gt;` with `IDuration` typedef
for `std::nanoseconds`, and `FloatDuration&lt;Clock&gt;` with `FDuration`
typedef for `Duration&lt;double, std::nano&gt;`. We can generally assume that
any clock's duration can be expressed in nanoseconds, as long as we insert
`duration_cast`s into the right places.

Note that we cannot remove all dependence on `Clock` as a template
arguments, because functions that actually measure the elapsed time have
to use the Clock.

We also changed some template function arguments to pass plain function
pointers, so that the actual implementation can be placed into a cpp file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The basic idea was to reduce the number of things dependent on the `Clock`
type. To that end, I replaced `Duration&lt;Clock&gt;` with `IDuration` typedef
for `std::nanoseconds`, and `FloatDuration&lt;Clock&gt;` with `FDuration`
typedef for `Duration&lt;double, std::nano&gt;`. We can generally assume that
any clock's duration can be expressed in nanoseconds, as long as we insert
`duration_cast`s into the right places.

Note that we cannot remove all dependence on `Clock` as a template
arguments, because functions that actually measure the elapsed time have
to use the Clock.

We also changed some template function arguments to pass plain function
pointers, so that the actual implementation can be placed into a cpp file.
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace vector iterator args in benchmarks with ptr args</title>
<updated>2023-09-08T08:04:19+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-08-31T20:04:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=9bba07cb8736d1a949a50afc0b37a6611040db78'/>
<id>9bba07cb8736d1a949a50afc0b37a6611040db78</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
