Able to generate layouts
This commit is contained in:
parent
863ace8c2c
commit
b665f2edf7
|
|
@ -1,6 +1,6 @@
|
|||
use core::f64;
|
||||
use eyre::Result;
|
||||
use rand::rngs::ThreadRng;
|
||||
use rand::{rngs::ThreadRng, Rng};
|
||||
use std::{
|
||||
collections::HashMap,
|
||||
io::{self, Write},
|
||||
|
|
@ -49,9 +49,9 @@ const RINDEX: Finger = F!(Right, Index);
|
|||
|
||||
#[rustfmt::skip]
|
||||
const MATRIX_EFFORT: &[f64; MATRIX_COUNT] = &[
|
||||
15., 3.0, 1.5, 3.0, 10., 10., 3.0, 1.5, 3.0, 15.,
|
||||
8., 1., 0.5, 0.5, 4., 4., 0.5, 0.5, 1., 8.,
|
||||
1.5, 2.0, 1., 1., 7., 5., 1., 2.0, 1.5, 10.,
|
||||
100., 3., 5., 3., 30., 30., 3., 5., 3., 100.,
|
||||
50., 2., 1., 1., 15., 15., 1., 1., 2., 50.,
|
||||
25., 7., 5., 7., 30., 1., 5., 7., 5., 100.,
|
||||
];
|
||||
|
||||
#[rustfmt::skip]
|
||||
|
|
@ -227,10 +227,21 @@ fn all_bigrams() -> &'static [String] {
|
|||
unsafe { ALL_BIGRAMS.as_ref().unwrap_unchecked() }
|
||||
}
|
||||
|
||||
const N_WORKERS: usize = 16;
|
||||
const N_WORKERS: usize = 32;
|
||||
|
||||
fn mutate_layout(layout: &mut Layout, rng: &mut ThreadRng, num_swaps: usize) {
|
||||
for _ in 0..num_swaps {}
|
||||
for _ in 0..num_swaps {
|
||||
let ch1 = CHARACTERS
|
||||
.chars()
|
||||
.nth(rng.gen_range(0..CHARACTERS.len()))
|
||||
.unwrap();
|
||||
let ch2 = CHARACTERS
|
||||
.chars()
|
||||
.nth(rng.gen_range(0..CHARACTERS.len()))
|
||||
.unwrap();
|
||||
|
||||
layout.key_indices.swap(ch1 as usize, ch2 as usize);
|
||||
}
|
||||
}
|
||||
|
||||
struct WorkerThreadInit {
|
||||
|
|
@ -291,6 +302,7 @@ fn ui_thread_run(rx: Receiver<(f64, Layout)>) {
|
|||
for (eff, layout) in rx.iter() {
|
||||
clear_screen();
|
||||
print_layout(layout);
|
||||
println!();
|
||||
println!("{eff}");
|
||||
}
|
||||
}
|
||||
|
|
@ -314,6 +326,11 @@ fn aggregator_thread_run(
|
|||
}
|
||||
|
||||
fn main() -> Result<()> {
|
||||
unsafe {
|
||||
init_all_bigrams();
|
||||
init_bigram_freqs();
|
||||
};
|
||||
|
||||
let (tx_agg, rx_agg) = std::sync::mpsc::channel();
|
||||
let (tx_ui, rx_ui) = std::sync::mpsc::channel();
|
||||
|
||||
|
|
@ -332,7 +349,7 @@ fn main() -> Result<()> {
|
|||
worker_thread_run(WorkerThreadInit {
|
||||
initial_layout: INITIAL_LAYOUT,
|
||||
report: tx,
|
||||
max_dev: 1000.,
|
||||
max_dev: 200.,
|
||||
swaps: 1,
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Reference in a new issue