11extern crate arrayfire as af;
22
3- use af:: Dim4 ;
4- use af:: Array ;
3+ use af:: * ;
54
65#[ allow( unused_must_use) ]
76fn main ( ) {
8- af :: set_device ( 0 ) ;
9- af :: info ( ) ;
7+ set_device ( 0 ) ;
8+ info ( ) ;
109
1110 let dims = Dim4 :: new ( & [ 5 , 3 , 1 , 1 ] ) ;
1211
1312 println ! ( "Create a 5-by-3 matrix of random floats on the GPU" ) ;
14- let a = af :: randu ( dims, af :: Aftype :: F32 ) . unwrap ( ) ;
15- af :: print ( & a) ;
13+ let a = randu ( dims, Aftype :: F32 ) . unwrap ( ) ;
14+ print ( & a) ;
1615
1716 println ! ( "Element-wise arithmetic" ) ;
18- let b = af:: add ( af:: sin ( & a) , 1.5 ) . unwrap ( ) ;
19- let b2 = af:: add ( af:: sin ( & a) , af:: cos ( & a) ) . unwrap ( ) ;
17+ let b = sin ( & a)
18+ . and_then ( |x| add ( x, 1.5 ) )
19+ . unwrap ( ) ;
20+
21+ let b2 = sin ( & a) .
22+ and_then ( |x| {
23+ cos ( & a)
24+ . and_then ( |y| add ( x, y) )
25+ } )
26+ . unwrap ( ) ;
2027
2128 let b3 = ! & a;
22- println ! ( "sin(a) + 1.5 => " ) ; af :: print ( & b) ;
23- println ! ( "sin(a) + cos(a) => " ) ; af :: print ( & b2) ;
24- println ! ( "!a => " ) ; af :: print ( & b3) ;
29+ println ! ( "sin(a) + 1.5 => " ) ; print ( & b) ;
30+ println ! ( "sin(a) + cos(a) => " ) ; print ( & b2) ;
31+ println ! ( "!a => " ) ; print ( & b3) ;
2532
2633 let test = & a + & b;
27- println ! ( "a + b" ) ; af :: print ( & test) ;
34+ println ! ( "a + b" ) ; print ( & test) ;
2835
2936 // printf("Negate the first three elements of second column\n");
3037 // B(seq(0, 2), 1) = B(seq(0, 2), 1) * -1;
3138 // af_print(B);
3239
3340 println ! ( "Fourier transform the result" ) ;
34- let c = & af :: fft ( & b, 1.0 , 0 ) . unwrap ( ) ;
35- af :: print ( & c) ;
41+ let c = & fft ( & b, 1.0 , 0 ) . unwrap ( ) ;
42+ print ( & c) ;
3643
3744 // printf("Grab last row\n");
3845 // array c = C.row(end);
@@ -41,21 +48,21 @@ fn main() {
4148 println ! ( "Create 2-by-3 matrix from host data" ) ;
4249 let d_dims = Dim4 :: new ( & [ 2 , 3 , 1 , 1 ] ) ;
4350 let d_input: [ i32 ; 6 ] = [ 1 , 2 , 3 , 4 , 5 , 6 ] ;
44- let d = & Array :: new ( d_dims, & d_input, af :: Aftype :: S32 ) . unwrap ( ) ;
45- af :: print ( d) ;
51+ let d = & Array :: new ( d_dims, & d_input, Aftype :: S32 ) . unwrap ( ) ;
52+ print ( d) ;
4653
4754 // printf("Copy last column onto first\n");
4855 // D.col(0) = D.col(end);
4956 // af_print(D);
5057
5158 // // Sort A
5259 println ! ( "Sort A and print sorted array and corresponding indices" ) ;
53- let ( vals, inds) = af :: sort_index ( & a, 0 , true ) . unwrap ( ) ;
54- af :: print ( & vals) ;
55- af :: print ( & inds) ;
60+ let ( vals, inds) = sort_index ( & a, 0 , true ) . unwrap ( ) ;
61+ print ( & vals) ;
62+ print ( & inds) ;
5663
5764 println ! ( "u8 constant array" ) ;
58- let u8_cnst = & af :: constant ( 1 as u8 , dims) . unwrap ( ) ;
59- af :: print ( u8_cnst) ;
65+ let u8_cnst = & constant ( 1 as u8 , dims) . unwrap ( ) ;
66+ print ( u8_cnst) ;
6067 println ! ( "Is u8_cnst array float precision type ? {}" , u8_cnst. is_single( ) . unwrap( ) ) ;
6168}
0 commit comments