Skip to content

Commit 2545bdf

Browse files
committed
Changed code organization heirarchy
* Each header in arrayfire has it's own module which reexported later for public exposed API * structs `Array`, `Dim4` has their own source files * `util` module has helper functions needed internally * Modified `constant` to be generic function
1 parent 6fa3f93 commit 2545bdf

File tree

12 files changed

+578
-350
lines changed

12 files changed

+578
-350
lines changed

Cargo.lock

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ build = "build.rs"
66

77
[dependencies]
88
libc = "*"
9+
num = "*"
910

1011
[build-dependencies.rustc-serialize]
1112
rustc-serialize = "*"

src/algorithm/mod.rs

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
extern crate libc;
22

33
use super::Array as Array;
4-
use libc::{c_int, c_uint, c_double};
4+
use self::libc::{c_int, c_uint};
55

6-
type MutAfArray = *mut ::libc::c_longlong;
7-
type MutDouble = *mut ::libc::c_double;
8-
type MutUint = *mut ::libc::c_uint;
9-
type AfArray = ::libc::c_longlong;
6+
type MutAfArray = *mut self::libc::c_longlong;
7+
type MutDouble = *mut self::libc::c_double;
8+
type MutUint = *mut self::libc::c_uint;
9+
type AfArray = self::libc::c_longlong;
1010

