| 757 | |
| 758 | template <typename DynamicFilterArrayType, bool should_check_parallel, bool should_be_parallel> |
| 759 | void Controller::processOneChannelDynamic(DynamicFilterArrayType& dynamic_filters, const size_t lrms_idx, |
| 760 | const std::span<double*> main_pointers, |
| 761 | const std::span<double*> side_pointers1, |
| 762 | const std::span<double*> side_pointers2, const size_t num_samples) { |
| 763 | for (const size_t& i : not_off_indices_[lrms_idx]) { |
| 764 | if constexpr (should_check_parallel) { |
| 765 | if (dynamic_filters[i].getShouldBeParallel() != should_be_parallel) { |
| 766 | continue; |
| 767 | } |
| 768 | } |
| 769 | if (c_filter_status_[i] == kBypass) { |
| 770 | if (c_dynamic_on_[i]) { |
| 771 | const auto swap = dynamic_swap_[i].load(std::memory_order::relaxed); |
| 772 | if (dynamic_bypass_[i].load(std::memory_order::relaxed)) { |
| 773 | processOneBandDynamic<true, true, true>(dynamic_filters, i, main_pointers, |
| 774 | swap ? side_pointers2 : side_pointers1, num_samples); |
| 775 | } else { |
| 776 | processOneBandDynamic<true, true, false>(dynamic_filters, i, main_pointers, |
| 777 | swap ? side_pointers2 : side_pointers1, num_samples); |
| 778 | } |
| 779 | } else { |
| 780 | processOneBandDynamic<true, false, false>(dynamic_filters, i, main_pointers, side_pointers1, |
| 781 | num_samples); |
| 782 | } |
| 783 | } else { |
| 784 | if (c_dynamic_on_[i]) { |
| 785 | const auto swap = dynamic_swap_[i].load(std::memory_order::relaxed); |
| 786 | if (dynamic_bypass_[i].load(std::memory_order::relaxed)) { |
| 787 | processOneBandDynamic<false, true, true>(dynamic_filters, i, main_pointers, |
| 788 | swap ? side_pointers2 : side_pointers1, num_samples); |
| 789 | } else { |
| 790 | processOneBandDynamic<false, true, false>(dynamic_filters, i, main_pointers, |
| 791 | swap ? side_pointers2 : side_pointers1, num_samples); |
| 792 | } |
| 793 | } else { |
| 794 | processOneBandDynamic<false, false, false>(dynamic_filters, i, main_pointers, side_pointers1, |
| 795 | num_samples); |
| 796 | } |
| 797 | } |
| 798 | } |
| 799 | } |
| 800 | |
| 801 | template <bool bypass, bool dynamic_on, bool dynamic_bypass, typename DynamicFilterArrayType> |
| 802 | void Controller::processOneBandDynamic(DynamicFilterArrayType& dynamic_filters, const size_t i, |
nothing calls this directly
no test coverage detected