3 releases (breaking)
0.3.0 | Apr 17, 2022 |
---|---|
0.2.0 | Oct 28, 2021 |
0.1.0 | Sep 28, 2021 |
#4 in #memcpy
533 downloads per month
Used in 5 crates
(3 directly)
15KB
329 lines
ndcopy
Fast N-dimensional array memcpy.
Speed is achieved by copying slices row-by-row. Rust code is much faster at copying slices than trying to index N-dimensional coordinates for every value index.
Example Code
use ndcopy::ndshape::{ConstShape, ConstShape3u32};
use ndcopy::copy3;
type SrcShape = ConstShape3u32<50, 50, 50>;
type DstShape = ConstShape3u32<25, 25, 25>;
let src = [1u8; SrcShape::USIZE];
let mut dst = [0u8; DstShape::USIZE];
let copy_shape = [20; 3];
let src_min = [1, 2, 3];
let dst_min = [2, 3, 4];
copy3(
copy_shape,
&src,
&SrcShape {},
src_min,
&mut dst,
&DstShape {},
dst_min,
);
License: MIT OR Apache-2.0
lib.rs
:
Fast N-dimensional array memcpy.
Speed is achieved by copying slices row-by-row. Rust code is much faster at copying slices than trying to index N-dimensional coordinates for every value index.
Example Code
use ndcopy::ndshape::{ConstShape, ConstShape3u32};
use ndcopy::copy3;
type SrcShape = ConstShape3u32<50, 50, 50>;
type DstShape = ConstShape3u32<25, 25, 25>;
let src = [1u8; SrcShape::USIZE];
let mut dst = [0u8; DstShape::USIZE];
let copy_shape = [20; 3];
let src_min = [1, 2, 3];
let dst_min = [2, 3, 4];
copy3(
copy_shape,
&src,
&SrcShape {},
src_min,
&mut dst,
&DstShape {},
dst_min,
);
Dependencies
~74KB