1111
#[allow(dead_code)]
1212
extern {
@@ -94,6 +94,7 @@ pub fn sum(input: &Array, dim: i32) -> Array {
9494
// }
9595
//}
9696

97+
#[allow(unused_mut)]
9798
pub fn product(input: &Array, dim: i32) -> Array {
9899
unsafe {
99100
let mut temp: i64 = 0;
@@ -111,6 +112,7 @@ pub fn product(input: &Array, dim: i32) -> Array {
111112
// }
112113
//}
113114

115+
#[allow(unused_mut)]
114116
pub fn min(input: &Array, dim: i32) -> Array {
115117
unsafe {
116118
let mut temp: i64 = 0;
@@ -119,6 +121,7 @@ pub fn min(input: &Array, dim: i32) -> Array {
119121
}
120122
}
121123

124+
#[allow(unused_mut)]
122125
pub fn max(input: &Array, dim: i32) -> Array {
123126
unsafe {
124127
let mut temp: i64 = 0;
@@ -127,6 +130,7 @@ pub fn max(input: &Array, dim: i32) -> Array {
127130
}
128131
}
129132

133+
#[allow(unused_mut)]
130134
pub fn all_true(input: &Array, dim: i32) -> Array {
131135
unsafe {
132136
let mut temp: i64 = 0;
@@ -135,6 +139,7 @@ pub fn all_true(input: &Array, dim: i32) -> Array {
135139
}
136140
}
137141

142+
#[allow(unused_mut)]
138143
pub fn any_true(input: &Array, dim: i32) -> Array {
139144
unsafe {
140145
let mut temp: i64 = 0;
@@ -143,6 +148,7 @@ pub fn any_true(input: &Array, dim: i32) -> Array {
143148
}
144149
}
145150

151+
#[allow(unused_mut)]
146152
pub fn count(input: &Array, dim: i32) -> Array {
147153
unsafe {
148154
let mut temp: i64 = 0;
@@ -151,6 +157,7 @@ pub fn count(input: &Array, dim: i32) -> Array {
151157
}
152158
}
153159

160+
#[allow(unused_mut)]
154161
pub fn sum_all(input: &Array) -> (f64, f64) {
155162
unsafe {
156163
let mut real: f64 = 0.0;
@@ -191,6 +198,7 @@ pub fn product_all(input: &Array) -> (f64, f64) {
191198
// }
192199
//}
193200

201+
#[allow(unused_mut)]
194202
pub fn min_all(input: &Array) -> (f64, f64) {
195203
unsafe {
196204
let mut real: f64 = 0.0;
@@ -201,6 +209,7 @@ pub fn min_all(input: &Array) -> (f64, f64) {
201209
}
202210
}
203211

212+
#[allow(unused_mut)]
204213
pub fn max_all(input: &Array) -> (f64, f64) {
205214
unsafe {
206215
let mut real: f64 = 0.0;
@@ -211,6 +220,7 @@ pub fn max_all(input: &Array) -> (f64, f64) {
211220
}
212221
}
213222

223+
#[allow(unused_mut)]
214224
pub fn all_true_all(input: &Array) -> (f64, f64) {
215225
unsafe {
216226
let mut real: f64 = 0.0;
@@ -221,6 +231,7 @@ pub fn all_true_all(input: &Array) -> (f64, f64) {
221231
}
222232
}
223233

234+
#[allow(unused_mut)]
224235
pub fn any_true_all(input: &Array) -> (f64, f64) {
225236
unsafe {
226237
let mut real: f64 = 0.0;
@@ -231,6 +242,7 @@ pub fn any_true_all(input: &Array) -> (f64, f64) {
231242
}
232243
}
233244

245+
#[allow(unused_mut)]
234246
pub fn count_all(input: &Array) -> (f64, f64) {
235247
unsafe {
236248
let mut real: f64 = 0.0;
@@ -241,6 +253,7 @@ pub fn count_all(input: &Array) -> (f64, f64) {
241253
}
242254
}
243255

256+
#[allow(unused_mut)]
244257
pub fn imin(input: &Array, dim: i32) -> (Array, Array) {
245258
unsafe {
246259
let mut temp: i64 = 0;
@@ -251,6 +264,7 @@ pub fn imin(input: &Array, dim: i32) -> (Array, Array) {
251264
}
252265
}
253266

267+
#[allow(unused_mut)]
254268
pub fn imax(input: &Array, dim: i32) -> (Array, Array) {
255269
unsafe {
256270
let mut temp: i64 = 0;
@@ -261,6 +275,7 @@ pub fn imax(input: &Array, dim: i32) -> (Array, Array) {
261275
}
262276
}
263277

278+
#[allow(unused_mut)]
264279
pub fn imin_all(input: &Array) -> (f64, f64, u32) {
265280
unsafe {
266281
let mut real: f64 = 0.0;
@@ -272,6 +287,7 @@ pub fn imin_all(input: &Array) -> (f64, f64, u32) {
272287
}
273288
}
274289

290+
#[allow(unused_mut)]
275291
pub fn imax_all(input: &Array) -> (f64, f64, u32) {
276292
unsafe {
277293
let mut real: f64 = 0.0;
@@ -283,6 +299,7 @@ pub fn imax_all(input: &Array) -> (f64, f64, u32) {
283299
}
284300
}
285301

302+
#[allow(unused_mut)]
286303
pub fn accum(input: &Array, dim: i32) -> Array {
287304
unsafe {
288305
let mut temp: i64 = 0;
@@ -291,6 +308,7 @@ pub fn accum(input: &Array, dim: i32) -> Array {
291308
}
292309
}
293310

311+
#[allow(unused_mut)]
294312
pub fn locate(input: &Array) -> Array {
295313
unsafe {
296314
let mut temp: i64 = 0;
@@ -299,6 +317,7 @@ pub fn locate(input: &Array) -> Array {
299317
}
300318
}
301319

320+
#[allow(unused_mut)]
302321
pub fn diff1(input: &Array, dim: i32) -> Array {
303322
unsafe {
304323
let mut temp: i64 = 0;
@@ -307,6 +326,7 @@ pub fn diff1(input: &Array, dim: i32) -> Array {
307326
}
308327
}
309328

329+
#[allow(unused_mut)]
310330
pub fn diff2(input: &Array, dim: i32) -> Array {
311331
unsafe {
312332
let mut temp: i64 = 0;
@@ -315,6 +335,7 @@ pub fn diff2(input: &Array, dim: i32) -> Array {
315335
}
316336
}
317337

338+
#[allow(unused_mut)]
318339
pub fn sort(input: &Array, dim: u32, ascending: bool) -> Array {
319340
unsafe {
320341
let mut temp: i64 = 0;
@@ -324,6 +345,7 @@ pub fn sort(input: &Array, dim: u32, ascending: bool) -> Array {
324345
}
325346
}
326347

348+
#[allow(unused_mut)]
327349
pub fn sort_index(input: &Array, dim: u32, ascending: bool) -> (Array, Array) {
328350
unsafe {
329351
let mut temp: i64 = 0;
@@ -335,6 +357,7 @@ pub fn sort_index(input: &Array, dim: u32, ascending: bool) -> (Array, Array) {
335357
}
336358
}
337359

360+
#[allow(unused_mut)]
338361
pub fn sort_by_key(keys: &Array, vals: &Array, dim: u32, ascending: bool) -> (Array, Array) {
339362
unsafe {
340363
let mut temp: i64 = 0;
@@ -346,6 +369,7 @@ pub fn sort_by_key(keys: &Array, vals: &Array, dim: u32, ascending: bool) -> (Ar
346369
}
347370
}
348371

372+
#[allow(unused_mut)]
349373
pub fn set_unique(input: &Array, is_sorted: bool) -> Array {
350374
unsafe {
351375
let mut temp: i64 = 0;
@@ -354,6 +378,7 @@ pub fn set_unique(input: &Array, is_sorted: bool) -> Array {
354378
}
355379
}
356380

381+
#[allow(unused_mut)]
357382
pub fn set_union(first: &Array, second: &Array, is_unique: bool) -> Array {
358383
unsafe {
359384
let mut temp: i64 = 0;
@@ -363,6 +388,7 @@ pub fn set_union(first: &Array, second: &Array, is_unique: bool) -> Array {
363388
}
364389
}
365390

391+
#[allow(unused_mut)]
366392
pub fn set_intersect(first: &Array, second: &Array, is_unique: bool) -> Array {
367393
unsafe {
368394
let mut temp: i64 = 0;

src/arith/mod.rs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
extern crate libc;
2+
3+
use super::Array as Array;
4+
use self::libc::{c_int};
5+
use data::constant;
6+
7+
type MutAfArray = *mut self::libc::c_longlong;
8+
type MutDouble = *mut self::libc::c_double;
9+
type MutUint = *mut self::libc::c_uint;
10+
type AfArray = self::libc::c_longlong;
11+
12+
use std::ops::Add;
13+
14+
#[allow(dead_code)]
15+
extern {
16+
fn af_add(out: MutAfArray, lhs: AfArray, rhs: AfArray, batch: c_int) -> c_int;
17+
18+
fn af_sin(out: MutAfArray, arr: AfArray) -> c_int;
19+
20+
}
21+
22+
impl Add<f64> for Array {
23+
type Output = Array;
24+
25+
fn add(self, rhs: f64) -> Array {
26+
let cnst_arr = constant(rhs, self.dims());
27+
unsafe {
28+
let mut temp: i64 = 0;
29+
af_add(&mut temp as MutAfArray, self.get() as AfArray, cnst_arr.get() as AfArray, 0);
30+
Array {handle: temp}
31+
}
32+
}
33+
}
34+
35+
#[allow(unused_mut)]
36+
pub fn sin(input: &Array) -> Array {
37+
unsafe {
38+
let mut temp: i64 = 0;
39+
af_sin(&mut temp as MutAfArray, input.get() as AfArray);
40+
Array {handle: temp}
41+
}
42+
}

0 commit comments

Comments
 (0)