@@ -4,10 +4,9 @@ extern crate num;
44use array:: Array ;
55use dim4:: Dim4 ;
66use defines:: AfError ;
7- use defines:: Aftype ;
87use self :: libc:: { uint8_t, c_int, c_uint, c_double} ;
98use self :: num:: Complex ;
10-
9+ use util :: HasAfEnum ;
1110use std:: vec:: Vec ;
1211
1312type MutAfArray = * mut self :: libc:: c_longlong ;
@@ -220,15 +219,15 @@ pub fn constant<T : ConstGenerator>(cnst: T, dims: Dim4) -> Result<Array, AfErro
220219/// - `dims` is the size of Array
221220/// - `seq_dim` is the dimension along which range values are populated, all values along other
222221/// dimensions are just repeated
223- /// - `aftype` is the type of the Array.
224222///
225223/// # Return Values
226224/// Array
227225#[ allow( unused_mut) ]
228- pub fn range ( dims : Dim4 , seq_dim : i32 , aftype : Aftype ) -> Result < Array , AfError > {
226+ pub fn range < T : HasAfEnum > ( dims : Dim4 , seq_dim : i32 ) -> Result < Array , AfError > {
229227 unsafe {
228+ let aftype = T :: get_af_dtype ( ) ;
230229 let mut temp: i64 = 0 ;
231- let err_val =af_range ( & mut temp as MutAfArray ,
230+ let err_val = af_range ( & mut temp as MutAfArray ,
232231 dims. ndims ( ) as c_uint , dims. get ( ) . as_ptr ( ) as * const DimT ,
233232 seq_dim as c_int , aftype as uint8_t ) ;
234233 match err_val {
@@ -246,14 +245,14 @@ pub fn range(dims: Dim4, seq_dim: i32, aftype: Aftype) -> Result<Array, AfError>
246245///
247246/// - `dims` is the dimensions of the sequence to be generated
248247/// - `tdims` is the number of repitions of the unit dimensions
249- /// - `aftype` is the type of Array to generate
250248///
251249/// # Return Values
252250///
253251/// Array
254252#[ allow( unused_mut) ]
255- pub fn iota ( dims : Dim4 , tdims : Dim4 , aftype : Aftype ) -> Result < Array , AfError > {
253+ pub fn iota < T : HasAfEnum > ( dims : Dim4 , tdims : Dim4 ) -> Result < Array , AfError > {
256254 unsafe {
255+ let aftype = T :: get_af_dtype ( ) ;
257256 let mut temp: i64 = 0 ;
258257 let err_val =af_iota ( & mut temp as MutAfArray ,
259258 dims. ndims ( ) as c_uint , dims. get ( ) . as_ptr ( ) as * const DimT ,
@@ -293,8 +292,9 @@ pub fn get_seed() -> Result<u64, AfError> {
293292macro_rules! data_gen_def {
294293 ( $fn_name: ident, $ffi_name: ident) => (
295294 #[ allow( unused_mut) ]
296- pub fn $fn_name( dims: Dim4 , aftype : Aftype ) -> Result <Array , AfError > {
295+ pub fn $fn_name< T : HasAfEnum > ( dims: Dim4 ) -> Result <Array , AfError > {
297296 unsafe {
297+ let aftype = T :: get_af_dtype( ) ;
298298 let mut temp: i64 = 0 ;
299299 let err_val = $ffi_name( & mut temp as MutAfArray ,
300300 dims. ndims( ) as c_uint, dims. get( ) . as_ptr( ) as * const DimT ,
@@ -412,9 +412,9 @@ pub fn join_many(dim: i32, inputs: Vec<&Array>) -> Result<Array, AfError> {
412412/// ```
413413/// # #[macro_use] extern crate arrayfire;
414414/// # fn main() {
415- /// let a = randu(Dim4::new(&[5, 3, 1, 1]), Aftype::F32 ).unwrap();
416- /// let b = randu(Dim4::new(&[5, 3, 1, 1]), Aftype::F32 ).unwrap();
417- /// let c = randu(Dim4::new(&[5, 3, 1, 1]), Aftype::F32 ).unwrap();
415+ /// let a = randu::<f32> (Dim4::new(&[5, 3, 1, 1])).unwrap();
416+ /// let b = randu::<f32> (Dim4::new(&[5, 3, 1, 1])).unwrap();
417+ /// let c = randu::<f32> (Dim4::new(&[5, 3, 1, 1])).unwrap();
418418/// let d = join_many![2, a, b, c];
419419/// # }
420420/// ```
0 commit comments