Able to generate layouts

This commit is contained in:
soup 2024-12-21 18:32:18 -05:00
parent 863ace8c2c
commit b665f2edf7
Signed by: soup
SSH key fingerprint: SHA256:GYxje8eQkJ6HZKzVWDdyOUF1TyDiprruGhE0Ym8qYDY

View file

@ -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,
})
})