;;;;
;;;; 160/base.stk         -- SRFI-160: Homogeneous numeric vector libraries
;;;;                                   (base sublibrary)
;;;;
;;;; Copyright © 2021 Jeronimo Pellegrini <j_p@aleph0.info>
;;;;
;;;;
;;;; This program is free software; you can redistribute it and/or modify
;;;; it under the terms of the GNU General Public License as published by
;;;; the Free Software Foundation; either version 2 of the License, or
;;;; (at your option) any later version.
;;;;
;;;; This program is distributed in the hope that it will be useful,
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;;; GNU General Public License for more details.
;;;;
;;;; You should have received a copy of the GNU General Public License
;;;; along with this program; if not, write to the Free Software
;;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
;;;; USA.
;;;;
;;;;           Author: Jeronimo Pellegrini [j_p@aleph0.info]
;;;;    Creation date: 17-Jun-2022 09:03
;;;;


(select-module scheme/vector/base)

;; The srfi requires us to offer uvectors for *all* types,
;; so we load SRFI 4.
(import (srfi 4)
        (scheme comparator))

(export s8vector? make-s8vector s8vector s8vector-length s8vector-ref
        s8vector-set! s8vector->list list->s8vector

        u8vector? make-u8vector u8vector u8vector-length u8vector-ref
        u8vector-set! u8vector->list list->u8vector

        s16vector? make-s16vector s16vector s16vector-length s16vector-ref
        s16vector-set! s16vector->list list->s16vector

        u16vector? make-u16vector u16vector u16vector-length u16vector-ref
        u16vector-set! u16vector->list list->u16vector

        s32vector? make-s32vector s32vector s32vector-length s32vector-ref
        s32vector-set! s32vector->list list->s32vector

        u32vector? make-u32vector u32vector u32vector-length u32vector-ref
        u32vector-set! u32vector->list list->u32vector

        s64vector? make-s64vector s64vector s64vector-length s64vector-ref
        s64vector-set! s64vector->list list->s64vector

        u64vector?  make-u64vector u64vector u64vector-length u64vector-ref
        u64vector-set! u64vector->list list->u64vector

        f32vector?  make-f32vector f32vector f32vector-length f32vector-ref
        f32vector-set! f32vector->list list->f32vector

        f64vector?  make-f64vector f64vector f64vector-length f64vector-ref
        f64vector-set! f64vector->list list->f64vector

        c64vector?  make-c64vector c64vector c64vector-length c64vector-ref
        c64vector-set! c64vector->list list->c64vector

        c128vector?  make-c128vector c128vector c128vector-length c128vector-ref
        c128vector-set! c128vector->list list->c128vector)

(provide "scheme/vector/base")
