use runn::matrix::{DMat, DenseMatrix};
pub(crate) fn training_inputs() -> DMat {
let inps = vec![
5.0, 4.0, 4.0, 2.0, 5.0, 5.0, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0, 1.0, 6.0, 2.0, 1.0, 3.0, 6.0, 5.0, 5.0, 5.0, 3.0,
2.0, 6.0, 4.0, 9.0, 4.0, 0.0, 0.0, 0.0, 2.0, 6.0, 4.0, 2.0, 6.0, 2.0, 8.0, 8.0, 8.0, 2.0, 7.0, 2.0, 0.0, 0.0,
0.0, 8.0, 8.0, 8.0, 6.0, 6.0, 6.0, 1.0, 1.0, 1.0, 1.0, 3.0, 3.0, 2.0, 2.0, 2.0, 6.0, 7.0, 7.0, 8.0, 4.0, 7.0,
4.0, 4.0, 4.0, 4.0, 7.0, 5.0, 1.0, 2.0, 8.0, 1.0, 9.0, 3.0, 0.0, 4.0, 0.0, 3.0, 7.0, 7.0, 2.0, 5.0, 1.0, 8.0,
1.0, 1.0, 4.0, 9.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 4.0, 4.0, 4.0, 5.0, 5.0, 5.0, 7.0, 0.0, 0.0, 6.0, 6.0,
6.0, 7.0, 1.0, 4.0, 2.0, 2.0, 2.0, 8.0, 7.0, 0.0, 9.0, 2.0, 2.0, 7.0, 7.0, 7.0, 0.0, 0.0, 0.0, 6.0, 5.0, 5.0,
4.0, 4.0, 4.0, 3.0, 1.0, 6.0, 5.0, 1.0, 5.0, 2.0, 2.0, 2.0, 8.0, 1.0, 9.0, 5.0, 8.0, 8.0, 0.0, 6.0, 1.0, 3.0,
6.0, 6.0, 1.0, 4.0, 7.0, 6.0, 6.0, 6.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 6.0, 3.0, 0.0, 4.0, 4.0, 4.0, 9.0, 9.0,
9.0, 1.0, 3.0, 0.0, 0.0, 5.0, 5.0, 6.0, 5.0, 5.0, 0.0, 5.0, 5.0, 0.0, 1.0, 1.0, 5.0, 1.0, 7.0, 7.0, 6.0, 7.0,
2.0, 0.0, 7.0, 3.0, 6.0, 0.0, 8.0, 5.0, 9.0, 0.0, 4.0, 0.0, 9.0, 8.0, 9.0, 4.0, 7.0, 6.0, 2.0, 2.0, 2.0, 0.0,
0.0, 0.0, 1.0, 6.0, 7.0, 8.0, 3.0, 9.0, 5.0, 1.0, 0.0, 8.0, 9.0, 9.0, 3.0, 3.0, 3.0, 9.0, 7.0, 1.0, 9.0, 7.0,
5.0, 7.0, 7.0, 7.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 8.0, 3.0, 3.0, 9.0, 9.0, 9.0, 2.0, 6.0, 2.0, 4.0, 2.0, 8.0,
5.0, 9.0, 9.0, 3.0, 9.0, 7.0, 7.0, 8.0, 4.0, 9.0, 8.0, 3.0, 7.0, 3.0, 9.0, 7.0, 2.0, 7.0, 5.0, 5.0, 5.0, 7.0,
2.0, 7.0, 0.0, 6.0, 6.0, 9.0, 1.0, 7.0, 9.0, 6.0, 6.0, 6.0, 9.0, 9.0, 2.0, 6.0, 9.0, 9.0, 8.0, 8.0, 7.0, 4.0,
5.0, 0.0, 5.0, 7.0, 2.0, 2.0, 2.0, 7.0, 3.0, 9.0, 6.0, 6.0, 6.0, 7.0, 7.0, 7.0, 1.0, 1.0, 1.0, 7.0, 7.0, 7.0,
2.0, 2.0, 2.0, 8.0, 6.0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 8.0, 1.0, 0.0, 7.0, 7.0, 7.0, 4.0, 2.0, 4.0, 9.0,
9.0, 9.0, 2.0, 2.0, 2.0, 6.0, 0.0, 5.0, 3.0, 7.0, 8.0, 6.0, 6.0, 6.0, 7.0, 2.0, 0.0, 1.0, 4.0, 8.0, 5.0, 0.0,
5.0, 1.0, 6.0, 6.0, 9.0, 3.0, 3.0, 3.0, 5.0, 2.0, 3.0, 2.0, 4.0, 8.0, 8.0, 8.0, 9.0, 6.0, 6.0, 6.0, 6.0, 6.0,
3.0, 8.0, 8.0, 5.0, 2.0, 9.0, 9.0, 8.0, 9.0, 2.0, 0.0, 0.0, 6.0, 8.0, 8.0, 2.0, 2.0, 2.0, 1.0, 1.0, 1.0, 5.0,
4.0, 4.0, 4.0, 0.0, 4.0, 0.0, 2.0, 0.0, 7.0, 6.0, 3.0, 1.0, 8.0, 8.0, 3.0, 1.0, 3.0, 6.0, 7.0, 4.0, 4.0, 4.0,
4.0, 5.0, 6.0, 7.0, 1.0, 1.0, 1.0, 4.0, 5.0, 2.0, 7.0, 7.0, 7.0, 2.0, 5.0, 5.0, 7.0, 8.0, 8.0, 6.0, 5.0, 0.0,
2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 8.0, 7.0, 9.0, 9.0, 9.0, 7.0, 7.0, 7.0, 3.0, 0.0, 6.0, 9.0, 4.0, 7.0, 0.0,
1.0, 0.0, 1.0, 3.0, 1.0, 5.0, 1.0, 3.0, 1.0, 6.0, 6.0, 9.0, 6.0, 3.0, 1.0, 1.0, 1.0, 4.0, 4.0, 4.0, 1.0, 6.0,
6.0, 1.0, 2.0, 3.0, 9.0, 4.0, 4.0, 2.0, 2.0, 2.0, 9.0, 5.0, 5.0, 9.0, 8.0, 0.0, 1.0, 9.0, 1.0, 8.0, 5.0, 9.0,
3.0, 3.0, 3.0, 5.0, 9.0, 2.0, 5.0, 8.0, 5.0, 7.0, 3.0, 3.0, 1.0, 3.0, 3.0, 0.0, 7.0, 9.0, 0.0, 0.0, 0.0, 2.0,
5.0, 0.0, 7.0, 9.0, 1.0, 4.0, 5.0, 5.0, 8.0, 1.0, 1.0, 9.0, 8.0, 9.0, 5.0, 5.0, 5.0, 3.0, 1.0, 3.0, 1.0, 3.0,
8.0, 2.0, 4.0, 6.0, 5.0, 5.0, 5.0, 1.0, 0.0, 0.0, 2.0, 2.0, 2.0, 8.0, 4.0, 4.0, 6.0, 6.0, 6.0, 7.0, 3.0, 9.0,
];
let inp_size = 3;
let inps_row = inps.len() / inp_size;
DenseMatrix::new(inps_row, inp_size).data(&inps).build().unwrap()
}
pub(crate) fn training_targets() -> DMat {
let tar = vec![
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0,
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0,
1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0,
1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0,
1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0,
1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0,
0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0,
0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0,
1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0,
0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0,
1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0,
1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,
1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0,
0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0,
0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0,
1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0,
1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,
1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0,
0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0,
1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0,
1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0,
];
let targ_size = 3;
let targ_row = tar.len() / targ_size;
DenseMatrix::new(targ_row, targ_size).data(&tar).build().unwrap()
}
pub(crate) fn validation_inputs() -> DMat {
let inps = vec![
1.0, 6.0, 5.0, 0.0, 8.0, 9.0, 7.0, 6.0, 6.0, 0.0, 9.0, 9.0, 0.0, 7.0, 0.0, 8.0, 3.0, 8.0, 4.0, 9.0, 5.0, 7.0,
5.0, 6.0, 6.0, 5.0, 5.0, 0.0, 9.0, 8.0, 3.0, 0.0, 3.0, 2.0, 5.0, 7.0, 1.0, 1.0, 1.0, 6.0, 2.0, 0.0, 7.0, 5.0,
5.0, 0.0, 2.0, 1.0, 4.0, 9.0, 3.0, 7.0, 9.0, 7.0, 0.0, 0.0, 0.0, 3.0, 5.0, 7.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0,
2.0, 2.0, 2.0, 2.0, 0.0, 2.0, 4.0, 4.0, 4.0, 6.0, 6.0, 6.0, 9.0, 9.0, 9.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 7.0,
7.0, 7.0,
];
let inp_size = 3;
let inps_row = inps.len() / inp_size;
DenseMatrix::new(inps_row, inp_size).data(&inps).build().unwrap()
}
pub(crate) fn validation_targets() -> DMat {
let tar = vec![
0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0,
0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0,
0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0,
1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0,
0.0, 0.0,
];
let targ_size = 3;
let targ_row = tar.len() / targ_size;
DenseMatrix::new(targ_row, targ_size).data(&tar).build().unwrap()
}