5.1 Safe Homogenous Vectors
(require ffi/vector) |
Homogenous vectors are similar to C vectors (see Safe C Vectors), except that they define different types of vectors, each with a hard-wired type.
An exception is the u8 family of bindings, which are just aliases for byte-string bindings: make-u8vector, u8vector. u8vector?, u8vector-length, u8vector-ref, u8vector-set!, list->u8vector, u8vector->list.
(make-u8vector len) → u8vector? |
len : exact-nonnegative-integer? |
(u8vector val ...) → u8vector? |
val : number? |
(u8vector? v) → boolean? |
v : any/c |
(u8vector-length vec) → exact-nonnegative-integer? |
vec : u8vector? |
(u8vector-ref vec k) → number? |
vec : u8vector? |
k : exact-nonnegative-integer? |
(u8vector-set! vec k val) → void? |
vec : u8vector? |
k : exact-nonnegative-integer? |
val : number? |
(list->u8vector lst) → u8vector? |
lst : (listof number?) |
(u8vector->list vec) → (listof number?) |
vec : u8vector? |
(u8vector->cpointer vec) → cpointer? |
vec : u8vector? |
(make-s8vector len) → s8vector? |
len : exact-nonnegative-integer? |
(s8vector val ...) → s8vector? |
val : number? |
(s8vector? v) → boolean? |
v : any/c |
(s8vector-length vec) → exact-nonnegative-integer? |
vec : s8vector? |
(s8vector-ref vec k) → number? |
vec : s8vector? |
k : exact-nonnegative-integer? |
(s8vector-set! vec k val) → void? |
vec : s8vector? |
k : exact-nonnegative-integer? |
val : number? |
(list->s8vector lst) → s8vector? |
lst : (listof number?) |
(s8vector->list vec) → (listof number?) |
vec : s8vector? |
(s8vector->cpointer vec) → cpointer? |
vec : s8vector? |
Like make-vector, etc., but for _int8 elements.
(make-s16vector len) → s16vector? |
len : exact-nonnegative-integer? |
(s16vector val ...) → s16vector? |
val : number? |
(s16vector? v) → boolean? |
v : any/c |
(s16vector-length vec) → exact-nonnegative-integer? |
vec : s16vector? |
(s16vector-ref vec k) → number? |
vec : s16vector? |
k : exact-nonnegative-integer? |
(s16vector-set! vec k val) → void? |
vec : s16vector? |
k : exact-nonnegative-integer? |
val : number? |
(list->s16vector lst) → s16vector? |
lst : (listof number?) |
(s16vector->list vec) → (listof number?) |
vec : s16vector? |
(s16vector->cpointer vec) → cpointer? |
vec : s16vector? |
Like make-vector, etc., but for _int16 elements.
(_s16vector mode maybe-len) |
_s16vector |
(make-u16vector len) → u16vector? |
len : exact-nonnegative-integer? |
(u16vector val ...) → u16vector? |
val : number? |
(u16vector? v) → boolean? |
v : any/c |
(u16vector-length vec) → exact-nonnegative-integer? |
vec : u16vector? |
(u16vector-ref vec k) → number? |
vec : u16vector? |
k : exact-nonnegative-integer? |
(u16vector-set! vec k val) → void? |
vec : u16vector? |
k : exact-nonnegative-integer? |
val : number? |
(list->u16vector lst) → u16vector? |
lst : (listof number?) |
(u16vector->list vec) → (listof number?) |
vec : u16vector? |
(u16vector->cpointer vec) → cpointer? |
vec : u16vector? |
Like make-vector, etc., but for _uint16 elements.
(_u16vector mode maybe-len) |
_u16vector |
(make-s32vector len) → s32vector? |
len : exact-nonnegative-integer? |
(s32vector val ...) → s32vector? |
val : number? |
(s32vector? v) → boolean? |
v : any/c |
(s32vector-length vec) → exact-nonnegative-integer? |
vec : s32vector? |
(s32vector-ref vec k) → number? |
vec : s32vector? |
k : exact-nonnegative-integer? |
(s32vector-set! vec k val) → void? |
vec : s32vector? |
k : exact-nonnegative-integer? |
val : number? |
(list->s32vector lst) → s32vector? |
lst : (listof number?) |
(s32vector->list vec) → (listof number?) |
vec : s32vector? |
(s32vector->cpointer vec) → cpointer? |
vec : s32vector? |
Like make-vector, etc., but for _int32 elements.
(_s32vector mode maybe-len) |
_s32vector |
(make-u32vector len) → u32vector? |
len : exact-nonnegative-integer? |
(u32vector val ...) → u32vector? |
val : number? |
(u32vector? v) → boolean? |
v : any/c |
(u32vector-length vec) → exact-nonnegative-integer? |
vec : u32vector? |
(u32vector-ref vec k) → number? |
vec : u32vector? |
k : exact-nonnegative-integer? |
(u32vector-set! vec k val) → void? |
vec : u32vector? |
k : exact-nonnegative-integer? |
val : number? |
(list->u32vector lst) → u32vector? |
lst : (listof number?) |
(u32vector->list vec) → (listof number?) |
vec : u32vector? |
(u32vector->cpointer vec) → cpointer? |
vec : u32vector? |
Like make-vector, etc., but for _uint32 elements.
(_u32vector mode maybe-len) |
_u32vector |
(make-s64vector len) → s64vector? |
len : exact-nonnegative-integer? |
(s64vector val ...) → s64vector? |
val : number? |
(s64vector? v) → boolean? |
v : any/c |
(s64vector-length vec) → exact-nonnegative-integer? |
vec : s64vector? |
(s64vector-ref vec k) → number? |
vec : s64vector? |
k : exact-nonnegative-integer? |
(s64vector-set! vec k val) → void? |
vec : s64vector? |
k : exact-nonnegative-integer? |
val : number? |
(list->s64vector lst) → s64vector? |
lst : (listof number?) |
(s64vector->list vec) → (listof number?) |
vec : s64vector? |
(s64vector->cpointer vec) → cpointer? |
vec : s64vector? |
Like make-vector, etc., but for _int64 elements.
(_s64vector mode maybe-len) |
_s64vector |
(make-u64vector len) → u64vector? |
len : exact-nonnegative-integer? |
(u64vector val ...) → u64vector? |
val : number? |
(u64vector? v) → boolean? |
v : any/c |
(u64vector-length vec) → exact-nonnegative-integer? |
vec : u64vector? |
(u64vector-ref vec k) → number? |
vec : u64vector? |
k : exact-nonnegative-integer? |
(u64vector-set! vec k val) → void? |
vec : u64vector? |
k : exact-nonnegative-integer? |
val : number? |
(list->u64vector lst) → u64vector? |
lst : (listof number?) |
(u64vector->list vec) → (listof number?) |
vec : u64vector? |
(u64vector->cpointer vec) → cpointer? |
vec : u64vector? |
Like make-vector, etc., but for _uint64 elements.
(_u64vector mode maybe-len) |
_u64vector |
(make-f32vector len) → f32vector? |
len : exact-nonnegative-integer? |
(f32vector val ...) → f32vector? |
val : number? |
(f32vector? v) → boolean? |
v : any/c |
(f32vector-length vec) → exact-nonnegative-integer? |
vec : f32vector? |
(f32vector-ref vec k) → number? |
vec : f32vector? |
k : exact-nonnegative-integer? |
(f32vector-set! vec k val) → void? |
vec : f32vector? |
k : exact-nonnegative-integer? |
val : number? |
(list->f32vector lst) → f32vector? |
lst : (listof number?) |
(f32vector->list vec) → (listof number?) |
vec : f32vector? |
(f32vector->cpointer vec) → cpointer? |
vec : f32vector? |
Like make-vector, etc., but for _float elements.
(_f32vector mode maybe-len) |
_f32vector |
(make-f64vector len) → f64vector? |
len : exact-nonnegative-integer? |
(f64vector val ...) → f64vector? |
val : number? |
(f64vector? v) → boolean? |
v : any/c |
(f64vector-length vec) → exact-nonnegative-integer? |
vec : f64vector? |
(f64vector-ref vec k) → number? |
vec : f64vector? |
k : exact-nonnegative-integer? |
(f64vector-set! vec k val) → void? |
vec : f64vector? |
k : exact-nonnegative-integer? |
val : number? |
(list->f64vector lst) → f64vector? |
lst : (listof number?) |
(f64vector->list vec) → (listof number?) |
vec : f64vector? |
(f64vector->cpointer vec) → cpointer? |
vec : f64vector? |
Like make-vector, etc., but for _double* elements.
(_f64vector mode maybe-len) |
_f64vector |