7.5.5.2 SRFI-4 - API

Note that the c32 and c64 functions are only available from (srfi srfi-4 gnu).

Scheme Procedure: u8vector? obj
Scheme Procedure: s8vector? obj
Scheme Procedure: u16vector? obj
Scheme Procedure: s16vector? obj
Scheme Procedure: u32vector? obj
Scheme Procedure: s32vector? obj
Scheme Procedure: u64vector? obj
Scheme Procedure: s64vector? obj
Scheme Procedure: f32vector? obj
Scheme Procedure: f64vector? obj
Scheme Procedure: c32vector? obj
Scheme Procedure: c64vector? obj
C Function: scm_u8vector_p (obj)
C Function: scm_s8vector_p (obj)
C Function: scm_u16vector_p (obj)
C Function: scm_s16vector_p (obj)
C Function: scm_u32vector_p (obj)
C Function: scm_s32vector_p (obj)
C Function: scm_u64vector_p (obj)
C Function: scm_s64vector_p (obj)
C Function: scm_f32vector_p (obj)
C Function: scm_f64vector_p (obj)
C Function: scm_c32vector_p (obj)
C Function: scm_c64vector_p (obj)

Return #t if obj is a homogeneous numeric vector of the indicated type.

Scheme Procedure: make-u8vector n [value]
Scheme Procedure: make-s8vector n [value]
Scheme Procedure: make-u16vector n [value]
Scheme Procedure: make-s16vector n [value]
Scheme Procedure: make-u32vector n [value]
Scheme Procedure: make-s32vector n [value]
Scheme Procedure: make-u64vector n [value]
Scheme Procedure: make-s64vector n [value]
Scheme Procedure: make-f32vector n [value]
Scheme Procedure: make-f64vector n [value]
Scheme Procedure: make-c32vector n [value]
Scheme Procedure: make-c64vector n [value]
C Function: scm_make_u8vector (n, value)
C Function: scm_make_s8vector (n, value)
C Function: scm_make_u16vector (n, value)
C Function: scm_make_s16vector (n, value)
C Function: scm_make_u32vector (n, value)
C Function: scm_make_s32vector (n, value)
C Function: scm_make_u64vector (n, value)
C Function: scm_make_s64vector (n, value)
C Function: scm_make_f32vector (n, value)
C Function: scm_make_f64vector (n, value)
C Function: scm_make_c32vector (n, value)
C Function: scm_make_c64vector (n, value)

Return a newly allocated homogeneous numeric vector holding n elements of the indicated type. If value is given, the vector is initialized with that value, otherwise the contents are unspecified.

Scheme Procedure: u8vector value …
Scheme Procedure: s8vector value …
Scheme Procedure: u16vector value …
Scheme Procedure: s16vector value …
Scheme Procedure: u32vector value …
Scheme Procedure: s32vector value …
Scheme Procedure: u64vector value …
Scheme Procedure: s64vector value …
Scheme Procedure: f32vector value …
Scheme Procedure: f64vector value …
Scheme Procedure: c32vector value …
Scheme Procedure: c64vector value …
C Function: scm_u8vector (values)
C Function: scm_s8vector (values)
C Function: scm_u16vector (values)
C Function: scm_s16vector (values)
C Function: scm_u32vector (values)
C Function: scm_s32vector (values)
C Function: scm_u64vector (values)
C Function: scm_s64vector (values)
C Function: scm_f32vector (values)
C Function: scm_f64vector (values)
C Function: scm_c32vector (values)
C Function: scm_c64vector (values)

Return a newly allocated homogeneous numeric vector of the indicated type, holding the given parameter values. The vector length is the number of parameters given.

Scheme Procedure: u8vector-length vec
Scheme Procedure: s8vector-length vec
Scheme Procedure: u16vector-length vec
Scheme Procedure: s16vector-length vec
Scheme Procedure: u32vector-length vec
Scheme Procedure: s32vector-length vec
Scheme Procedure: u64vector-length vec
Scheme Procedure: s64vector-length vec
Scheme Procedure: f32vector-length vec
Scheme Procedure: f64vector-length vec
Scheme Procedure: c32vector-length vec
Scheme Procedure: c64vector-length vec
C Function: scm_u8vector_length (vec)
C Function: scm_s8vector_length (vec)
C Function: scm_u16vector_length (vec)
C Function: scm_s16vector_length (vec)
C Function: scm_u32vector_length (vec)
C Function: scm_s32vector_length (vec)
C Function: scm_u64vector_length (vec)
C Function: scm_s64vector_length (vec)
C Function: scm_f32vector_length (vec)
C Function: scm_f64vector_length (vec)
C Function: scm_c32vector_length (vec)
C Function: scm_c64vector_length (vec)

