diff options
Diffstat (limited to 'srchr/src/config.rs')
| -rw-r--r-- | srchr/src/config.rs | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/srchr/src/config.rs b/srchr/src/config.rs index 5bb35c5..c9ca302 100644 --- a/srchr/src/config.rs +++ b/srchr/src/config.rs @@ -33,10 +33,10 @@ pub const MAX_NUM_TRANSPOSITIONS: usize = 12; // Fitness parameters pub const DESIRED_INDEX_USAGE_PERCENT: f32 = 0.12; +pub const MAX_PINKY_USAGE_PERCENT: f32 = 0.09; pub const STANDARD_DSFB_WEIGHT: f32 = 1.0 / 8.0; pub const INDEX_DSFB_WEIGHT: f32 = 1.0 / 8.0; -pub fn index_usage_fitness(total_count: u32, index_count: u32) -> f32 { - let index_perc = index_count as f32 / total_count as f32; +pub fn index_usage_fitness(index_perc: f32) -> f32 { if index_perc < DESIRED_INDEX_USAGE_PERCENT { DESIRED_INDEX_USAGE_PERCENT - index_perc } else { @@ -44,6 +44,18 @@ pub fn index_usage_fitness(total_count: u32, index_count: u32) -> f32 { } } +pub fn pinky_col_penalty(lesser_perc: f32, greater_perc: f32) -> f32 { + if greater_perc > MAX_PINKY_USAGE_PERCENT { + if lesser_perc > MAX_PINKY_USAGE_PERCENT { + lesser_perc + greater_perc - MAX_PINKY_USAGE_PERCENT * 2.0 + } else { + greater_perc - MAX_PINKY_USAGE_PERCENT + } + } else { + 0.0 + } +} + // ----------------------------------------------------------------------------- // Do not change the following, the code makes assumptions about these // ----------------------------------------------------------------------------- |
