1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
use ;
use *;
/// Checks the closeness of two tensors and prints the results.
///
/// Compares tensors by checking the absolute difference between each element.
/// Prints the percentage of elements within specified tolerances.
///
/// # Arguments
///
/// * `output` - The output tensor.
/// * `expected` - The expected tensor.
///
/// # Example
///
/// ```no_run
/// use burn_tensor::backend::Backend;
/// use burn_tensor::{check_closeness, Tensor};
///
/// fn example<B: Backend>() {
/// let device = Default::default();
/// let tensor1 = Tensor::<B, 1>::from_floats(
/// [1.0, 2.0, 3.0, 4.0, 5.0, 6.001, 7.002, 8.003, 9.004, 10.1],
/// &device,
/// );
/// let tensor2 = Tensor::<B, 1>::from_floats(
/// [1.0, 2.0, 3.0, 4.000, 5.0, 6.0, 7.001, 8.002, 9.003, 10.004],
/// &device,
/// );
/// check_closeness(&tensor1, &tensor2);
///}
/// ```
///
/// # Output
///
/// ```text
/// Tensor Closeness Check Results:
/// ===============================
/// Epsilon: 1e-1
/// Close elements: 10/10 (100.00%)
/// [PASS] All elements are within tolerance
///
/// Epsilon: 1e-2
/// Close elements: 10/10 (100.00%)
/// [PASS] All elements are within tolerance
///
/// Epsilon: 1e-3
/// Close elements: 9/10 (90.00%)
/// [WARN] Most elements are within tolerance
///
/// Epsilon: 1e-4
/// Close elements: 6/10 (60.00%)
/// [FAIL] Significant differences detected
///
/// Epsilon: 1e-5
/// Close elements: 5/10 (50.00%)
/// [FAIL] Significant differences detected
///
/// Epsilon: 1e-6
/// Close elements: 5/10 (50.00%)
/// [FAIL] Significant differences detected
///
/// Epsilon: 1e-7
/// Close elements: 5/10 (50.00%)
/// [FAIL] Significant differences detected
///
/// Epsilon: 1e-8
/// Close elements: 5/10 (50.00%)
/// [FAIL] Significant differences detected
///
/// Closeness check complete.
/// ```