|
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