Very fast Python line simplification using either the RDP or Visvalingam-Whyatt algorithm implemented in Rust
1cdef extern from "header.h":
2 struct ExternalArray:
3 void* data
4 size_t len
5
6cdef extern from "header.h":
7 struct InternalArray:
8 void* data
9 size_t len
10
11 cdef InternalArray simplify_rdp_ffi(ExternalArray, double epsilon);
12 cdef InternalArray simplify_rdp_idx_ffi(ExternalArray, double epsilon);
13 cdef InternalArray simplify_visvalingam_ffi(ExternalArray, double epsilon);
14 cdef InternalArray simplify_visvalingam_idx_ffi(ExternalArray, double epsilon);
15 cdef InternalArray simplify_visvalingamp_ffi(ExternalArray, double epsilon);
16 cdef void drop_float_array(InternalArray coords);
17 cdef void drop_usize_array(InternalArray coords);