Return the number of elements in vec.

Scheme Procedure: u8vector-ref vec i
Scheme Procedure: s8vector-ref vec i
Scheme Procedure: u16vector-ref vec i
Scheme Procedure: s16vector-ref vec i
Scheme Procedure: u32vector-ref vec i
Scheme Procedure: s32vector-ref vec i
Scheme Procedure: u64vector-ref vec i
Scheme Procedure: s64vector-ref vec i
Scheme Procedure: f32vector-ref vec i
Scheme Procedure: f64vector-ref vec i
Scheme Procedure: c32vector-ref vec i
Scheme Procedure: c64vector-ref vec i
C Function: scm_u8vector_ref (vec, i)
C Function: scm_s8vector_ref (vec, i)
C Function: scm_u16vector_ref (vec, i)
C Function: scm_s16vector_ref (vec, i)
C Function: scm_u32vector_ref (vec, i)
C Function: scm_s32vector_ref (vec, i)
C Function: scm_u64vector_ref (vec, i)
C Function: scm_s64vector_ref (vec, i)
C Function: scm_f32vector_ref (vec, i)
C Function: scm_f64vector_ref (vec, i)
C Function: scm_c32vector_ref (vec, i)
C Function: scm_c64vector_ref (vec, i)

Return the element at index i in vec. The first element in vec is index 0.

Scheme Procedure: u8vector-set! vec i value
Scheme Procedure: s8vector-set! vec i value
Scheme Procedure: u16vector-set! vec i value
Scheme Procedure: s16vector-set! vec i value
Scheme Procedure: u32vector-set! vec i value
Scheme Procedure: s32vector-set! vec i value
Scheme Procedure: u64vector-set! vec i value
Scheme Procedure: s64vector-set! vec i value
Scheme Procedure: f32vector-set! vec i value
Scheme Procedure: f64vector-set! vec i value
Scheme Procedure: c32vector-set! vec i value
Scheme Procedure: c64vector-set! vec i value
C Function: scm_u8vector_set_x (vec, i, value)
C Function: scm_s8vector_set_x (vec, i, value)
C Function: scm_u16vector_set_x (vec, i, value)
C Function: scm_s16vector_set_x (vec, i, value)
C Function: scm_u32vector_set_x (vec, i, value)
C Function: scm_s32vector_set_x (vec, i, value)
C Function: scm_u64vector_set_x (vec, i, value)
C Function: scm_s64vector_set_x (vec, i, value)
C Function: scm_f32vector_set_x (vec, i, value)
C Function: scm_f64vector_set_x (vec, i, value)
C Function: scm_c32vector_set_x (vec, i, value)
C Function: scm_c64vector_set_x (vec, i, value)

Set the element at index i in vec to value. The first element in vec is index 0. The return value is unspecified.

Scheme Procedure: u8vector->list vec
Scheme Procedure: s8vector->list vec
Scheme Procedure: u16vector->list vec
Scheme Procedure: s16vector->list vec
Scheme Procedure: u32vector->list vec
Scheme Procedure: s32vector->list vec
Scheme Procedure: u64vector->list vec
Scheme Procedure: s64vector->list vec
Scheme Procedure: f32vector->list vec
Scheme Procedure: f64vector->list vec
Scheme Procedure: c32vector->list vec
Scheme Procedure: c64vector->list vec
C Function: scm_u8vector_to_list (vec)
C Function: scm_s8vector_to_list (vec)
C Function: scm_u16vector_to_list (vec)
C Function: scm_s16vector_to_list (vec)
C Function: scm_u32vector_to_list (vec)
C Function: scm_s32vector_to_list (vec)
C Function: scm_u64vector_to_list (vec)
C Function: scm_s64vector_to_list (vec)
C Function: scm_f32vector_to_list (vec)
C Function: scm_f64vector_to_list (vec)
C Function: scm_c32vector_to_list (vec)
C Function: scm_c64vector_to_list (vec)

