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
use dace::*; fn main() {
DA::init(10, 3);
let (x, y, z): (DA, DA, DA) = (da!(1), da!(2), da!(3));
let (a, b, c): (DA, DA, DA) = (da!(1.0), da!(2.0), da!(3.0));
let v1: DA = &a * x.sin() + &b * y.cos() + &c * z.tan();
println!("{v1}");
let v2: DA = 1.0 * x.sin() + 2.0 * y.cos() + 3.0 * z.tan();
println!("v1 == v2: {}", v1 == v2);
let xyz: AlgebraicVector<DA> = darray![x.sin(), y.cos(), z.tan()];
let abc: AlgebraicVector<f64> = darray![1.0, 2.0, 3.0];
let v3: DA = xyz.dot(&abc);
println!("v1 == v3: {}", v1 == v3);
let xyz: AlgebraicMatrix<DA> = darray![[x.sin(), y.cos(), z.tan()]];
let abc: AlgebraicMatrix<f64> = darray![[1.0], [2.0], [3.0]];
let v4: AlgebraicMatrix<DA> = xyz.dot(&abc);
println!("v1 == v4: {}", v1 == v4[(0, 0)]);
}