macro_rules! random_vecs_fixed_length {
(
($($vis:tt)*),
$random_struct: ident,
$random_fn: ident,
$random_1_to_1_fn: ident,
$([$i: expr, $it: ident, $xs: ident, $xs_gen: ident]),*
) => { ... };
}
Expand description
Defines random fixed-length Vec
generators.
Malachite provides random_vecs_length_2
and random_vecs_fixed_length_2_inputs
, but you
can also define random_vecs_length_3
, random_vecs_length_4
, and so on, and
random_vecs_fixed_length_3_inputs
, random_vecs_fixed_length_4_inputs
, and so on, in your
program using the code below. The documentation for random_vecs_length_2
and
random_vecs_fixed_length_2_inputs
describes these other functions as well.
See usage examples here and here.
use malachite_base::random::Seed;
use malachite_base::vecs::exhaustive::validate_oi_map;
random_vecs_fixed_length!(
(pub(crate)),
RandomFixedLengthVecs3Inputs,
random_vecs_fixed_length_3_inputs,
random_vecs_length_3,
[0, I, xs, xs_gen],
[1, J, ys, ys_gen],
[2, K, zs, zs_gen]
);
random_vecs_fixed_length!(
(pub(crate)),
RandomFixedLengthVecs4Inputs,
random_vecs_fixed_length_4_inputs,
random_vecs_length_4,
[0, I, xs, xs_gen],
[1, J, ys, ys_gen],
[2, K, zs, zs_gen],
[3, L, ws, ws_gen]
);
random_vecs_fixed_length!(
(pub(crate)),
RandomFixedLengthVecs5Inputs,
random_vecs_fixed_length_5_inputs,
random_vecs_length_5,
[0, I, xs, xs_gen],
[1, J, ys, ys_gen],
[2, K, zs, zs_gen],
[3, L, ws, ws_gen],
[4, M, vs, vs_gen]
);
random_vecs_fixed_length!(
(pub(crate)),
RandomFixedLengthVecs6Inputs,
random_vecs_fixed_length_6_inputs,
random_vecs_length_6,
[0, I, xs, xs_gen],
[1, J, ys, ys_gen],
[2, K, zs, zs_gen],
[3, L, ws, ws_gen],
[4, M, vs, vs_gen],
[5, N, us, us_gen]
);
random_vecs_fixed_length!(
(pub(crate)),
RandomFixedLengthVecs7Inputs,
random_vecs_fixed_length_7_inputs,
random_vecs_length_7,
[0, I, xs, xs_gen],
[1, J, ys, ys_gen],
[2, K, zs, zs_gen],
[3, L, ws, ws_gen],
[4, M, vs, vs_gen],
[5, N, us, us_gen],
[6, O, ts, ts_gen]
);
random_vecs_fixed_length!(
(pub(crate)),
RandomFixedLengthVecs8Inputs,
random_vecs_fixed_length_8_inputs,
random_vecs_length_8,
[0, I, xs, xs_gen],
[1, J, ys, ys_gen],
[2, K, zs, zs_gen],
[3, L, ws, ws_gen],
[4, M, vs, vs_gen],
[5, N, us, us_gen],
[6, O, ts, ts_gen],
[7, P, ss, ss_gen]
);