Return a newly allocated list holding all elements of vec.

Scheme Procedure: list->u8vector lst
Scheme Procedure: list->s8vector lst
Scheme Procedure: list->u16vector lst
Scheme Procedure: list->s16vector lst
Scheme Procedure: list->u32vector lst
Scheme Procedure: list->s32vector lst
Scheme Procedure: list->u64vector lst
Scheme Procedure: list->s64vector lst
Scheme Procedure: list->f32vector lst
Scheme Procedure: list->f64vector lst
Scheme Procedure: list->c32vector lst
Scheme Procedure: list->c64vector lst
C Function: scm_list_to_u8vector (lst)
C Function: scm_list_to_s8vector (lst)
C Function: scm_list_to_u16vector (lst)
C Function: scm_list_to_s16vector (lst)
C Function: scm_list_to_u32vector (lst)
C Function: scm_list_to_s32vector (lst)
C Function: scm_list_to_u64vector (lst)
C Function: scm_list_to_s64vector (lst)
C Function: scm_list_to_f32vector (lst)
C Function: scm_list_to_f64vector (lst)
C Function: scm_list_to_c32vector (lst)
C Function: scm_list_to_c64vector (lst)

Return a newly allocated homogeneous numeric vector of the indicated type, initialized with the elements of the list lst.

C Function: SCM scm_take_u8vector (const scm_t_uint8 *data, size_t len)
C Function: SCM scm_take_s8vector (const scm_t_int8 *data, size_t len)
C Function: SCM scm_take_u16vector (const scm_t_uint16 *data, size_t len)
C Function: SCM scm_take_s16vector (const scm_t_int16 *data, size_t len)
C Function: SCM scm_take_u32vector (const scm_t_uint32 *data, size_t len)
C Function: SCM scm_take_s32vector (const scm_t_int32 *data, size_t len)
C Function: SCM scm_take_u64vector (const scm_t_uint64 *data, size_t len)
C Function: SCM scm_take_s64vector (const scm_t_int64 *data, size_t len)
C Function: SCM scm_take_f32vector (const float *data, size_t len)
C Function: SCM scm_take_f64vector (const double *data, size_t len)
C Function: SCM scm_take_c32vector (const float *data, size_t len)
C Function: SCM scm_take_c64vector (const double *data, size_t len)

Return a new uniform numeric vector of the indicated type and length that uses the memory pointed to by data to store its elements. This memory will eventually be freed with free. The argument len specifies the number of elements in data, not its size in bytes.

The c32 and c64 variants take a pointer to a C array of floats or doubles. The real parts of the complex numbers are at even indices in that array, the corresponding imaginary parts are at the following odd index.

C Function: const scm_t_uint8 * scm_u8vector_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: const scm_t_int8 * scm_s8vector_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: const scm_t_uint16 * scm_u16vector_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: const scm_t_int16 * scm_s16vector_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: const scm_t_uint32 * scm_u32vector_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: const scm_t_int32 * scm_s32vector_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: const scm_t_uint64 * scm_u64vector_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: const scm_t_int64 * scm_s64vector_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: const float * scm_f32vector_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: const double * scm_f64vector_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: const float * scm_c32vector_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: const double * scm_c64vector_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)

Like scm_vector_elements (see Vector Accessing from C), but returns a pointer to the elements of a uniform numeric vector of the indicated kind.

C Function: scm_t_uint8 * scm_u8vector_writable_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: scm_t_int8 * scm_s8vector_writable_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: scm_t_uint16 * scm_u16vector_writable_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: scm_t_int16 * scm_s16vector_writable_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: scm_t_uint32 * scm_u32vector_writable_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: scm_t_int32 * scm_s32vector_writable_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: scm_t_uint64 * scm_u64vector_writable_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: scm_t_int64 * scm_s64vector_writable_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: float * scm_f32vector_writable_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: double * scm_f64vector_writable_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: float * scm_c32vector_writable_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
C Function: double * scm_c64vector_writable_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)

Like scm_vector_writable_elements (see Vector Accessing from C), but returns a pointer to the elements of a uniform numeric vector of the indicated kind.