Skip to main content

burn_router/ops/
binary.rs

1#[allow(missing_docs)]
2#[macro_export(local_inner_macros)]
3macro_rules! binary_float_ops {
4    (
5        $handles:expr, $desc:expr, $ops:expr
6    ) => {{
7        let lhs = $handles.get_float_tensor::<B>(&$desc.lhs);
8        let rhs = $handles.get_float_tensor::<B>(&$desc.rhs);
9        let output = $ops(lhs, rhs);
10
11        $handles.register_float_tensor::<B>(&$desc.out.id, output);
12    }};
13}
14
15#[allow(missing_docs)]
16#[macro_export(local_inner_macros)]
17macro_rules! binary_float_cmp_ops {
18    (
19        $handles:expr, $desc:expr, $ops:expr
20    ) => {{
21        let lhs = $handles.get_float_tensor::<B>(&$desc.lhs);
22        let rhs = $handles.get_float_tensor::<B>(&$desc.rhs);
23        let output = $ops(lhs, rhs);
24
25        $handles.register_bool_tensor::<B>(&$desc.out.id, output);
26    }};
27}
28
29#[allow(missing_docs)]
30#[macro_export(local_inner_macros)]
31macro_rules! binary_int_ops {
32    (
33        $handles:expr, $desc:expr, $ops:expr
34    ) => {{
35        let lhs = $handles.get_int_tensor::<B>(&$desc.lhs);
36        let rhs = $handles.get_int_tensor::<B>(&$desc.rhs);
37        let output = $ops(lhs, rhs);
38
39        $handles.register_int_tensor::<B>(&$desc.out.id, output);
40    }};
41}
42
43#[allow(missing_docs)]
44#[macro_export(local_inner_macros)]
45macro_rules! binary_int_cmp_ops {
46    (
47        $handles:expr, $desc:expr, $ops:expr
48    ) => {{
49        let lhs = $handles.get_int_tensor::<B>(&$desc.lhs);
50        let rhs = $handles.get_int_tensor::<B>(&$desc.rhs);
51        let output = $ops(lhs, rhs);
52
53        $handles.register_bool_tensor::<B>(&$desc.out.id, output);
54    }};
55}
56
57#[allow(missing_docs)]
58#[macro_export(local_inner_macros)]
59macro_rules! binary_bool_ops {
60    (
61        $handles:expr, $desc:expr, $ops:expr
62    ) => {{
63        let lhs = $handles.get_bool_tensor::<B>(&$desc.lhs);
64        let rhs = $handles.get_bool_tensor::<B>(&$desc.rhs);
65        let output = $ops(lhs, rhs);
66
67        $handles.register_bool_tensor::<B>(&$desc.out.id, output);
68    }};
69}