| 1 | ;;; srfi-4.scm --- Homogeneous Numeric Vector Datatypes |
| 2 | |
| 3 | ;; Copyright (C) 2001, 2002, 2004, 2006 Free Software Foundation, Inc. |
| 4 | ;; |
| 5 | ;; This library is free software; you can redistribute it and/or |
| 6 | ;; modify it under the terms of the GNU Lesser General Public |
| 7 | ;; License as published by the Free Software Foundation; either |
| 8 | ;; version 2.1 of the License, or (at your option) any later version. |
| 9 | ;; |
| 10 | ;; This library is distributed in the hope that it will be useful, |
| 11 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 13 | ;; Lesser General Public License for more details. |
| 14 | ;; |
| 15 | ;; You should have received a copy of the GNU Lesser General Public |
| 16 | ;; License along with this library; if not, write to the Free Software |
| 17 | ;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
| 18 | |
| 19 | ;;; Author: Martin Grabmueller <mgrabmue@cs.tu-berlin.de> |
| 20 | |
| 21 | ;;; Commentary: |
| 22 | |
| 23 | ;; This module exports the homogeneous numeric vector procedures as |
| 24 | ;; defined in SRFI-4. They are fully documented in the Guile |
| 25 | ;; Reference Manual. |
| 26 | |
| 27 | ;;; Code: |
| 28 | |
| 29 | (define-module (srfi srfi-4)) |
| 30 | |
| 31 | (re-export |
| 32 | ;;; Unsigned 8-bit vectors. |
| 33 | u8vector? make-u8vector u8vector u8vector-length u8vector-ref |
| 34 | u8vector-set! u8vector->list list->u8vector |
| 35 | |
| 36 | ;;; Signed 8-bit vectors. |
| 37 | s8vector? make-s8vector s8vector s8vector-length s8vector-ref |
| 38 | s8vector-set! s8vector->list list->s8vector |
| 39 | |
| 40 | ;;; Unsigned 16-bit vectors. |
| 41 | u16vector? make-u16vector u16vector u16vector-length u16vector-ref |
| 42 | u16vector-set! u16vector->list list->u16vector |
| 43 | |
| 44 | ;;; Signed 16-bit vectors. |
| 45 | s16vector? make-s16vector s16vector s16vector-length s16vector-ref |
| 46 | s16vector-set! s16vector->list list->s16vector |
| 47 | |
| 48 | ;;; Unsigned 32-bit vectors. |
| 49 | u32vector? make-u32vector u32vector u32vector-length u32vector-ref |
| 50 | u32vector-set! u32vector->list list->u32vector |
| 51 | |
| 52 | ;;; Signed 32-bit vectors. |
| 53 | s32vector? make-s32vector s32vector s32vector-length s32vector-ref |
| 54 | s32vector-set! s32vector->list list->s32vector |
| 55 | |
| 56 | ;;; Unsigned 64-bit vectors. |
| 57 | u64vector? make-u64vector u64vector u64vector-length u64vector-ref |
| 58 | u64vector-set! u64vector->list list->u64vector |
| 59 | |
| 60 | ;;; Signed 64-bit vectors. |
| 61 | s64vector? make-s64vector s64vector s64vector-length s64vector-ref |
| 62 | s64vector-set! s64vector->list list->s64vector |
| 63 | |
| 64 | ;;; 32-bit floating point vectors. |
| 65 | f32vector? make-f32vector f32vector f32vector-length f32vector-ref |
| 66 | f32vector-set! f32vector->list list->f32vector |
| 67 | |
| 68 | ;;; 64-bit floating point vectors. |
| 69 | f64vector? make-f64vector f64vector f64vector-length f64vector-ref |
| 70 | f64vector-set! f64vector->list list->f64vector |
| 71 | ) |