|
7 | 7 |
|
8 | 8 | // Test that forward mode ad macros are expanded correctly.
|
9 | 9 |
|
10 |
| -use std::autodiff::autodiff; |
| 10 | +use std::autodiff::{autodiff_forward, autodiff_reverse}; |
11 | 11 |
|
12 |
| -#[autodiff(df1, Forward, Dual, Const, Dual)] |
| 12 | +#[autodiff_forward(df1, Dual, Const, Dual)] |
13 | 13 | pub fn f1(x: &[f64], y: f64) -> f64 {
|
14 | 14 | unimplemented!()
|
15 | 15 | }
|
16 | 16 |
|
17 |
| -#[autodiff(df2, Forward, Dual, Const, Const)] |
| 17 | +#[autodiff_forward(df2, Dual, Const, Const)] |
18 | 18 | pub fn f2(x: &[f64], y: f64) -> f64 {
|
19 | 19 | unimplemented!()
|
20 | 20 | }
|
21 | 21 |
|
22 |
| -#[autodiff(df3, Forward, Dual, Const, Const)] |
| 22 | +#[autodiff_forward(df3, Dual, Const, Const)] |
23 | 23 | pub fn f3(x: &[f64], y: f64) -> f64 {
|
24 | 24 | unimplemented!()
|
25 | 25 | }
|
26 | 26 |
|
27 | 27 | // Not the most interesting derivative, but who are we to judge
|
28 |
| -#[autodiff(df4, Forward)] |
| 28 | +#[autodiff_forward(df4)] |
29 | 29 | pub fn f4() {}
|
30 | 30 |
|
31 | 31 | // We want to be sure that the same function can be differentiated in different ways
|
32 |
| -#[autodiff(df5_rev, Reverse, Duplicated, Const, Active)] |
33 |
| -#[autodiff(df5_x, Forward, Dual, Const, Const)] |
34 |
| -#[autodiff(df5_y, Forward, Const, Dual, Const)] |
| 32 | +#[autodiff_reverse(df5_rev, Duplicated, Const, Active)] |
| 33 | +#[autodiff_forward(df5_x, Dual, Const, Const)] |
| 34 | +#[autodiff_forward(df5_y, Const, Dual, Const)] |
35 | 35 | pub fn f5(x: &[f64], y: f64) -> f64 {
|
36 | 36 | unimplemented!()
|
37 | 37 | }
|
38 | 38 |
|
39 | 39 | struct DoesNotImplDefault;
|
40 |
| -#[autodiff(df6, Forward, Const)] |
| 40 | +#[autodiff_forward(df6, Const)] |
41 | 41 | pub fn f6() -> DoesNotImplDefault {
|
42 | 42 | unimplemented!()
|
43 | 43 | }
|
44 | 44 |
|
45 | 45 | // Make sure, that we add the None for the default return.
|
46 |
| -#[autodiff(df7, Forward, Const)] |
| 46 | +#[autodiff_forward(df7, Const)] |
47 | 47 | pub fn f7(x: f32) -> () {}
|
48 | 48 |
|
49 |
| -#[autodiff(f8_1, Forward, Dual, DualOnly)] |
50 |
| -#[autodiff(f8_2, Forward, 4, Dual, DualOnly)] |
51 |
| -#[autodiff(f8_3, Forward, 4, Dual, Dual)] |
| 49 | +#[autodiff_forward(f8_1, Dual, DualOnly)] |
| 50 | +#[autodiff_forward(f8_2, 4, Dual, DualOnly)] |
| 51 | +#[autodiff_forward(f8_3, 4, Dual, Dual)] |
52 | 52 | #[no_mangle]
|
53 | 53 | fn f8(x: &f32) -> f32 {
|
54 | 54 | unimplemented!()
|
55 | 55 | }
|
56 | 56 |
|
57 | 57 | // We want to make sure that we can use the macro for functions defined inside of functions
|
58 | 58 | pub fn f9() {
|
59 |
| - #[autodiff(d_inner_1, Forward, Dual, DualOnly)] |
60 |
| - #[autodiff(d_inner_2, Forward, Dual, Dual)] |
| 59 | + #[autodiff_forward(d_inner_1, Dual, DualOnly)] |
| 60 | + #[autodiff_forward(d_inner_2, Dual, Dual)] |
61 | 61 | fn inner(x: f32) -> f32 {
|
62 | 62 | x * x
|
63 | 63 | }
|
|
0 commit comments