Skip to content

Commit

Permalink
Finish links in benchmark docs
Browse files Browse the repository at this point in the history
  • Loading branch information
ckormanyos committed Jan 29, 2024
1 parent 3825dbf commit 4f3da53
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions ref_app/src/app/benchmark/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@
## Benchmark details

- ![app_benchmark_none.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_none.cpp) via `#define APP_BENCHMARK_TYPE_NONE` is an empty benchmark with merely a Boolean function call returning `true`.
- ![app_benchmark_complex.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_complex.cpp) via `#define APP_BENCHMARK_TYPE_COMPLEX` computes a floating-point complex-valued trigonometric sine function using the `extended_complex::complex` template class.
- ![app_benchmark_complex.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_complex.cpp) via `#define APP_BENCHMARK_TYPE_COMPLEX` computes a floating-point complex-valued trigonometric sine function using the [`extended_complex::complex`](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/math/extended_complex/extended_complex.h) template class.
- ![app_benchmark_crc.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_crc.cpp) via `#define APP_BENCHMARK_TYPE_CRC` calculates a $32$-bit, byte-oriented CRC result described in Sect. 6.1 of the book.
- ![app_benchmark_fast_math.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_fast_math.cpp) via `#define APP_BENCHMARK_TYPE_FAST_MATH` calculates reduced, time-optimized floating-point elementary transcendental functions.
- ![app_benchmark_filter.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_filter.cpp) via `#define APP_BENCHMARK_TYPE_FILTER` calculates an integral FIR filter sampling result.
- ![app_benchmark_fixed_point.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_fixed_point.cpp) via `#define APP_BENCHMARK_TYPE_FIXED_POINT` calculates the first derivative of an elementary function using the self-written `fixed_point` template class in Chap. 13 of the book.
- ![app_benchmark_fixed_point.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_fixed_point.cpp) via `#define APP_BENCHMARK_TYPE_FIXED_POINT` calculates the first derivative of an elementary function using the self-written [`fixed_point`](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/math/fixed_point/fixed_point.h) template class in Chap. 13 of the book.
- ![app_benchmark_float.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_float.cpp) via `#define APP_BENCHMARK_TYPE_FLOAT` implements the floating-point examples detailed in Sect. 12.4 of the book.
- ![app_benchmark_wide_integer.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_wide_integer.cpp) via `#define APP_BENCHMARK_TYPE_WIDE_INTEGER` performs $256$-bit unsigned big integer calculations using the `uintwide_t` class.
- ![app_benchmark_wide_integer.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_wide_integer.cpp) via `#define APP_BENCHMARK_TYPE_WIDE_INTEGER` performs $256$-bit unsigned big integer calculations using the [`uintwide_t`](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/math/wide_integer/uintwide_t.h) class.
- ![app_benchmark_pi_spigot.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_pi_spigot.cpp) via `#define APP_BENCHMARK_TYPE_PI_SPIGOT` performs a pi calculation using a template-based _spigot_ algorithm with calculation steps divided among the slices of the idle task.
- ![app_benchmark_pi_spigot_single.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_pi_spigot_single.cpp) via `#define APP_BENCHMARK_TYPE_PI_SPIGOT_SINGLE` does the same pi calculation as above implemented as a single function call.
- ![app_benchmark_hash.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_hash.cpp) via `#define APP_BENCHMARK_TYPE_HASH` computes a $160$-bit hash checksum of a $3$-byte character-based message.
- ![app_benchmark_wide_decimal.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_wide_decimal.cpp) via `#define APP_BENCHMARK_TYPE_WIDE_DECIMAL` computes a $100$ decimal digit square root using the `decwide_t` template class.
- ![app_benchmark_wide_decimal.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_wide_decimal.cpp) via `#define APP_BENCHMARK_TYPE_WIDE_DECIMAL` computes a $100$ decimal digit square root using the [`decwide_t`](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/math/wide_decimal/decwide_t.h) template class.
- ![app_benchmark_trapezoid_integral.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_trapezoid_integral.cpp) via `#define APP_BENCHMARK_TYPE_TRAPEZOID_INTEGRAL` computes the numerical floating-point result of a Bessel function using a recursive trapezoid integration routine.
- ![app_benchmark_pi_agm.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_pi_agm.cpp) via `#define APP_BENCHMARK_TYPE_PI_AGM` computes $53$ decimal digits of pi (or optionally $101$ decimal digits of pi) using a Gauss AGM method with the `decwide_t` template class having a so-called _limb type_ of `std::uint16_t`.
- ![app_benchmark_pi_agm.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_pi_agm.cpp) via `#define APP_BENCHMARK_TYPE_PI_AGM` computes $53$ decimal digits of pi (or optionally $101$ decimal digits of pi) using a Gauss AGM method with the [`decwide_t`](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/math/wide_decimal/decwide_t.h) template class having a so-called _limb type_ of `std::uint16_t`.
- ![app_benchmark_boost_math_cbrt_tgamma.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_boost_math_cbrt_tgamma.cpp) via `#define APP_BENCHMARK_TYPE_BOOST_MATH_CBRT_TGAMMA` uses [Boost.Math](https://www.boost.org/doc/libs/1_81_0/libs/math/doc/html/index.html) to compute the cube root of various Gamma functions values.
- ![app_benchmark_boost_math_cyl_bessel_j.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_boost_math_cyl_bessel_j.cpp) via `#define APP_BENCHMARK_TYPE_BOOST_MATH_CYL_BESSEL_J` also uses [Boost.Math](https://www.boost.org/doc/libs/1_81_0/libs/math/doc/html/index.html) to calculate cylindrical Bessel functions of small, non-integer order.
- ![app_benchmark_cnl_scaled_integer.cpp](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/app/benchmark/app_benchmark_cnl_scaled_integer.cpp) via `#define APP_BENCHMARK_TYPE_CNL_SCALED_INTEGER` brings a small subset of the [CNL Library](https://github.com/johnmcfarlane/cnl) _onto the metal_ by exercising various elementary quadratic calculations with the fixed-point representations of [`cnl::scaled_integer`](https://github.com/johnmcfarlane/cnl/tree/main/include/cnl/_impl/scaled_integer).
Expand All @@ -45,7 +45,8 @@ Consider, for instance,
which exercises the benchmark of type `APP_BENCHMARK_TYPE_PI_AGM`.
This benchmark compute $53$ decimal digits of the mathematical constant
$\pi$ using a Gauss AGM method with help
from the `decwide_t` template class.
from the [`decwide_t`](https://github.com/ckormanyos/real-time-cpp/blob/master/ref_app/src/math/wide_decimal/decwide_t.h)
template class.

The [PDF image](images/app_benchmark_pi_agm.pdf)
shows the real-time measurement of this benchmark
Expand Down

0 comments on commit 4f3da53

Please sign in to comment.