Macro malachite_base::random_custom_tuples
source · [−]macro_rules! random_custom_tuples {
(
($($vis:tt)*),
$random_struct: ident,
$out_t: ty,
$random_fn: ident,
$([$t: ident, $it: ident, $xs: ident, $xs_gen: ident, $([$x: ident, $x_ord: ident]),*]),*
) => { ... };
}
Expand description
Defines custom random tuple generators.
You can define custom tuple generators like random_triples_xyx
in your program using the code
below.
See usage examples here.
use malachite_base::random::Seed;
random_custom_tuples!(
(pub(crate)),
RandomTriplesXXY,
(X, X, Y),
random_triples_xxy,
[X, I, xs, xs_gen, [x_0, x_0], [x_1, x_1]],
[Y, J, ys, ys_gen, [y_2, y_2]]
);
random_custom_tuples!(
(pub(crate)),
RandomTriplesXYX,
(X, Y, X),
random_triples_xyx,
[X, I, xs, xs_gen, [x_0, x_0], [x_2, y_1]],
[Y, J, ys, ys_gen, [y_1, x_2]]
);
random_custom_tuples!(
(pub(crate)),
RandomTriplesXYY,
(X, Y, Y),
random_triples_xyy,
[X, I, xs, xs_gen, [x_0, x_0]],
[Y, J, ys, ys_gen, [y_1, y_1], [y_2, y_2]]
);
random_custom_tuples!(
(pub(crate)),
RandomQuadruplesXXXY,
(X, X, X, Y),
random_quadruples_xxxy,
[X, I, xs, xs_gen, [x_0, x_0], [x_1, x_1], [x_2, x_2]],
[Y, J, ys, ys_gen, [y_3, y_3]]
);
random_custom_tuples!(
(pub(crate)),
RandomQuadruplesXXYX,
(X, X, Y, X),
random_quadruples_xxyx,
[X, I, xs, xs_gen, [x_0, x_0], [x_1, x_1], [x_3, y_2]],
[Y, J, ys, ys_gen, [y_2, x_3]]
);
random_custom_tuples!(
(pub(crate)),
RandomQuadruplesXXYZ,
(X, X, Y, Z),
random_quadruples_xxyz,
[X, I, xs, xs_gen, [x_0, x_0], [x_1, x_1]],
[Y, J, ys, ys_gen, [y_2, y_2]],
[Z, K, zs, zs_gen, [z_3, z_3]]
);
random_custom_tuples!(
(pub(crate)),
RandomQuadruplesXYXZ,
(X, Y, X, Z),
random_quadruples_xyxz,
[X, I, xs, xs_gen, [x_0, x_0], [x_2, y_1]],
[Y, J, ys, ys_gen, [y_1, x_2]],
[Z, K, zs, zs_gen, [z_3, z_3]]
);
random_custom_tuples!(
(pub(crate)),
RandomQuadruplesXYYX,
(X, Y, Y, X),
random_quadruples_xyyx,
[X, I, xs, xs_gen, [x_0, x_0], [x_3, y_1]],
[Y, J, ys, ys_gen, [y_1, y_2], [y_2, x_3]]
);
random_custom_tuples!(
(pub(crate)),
RandomQuadruplesXYYZ,
(X, Y, Y, Z),
random_quadruples_xyyz,
[X, I, xs, xs_gen, [x_0, x_0]],
[Y, J, ys, ys_gen, [y_1, y_1], [y_2, y_2]],
[Z, K, zs, zs_gen, [z_3, z_3]]
);
random_custom_tuples!(
(pub(crate)),
RandomQuadruplesXYZZ,
(X, Y, Z, Z),
random_quadruples_xyzz,
[X, I, xs, xs_gen, [x_0, x_0]],
[Y, J, ys, ys_gen, [y_1, y_1]],
[Z, K, zs, zs_gen, [z_2, z_2], [z_3, z_3]]
);
random_custom_tuples!(
(pub(crate)),
RandomQuintuplesXYYYZ,
(X, Y, Y, Y, Z),
random_quintuples_xyyyz,
[X, I, xs, xs_gen, [x_0, x_0]],
[Y, J, ys, ys_gen, [y_1, y_1], [y_2, y_2], [y_3, y_3]],
[Z, K, zs, zs_gen, [z_4, z_4]]
);