| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | // SPDX-License-Identifier: BSD-3-Clause | ||
| 2 | /// @file parallel.h | ||
| 3 | /// @brief Runs a loop's iterations across CPU threads. | ||
| 4 | #pragma once | ||
| 5 | |||
| 6 | #include <algorithm> | ||
| 7 | #include <atomic> | ||
| 8 | #include <cstddef> | ||
| 9 | #include <thread> | ||
| 10 | #include <vector> | ||
| 11 | |||
| 12 | namespace ernie { | ||
| 13 | |||
| 14 | /// @brief Calls body(i) for every i in [0, count), spread over half the machine's threads. | ||
| 15 | /// Iterations are handed out one at a time, so uneven ones balance. Half the threads leaves the | ||
| 16 | /// rest of the machine responsive while tables and textures are built. | ||
| 17 | /// @param count The number of iterations. | ||
| 18 | /// @param body Called once per iteration, from any thread, possibly concurrently. | ||
| 19 | 497 | template <typename Body> void ParallelLoop(std::size_t count, const Body& body) { | |
| 20 | 497 | std::atomic<std::size_t> next{0}; | |
| 21 | 513 | const auto work = [&] { | |
| 22 |
2/2✓ Branch 0 taken 31 times.
✓ Branch 1 taken 8 times.
|
39 | for (std::size_t i; (i = next.fetch_add(1)) < count;) { |
| 23 | 31 | body(i); | |
| 24 | } | ||
| 25 | }; | ||
| 26 |
10/20ernie::ParallelLoop<ernie::DiurnalTemperatureTable(ernie::RegolithProperties const&, int, int, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >)::{lambda(unsigned long)#1}>(unsigned long, ernie::DiurnalTemperatureTable(ernie::RegolithProperties const&, int, int, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >)::{lambda(unsigned long)#1} const&)::{lambda()#1}::operator()() const:
✗ Branch 1 not taken.
✓ Branch 2 taken 4 times.
void ernie::ParallelLoop<ernie::(anonymous namespace)::EncodeBlocks(ernie::TextureFormat, std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, std::byte*, bc7enc_compress_block_params const&)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::EncodeBlocks(ernie::TextureFormat, std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, std::byte*, bc7enc_compress_block_params const&)::{lambda(unsigned long)#1} const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 240 times.
void ernie::ParallelLoop<ernie::(anonymous namespace)::HalveRgba8(std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, bool)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::HalveRgba8(std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, bool)::{lambda(unsigned long)#1} const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 245 times.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeDetailNoise(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeDetailNoise(unsigned long)::{lambda(unsigned long)#1} const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeShapeNoise(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeShapeNoise(unsigned long)::{lambda(unsigned long)#1} const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeTurbulenceMap(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeTurbulenceMap(unsigned long)::{lambda(unsigned long)#1} const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeWeatherMap(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeWeatherMap(unsigned long)::{lambda(unsigned long)#1} const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::Parallel_AcceptsNoIterations_Test::TestBody()::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::Parallel_AcceptsNoIterations_Test::TestBody()::{lambda(unsigned long)#1} const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::Parallel_RunsEveryIterationExactlyOnce_Test::TestBody()::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::Parallel_RunsEveryIterationExactlyOnce_Test::TestBody()::{lambda(unsigned long)#1} const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
void ernie::ParallelLoop<ernie::SimulateCloudTransport(ernie::DropletPhaseTable const&, ernie::CloudTransportOptions const&)::{lambda(unsigned long)#1}>(unsigned long, ernie::SimulateCloudTransport(ernie::DropletPhaseTable const&, ernie::CloudTransportOptions const&)::{lambda(unsigned long)#1} const&):
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
|
497 | const std::size_t threads = std::clamp<std::size_t>(std::thread::hardware_concurrency() / 2, 1, |
| 27 |
10/20ernie::ParallelLoop<ernie::DiurnalTemperatureTable(ernie::RegolithProperties const&, int, int, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >)::{lambda(unsigned long)#1}>(unsigned long, ernie::DiurnalTemperatureTable(ernie::RegolithProperties const&, int, int, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >)::{lambda(unsigned long)#1} const&)::{lambda()#1}::operator()() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
void ernie::ParallelLoop<ernie::(anonymous namespace)::EncodeBlocks(ernie::TextureFormat, std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, std::byte*, bc7enc_compress_block_params const&)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::EncodeBlocks(ernie::TextureFormat, std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, std::byte*, bc7enc_compress_block_params const&)::{lambda(unsigned long)#1} const&):
✗ Branch 0 not taken.
✓ Branch 1 taken 240 times.
void ernie::ParallelLoop<ernie::(anonymous namespace)::HalveRgba8(std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, bool)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::HalveRgba8(std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, bool)::{lambda(unsigned long)#1} const&):
✗ Branch 0 not taken.
✓ Branch 1 taken 245 times.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeDetailNoise(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeDetailNoise(unsigned long)::{lambda(unsigned long)#1} const&):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeShapeNoise(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeShapeNoise(unsigned long)::{lambda(unsigned long)#1} const&):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeTurbulenceMap(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeTurbulenceMap(unsigned long)::{lambda(unsigned long)#1} const&):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeWeatherMap(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeWeatherMap(unsigned long)::{lambda(unsigned long)#1} const&):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::Parallel_AcceptsNoIterations_Test::TestBody()::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::Parallel_AcceptsNoIterations_Test::TestBody()::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::Parallel_RunsEveryIterationExactlyOnce_Test::TestBody()::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::Parallel_RunsEveryIterationExactlyOnce_Test::TestBody()::{lambda(unsigned long)#1} const&):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::SimulateCloudTransport(ernie::DropletPhaseTable const&, ernie::CloudTransportOptions const&)::{lambda(unsigned long)#1}>(unsigned long, ernie::SimulateCloudTransport(ernie::DropletPhaseTable const&, ernie::CloudTransportOptions const&)::{lambda(unsigned long)#1} const&):
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
|
497 | std::max<std::size_t>(count, 1)); |
| 28 | 497 | std::vector<std::thread> pool; | |
| 29 |
19/20ernie::ParallelLoop<ernie::DiurnalTemperatureTable(ernie::RegolithProperties const&, int, int, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >)::{lambda(unsigned long)#1}>(unsigned long, ernie::DiurnalTemperatureTable(ernie::RegolithProperties const&, int, int, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >)::{lambda(unsigned long)#1} const&)::{lambda()#1}::operator()() const:
✓ Branch 0 taken 4 times.
✓ Branch 1 taken 4 times.
void ernie::ParallelLoop<ernie::(anonymous namespace)::EncodeBlocks(ernie::TextureFormat, std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, std::byte*, bc7enc_compress_block_params const&)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::EncodeBlocks(ernie::TextureFormat, std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, std::byte*, bc7enc_compress_block_params const&)::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 141 times.
✓ Branch 1 taken 240 times.
void ernie::ParallelLoop<ernie::(anonymous namespace)::HalveRgba8(std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, bool)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::HalveRgba8(std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, bool)::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 205 times.
✓ Branch 1 taken 245 times.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeDetailNoise(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeDetailNoise(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeShapeNoise(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeShapeNoise(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeTurbulenceMap(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeTurbulenceMap(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeWeatherMap(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeWeatherMap(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::Parallel_AcceptsNoIterations_Test::TestBody()::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::Parallel_AcceptsNoIterations_Test::TestBody()::{lambda(unsigned long)#1} const&):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::Parallel_RunsEveryIterationExactlyOnce_Test::TestBody()::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::Parallel_RunsEveryIterationExactlyOnce_Test::TestBody()::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::SimulateCloudTransport(ernie::DropletPhaseTable const&, ernie::CloudTransportOptions const&)::{lambda(unsigned long)#1}>(unsigned long, ernie::SimulateCloudTransport(ernie::DropletPhaseTable const&, ernie::CloudTransportOptions const&)::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 2 times.
|
854 | for (std::size_t t = 1; t < threads; ++t) { |
| 30 |
9/20ernie::ParallelLoop<ernie::DiurnalTemperatureTable(ernie::RegolithProperties const&, int, int, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >)::{lambda(unsigned long)#1}>(unsigned long, ernie::DiurnalTemperatureTable(ernie::RegolithProperties const&, int, int, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >)::{lambda(unsigned long)#1} const&)::{lambda()#1}::operator()() const:
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::EncodeBlocks(ernie::TextureFormat, std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, std::byte*, bc7enc_compress_block_params const&)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::EncodeBlocks(ernie::TextureFormat, std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, std::byte*, bc7enc_compress_block_params const&)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 141 times.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::HalveRgba8(std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, bool)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::HalveRgba8(std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, bool)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 205 times.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeDetailNoise(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeDetailNoise(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeShapeNoise(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeShapeNoise(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeTurbulenceMap(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeTurbulenceMap(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeWeatherMap(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeWeatherMap(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::Parallel_AcceptsNoIterations_Test::TestBody()::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::Parallel_AcceptsNoIterations_Test::TestBody()::{lambda(unsigned long)#1} const&):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::Parallel_RunsEveryIterationExactlyOnce_Test::TestBody()::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::Parallel_RunsEveryIterationExactlyOnce_Test::TestBody()::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::SimulateCloudTransport(ernie::DropletPhaseTable const&, ernie::CloudTransportOptions const&)::{lambda(unsigned long)#1}>(unsigned long, ernie::SimulateCloudTransport(ernie::DropletPhaseTable const&, ernie::CloudTransportOptions const&)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
357 | pool.emplace_back(work); |
| 31 | } | ||
| 32 |
7/14ernie::ParallelLoop<ernie::DiurnalTemperatureTable(ernie::RegolithProperties const&, int, int, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >)::{lambda(unsigned long)#1}>(unsigned long, ernie::DiurnalTemperatureTable(ernie::RegolithProperties const&, int, int, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >)::{lambda(unsigned long)#1} const&)::{lambda()#1}::operator()() const:
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::EncodeBlocks(ernie::TextureFormat, std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, std::byte*, bc7enc_compress_block_params const&)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::EncodeBlocks(ernie::TextureFormat, std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, std::byte*, bc7enc_compress_block_params const&)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 240 times.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeDetailNoise(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeDetailNoise(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeShapeNoise(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeShapeNoise(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeTurbulenceMap(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeTurbulenceMap(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeWeatherMap(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeWeatherMap(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::SimulateCloudTransport(ernie::DropletPhaseTable const&, ernie::CloudTransportOptions const&)::{lambda(unsigned long)#1}>(unsigned long, ernie::SimulateCloudTransport(ernie::DropletPhaseTable const&, ernie::CloudTransportOptions const&)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
497 | work(); |
| 33 |
19/20ernie::ParallelLoop<ernie::DiurnalTemperatureTable(ernie::RegolithProperties const&, int, int, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >)::{lambda(unsigned long)#1}>(unsigned long, ernie::DiurnalTemperatureTable(ernie::RegolithProperties const&, int, int, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >)::{lambda(unsigned long)#1} const&)::{lambda()#1}::operator()() const:
✓ Branch 0 taken 4 times.
✓ Branch 1 taken 4 times.
void ernie::ParallelLoop<ernie::(anonymous namespace)::EncodeBlocks(ernie::TextureFormat, std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, std::byte*, bc7enc_compress_block_params const&)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::EncodeBlocks(ernie::TextureFormat, std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, std::byte*, bc7enc_compress_block_params const&)::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 141 times.
✓ Branch 1 taken 240 times.
void ernie::ParallelLoop<ernie::(anonymous namespace)::HalveRgba8(std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, bool)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::HalveRgba8(std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, bool)::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 205 times.
✓ Branch 1 taken 245 times.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeDetailNoise(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeDetailNoise(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeShapeNoise(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeShapeNoise(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeTurbulenceMap(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeTurbulenceMap(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeWeatherMap(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeWeatherMap(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::Parallel_AcceptsNoIterations_Test::TestBody()::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::Parallel_AcceptsNoIterations_Test::TestBody()::{lambda(unsigned long)#1} const&):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::(anonymous namespace)::Parallel_RunsEveryIterationExactlyOnce_Test::TestBody()::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::Parallel_RunsEveryIterationExactlyOnce_Test::TestBody()::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
void ernie::ParallelLoop<ernie::SimulateCloudTransport(ernie::DropletPhaseTable const&, ernie::CloudTransportOptions const&)::{lambda(unsigned long)#1}>(unsigned long, ernie::SimulateCloudTransport(ernie::DropletPhaseTable const&, ernie::CloudTransportOptions const&)::{lambda(unsigned long)#1} const&):
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 2 times.
|
854 | for (std::thread& thread : pool) { |
| 34 |
9/20ernie::ParallelLoop<ernie::DiurnalTemperatureTable(ernie::RegolithProperties const&, int, int, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >)::{lambda(unsigned long)#1}>(unsigned long, ernie::DiurnalTemperatureTable(ernie::RegolithProperties const&, int, int, std::vector<float, std::allocator<float> >, std::vector<float, std::allocator<float> >)::{lambda(unsigned long)#1} const&)::{lambda()#1}::operator()() const:
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::EncodeBlocks(ernie::TextureFormat, std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, std::byte*, bc7enc_compress_block_params const&)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::EncodeBlocks(ernie::TextureFormat, std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, std::byte*, bc7enc_compress_block_params const&)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 141 times.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::HalveRgba8(std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, bool)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::HalveRgba8(std::span<unsigned char const, 18446744073709551615ul>, unsigned int, unsigned int, bool)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 205 times.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeDetailNoise(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeDetailNoise(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeShapeNoise(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeShapeNoise(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeTurbulenceMap(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeTurbulenceMap(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::MakeWeatherMap(unsigned long)::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::MakeWeatherMap(unsigned long)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::Parallel_AcceptsNoIterations_Test::TestBody()::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::Parallel_AcceptsNoIterations_Test::TestBody()::{lambda(unsigned long)#1} const&):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::(anonymous namespace)::Parallel_RunsEveryIterationExactlyOnce_Test::TestBody()::{lambda(unsigned long)#1}>(unsigned long, ernie::(anonymous namespace)::Parallel_RunsEveryIterationExactlyOnce_Test::TestBody()::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
void ernie::ParallelLoop<ernie::SimulateCloudTransport(ernie::DropletPhaseTable const&, ernie::CloudTransportOptions const&)::{lambda(unsigned long)#1}>(unsigned long, ernie::SimulateCloudTransport(ernie::DropletPhaseTable const&, ernie::CloudTransportOptions const&)::{lambda(unsigned long)#1} const&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
357 | thread.join(); |
| 35 | } | ||
| 36 | 497 | } | |
| 37 | |||
| 38 | } // namespace ernie | ||
| 39 |