Skip to content

Commit

Permalink
Fix real_floor function for different backends
Browse files Browse the repository at this point in the history
Signed-off-by: Rafael Ravedutti <[email protected]>
rafaelravedutti committed Oct 22, 2020

Verified

This commit was signed with the committer’s verified signature. The key has expired.
Czaki Grzegorz Bokota
1 parent 46c8582 commit 89b5239
Showing 4 changed files with 6 additions and 3 deletions.
1 change: 1 addition & 0 deletions backend/device.impala
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@ struct Device {
alloc_mirror: fn(Buffer, i64) -> Buffer,
transfer: fn(Buffer, Buffer) -> (),
sqrt: fn(real_t) -> real_t,
real_floor: fn(real_t) -> real_t,
loop_1d: fn(bool, i32, fn(i32) -> ()) -> (),
add_iterator: fn(&mut i64) -> (),
atomic_add_i32: fn(dev_i32_ptr, i32) -> i32
1 change: 1 addition & 0 deletions backend/mapping_cpu.impala
Original file line number Diff line number Diff line change
@@ -10,6 +10,7 @@ fn @device() -> Device {
alloc_mirror: |buf, size| { buf },
transfer: |from, to| {},
sqrt: @|a| { cpu_intrinsics.sqrt(a) },
real_floor: @|a| { cpu_intrinsics.floor(a) },
loop_1d: @|vec, n, f| { vectorized_range(select(vec, get_vector_width(), 1), 0, n, |i, _| { f(i); }); },
add_iterator: |iterator| { (*iterator)++; },
atomic_add_i32: @|ptr, value| {
1 change: 1 addition & 0 deletions backend/mapping_gpu.impala
Original file line number Diff line number Diff line change
@@ -41,6 +41,7 @@ fn @device() -> Device {
alloc_mirror: |buf, size| { alloc_cpu(size) },
transfer: |from, to| { copy(from, to); },
sqrt: @|a| { gpu_math.sqrt(a) },
real_floor: @|a| { gpu_math.floor(a) },
loop_1d: loop_1d,
add_iterator: |iterator| {},
atomic_add_i32: @|ptr, value| { atomic_add_global_i32(ptr as &mut[1]i32, value) }
6 changes: 3 additions & 3 deletions core/grid.impala
Original file line number Diff line number Diff line change
@@ -404,9 +404,9 @@ fn get_resize(grid: Grid) -> i32 {
}

fn compute_cell_position(position: Vector3D, grid: Grid) -> [i32 * 3] {
let i = real_floor(((position.x - grid.aabb.xmin) / grid.spacing) as real_t) as i32;
let j = real_floor(((position.y - grid.aabb.ymin) / grid.spacing) as real_t) as i32;
let k = real_floor(((position.z - grid.aabb.zmin) / grid.spacing) as real_t) as i32;
let i = device().real_floor(((position.x - grid.aabb.xmin) / grid.spacing) as real_t) as i32;
let j = device().real_floor(((position.y - grid.aabb.ymin) / grid.spacing) as real_t) as i32;
let k = device().real_floor(((position.z - grid.aabb.zmin) / grid.spacing) as real_t) as i32;
[i, j, k]
}

0 comments on commit 89b5239

Please sign in to comment.