-
Notifications
You must be signed in to change notification settings - Fork 292
Open
tenstorrent/tt-llk
#626Description
Overview
Convert the existing boolean template parameter APPROXIMATION_MODE and APPROX_MODE to a more type-safe and self-documenting enum class solution for better code readability and maintainability.
A list of files that contain this parameter (might not be complete):
WH:
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_gelu.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_bitwise_and.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_bitwise_or.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_dropout.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_erfinv.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_abs.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_relu.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_tiled_prod.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_erf_erfc.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_square.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_copy_dest_values.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_softplus.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_fill.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_sqrt.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_hardtanh.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_cumsum.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_topk.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_sigmoid.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_remainder.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_mask.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_tanh.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_add1.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_binary.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_tanh_derivative.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_shift.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_reverseops.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_heaviside.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_cast_fp32_to_fp16a.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_right_shift.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_alt_complex_rotate90.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_fmod.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_bitwise_not.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_min.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_i0.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_rand.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_int_sum.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_quant.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_expm1.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_prelu.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_signbit.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_recip.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_exp.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_rsqrt.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_comp.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_trigonometry.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_isinf_isnan.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_binop_with_unary.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_binary_bitwise.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_left_shift.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_i1.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_typecast.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_exp2.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_unary_comp.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_sign.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_unary_max_min.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_max.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_power_iterative.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_identity.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_log1p.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_negative.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_bitwise_xor.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_elu.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_reshuffle_rows.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_log.h
- ./tt_metal/hw/ckernels/wormhole_b0/metal/llk_api/llk_sfpu/ckernel_sfpu_clamp.h
- ./tt_llk_wormhole_b0/llk_lib/llk_math_eltwise_unary_sfpu_params.h
- ./tt_llk_wormhole_b0/llk_lib/llk_math_eltwise_binary_sfpu_params.h
- ./tt_llk_wormhole_b0/common/inc/sfpu/ckernel_sfpu_abs.h
- ./tt_llk_wormhole_b0/common/inc/sfpu/ckernel_sfpu_activations.h
- ./tt_llk_wormhole_b0/common/inc/sfpu/ckernel_sfpu_cumsum.h
- ./tt_llk_wormhole_b0/common/inc/sfpu/ckernel_sfpu_elu.h
- ./tt_llk_wormhole_b0/common/inc/sfpu/ckernel_sfpu_exp.h
- ./tt_llk_wormhole_b0/common/inc/sfpu/ckernel_sfpu_exp2.h
- ./tt_llk_wormhole_b0/common/inc/sfpu/ckernel_sfpu_gelu.h
- ./tt_llk_wormhole_b0/common/inc/sfpu/ckernel_sfpu_rounding_ops.h
- ./tt_llk_wormhole_b0/common/inc/sfpu/ckernel_sfpu_sigmoid.h
- ./tt_llk_wormhole_b0/common/inc/sfpu/ckernel_sfpu_silu.h
- ./tt_llk_wormhole_b0/common/inc/sfpu/ckernel_sfpu_sqrt.h
- ./tt_llk_wormhole_b0/common/inc/sfpu/ckernel_sfpu_tanh_derivative.h
- ./tt_llk_wormhole_b0/common/inc/sfpu/ckernel_sfpu_topk.h
- ./tt_llk_wormhole_b0/common/inc/sfpu/ckernel_sfpu_trigonometry.h
BH:
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_gelu.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_bitwise_and.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_bitwise_or.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_dropout.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_erfinv.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_abs.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_relu.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_tiled_prod.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_erf_erfc.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_square.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_copy_dest_values.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_softplus.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_fill.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_sqrt.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_hardtanh.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_cumsum.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_topk.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_sigmoid.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_remainder.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_mask.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_tanh.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_add1.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_binary.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_tanh_derivative.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_shift.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_reverseops.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_heaviside.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_cast_fp32_to_fp16a.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_right_shift.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_alt_complex_rotate90.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_fmod.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_bitwise_not.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_min.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_i0.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_rand.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_int_sum.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_quant.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_expm1.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_prelu.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_signbit.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_recip.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_exp.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_rsqrt.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_comp.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_trigonometry.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_isinf_isnan.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_binop_with_unary.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_binary_bitwise.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_left_shift.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_i1.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_typecast.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_exp2.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_unary_comp.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_sign.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_unary_max_min.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_max.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_power_iterative.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_identity.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_log1p.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_negative.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_bitwise_xor.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_elu.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_log.h
- ./tt_metal/hw/ckernels/blackhole/metal/llk_api/llk_sfpu/ckernel_sfpu_clamp.h
- ./tt_llk_blackhole/llk_lib/llk_math_eltwise_unary_sfpu_params.h
- ./tt_llk_blackhole/llk_lib/llk_math_eltwise_binary_sfpu_params.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_activations.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_add_int.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_binary.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_binary_bitwise.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_comp.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_cumsum.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_elu.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_exp.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_exp2.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_fill.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_gelu.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_hardtanh.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_max_int32.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_power.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_relu.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_reshuffle_rows.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_rounding_ops.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_shift.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_sigmoid.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_sign.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_silu.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_sqrt.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_square.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_sub_int.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_tanh_derivative.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_topk.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_trigonometry.h
- ./tt_llk_blackhole/common/inc/sfpu/ckernel_sfpu_typecast.h
Current Implementation
Currently, the code uses a boolean template parameter APPROXIMATION_MODE or APPROX_MODE to control whether SFPU operations use fast approximations (true) or precise calculations (false). This leads to unclear function calls where the intent is not immediately obvious.
Example of current unclear usage:
// Hard to understand what 'true' means without context
_calculate_exponential_<true, false, 8, false, true>(exp_base_scale_factor);
// Template definition is not self-documenting
template <bool APPROXIMATION_MODE, bool SCALE_EN, int ITERATIONS, bool FAST_APPROX, bool SKIP_POSITIVE_CHECK>
void _calculate_exponential_(const uint16_t exp_base_scale_factor)
{
if constexpr (APPROXIMATION_MODE) {
// Fast approximation path
} else {
// Precise calculation path
}
}Requested Change
Replace the boolean template parameter with an enum class:
enum class ApproximationMode
{
Precise = 0, // High precision, slower (false equivalent)
Fast = 1 // Fast approximation, less accurate (true equivalent)
};Example transformation:
// BEFORE
template <bool APPROXIMATION_MODE, bool SCALE_EN, int ITERATIONS, bool FAST_APPROX, bool SKIP_POSITIVE_CHECK>
void _calculate_exponential_(const uint16_t exp_base_scale_factor)
{
if constexpr (APPROXIMATION_MODE) {
// Fast approximation path
}
}
// AFTER
template <ApproximationMode APPROX_MODE, bool SCALE_EN, int ITERATIONS, bool FAST_APPROX, bool SKIP_POSITIVE_CHECK>
void _calculate_exponential_(const uint16_t exp_base_scale_factor)
{
if constexpr (APPROX_MODE == ApproximationMode::Fast) {
// Fast approximation path
}
}
// Function calls become self-documenting
_calculate_exponential_<ApproximationMode::Fast, false, 8, false, true>(exp_base_scale_factor);Requirements
- Add
ApproximationModeenum class definition to bothtt_llk_blackhole/llk_lib/llk_defs.handtt_llk_wormhole_b0/llk_lib/llk_defs.h - Replace all occurrences of
bool APPROXIMATION_MODEandbool APPROX_MODEtemplate parameters withApproximationMode APPROX_MODE - Update all template instantiations to use
ApproximationMode::FastorApproximationMode::Precise - Modify conditional statements from
if constexpr (APPROXIMATION_MODE)toif constexpr (APPROX_MODE == ApproximationMode::Fast) - Add
#include "llk_defs.h"to files that need the enum definition - Update any documentation or comments to reflect the new enum parameter
- Ensure all existing functionality works identically after conversion
Definition of Done
- All boolean template parameter usage of
APPROXIMATION_MODE/APPROX_MODEconverted toApproximationModeenum class - Parameter names standardized to
APPROX_MODEacross all files - All conditional logic updated to use explicit enum comparisons
- All code compiles without errors or warnings
- All existing tests pass
- Function calls are self-documenting with clear approximation mode intent
Metadata
Metadata
Assignees
Type
Projects
Status
PR Submitted 🕒