* readline.scm: moved to ./ice-9/
[bpt/guile.git] / srfi / srfi-4.h
CommitLineData
71ca65d9
MG
1#ifndef SCM_SRFI_4_H
2#define SCM_SRFI_4_H
3/* srfi-4.c --- Homogeneous numeric vector datatypes.
4 *
5 * Copyright (C) 2001 Free Software Foundation, Inc.
6 *
73be1d9e
MV
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
71ca65d9 11 *
73be1d9e
MV
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
71ca65d9 16 *
73be1d9e
MV
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
71ca65d9
MG
21\f
22
064a03fd
MV
23/* SCM_SRFI4_API is a macro prepended to all function and data definitions
24 which should be exported or imported in the resulting dynamic link
25 library in the Win32 port. */
71ca65d9 26
8f99e3f3 27#if defined (SCM_SRFI4_IMPORT)
064a03fd 28# define SCM_SRFI4_API __declspec (dllimport) extern
8f99e3f3 29#elif defined (SCM_SRFI4_EXPORT) || defined (DLL_EXPORT)
064a03fd
MV
30# define SCM_SRFI4_API __declspec (dllexport) extern
31#else
32# define SCM_SRFI4_API extern
33#endif
71ca65d9 34
064a03fd
MV
35SCM_SRFI4_API SCM scm_u8vector_p (SCM obj);
36SCM_SRFI4_API SCM scm_make_u8vector (SCM n, SCM fill);
37SCM_SRFI4_API SCM scm_u8vector (SCM l);
38SCM_SRFI4_API SCM scm_u8vector_length (SCM uvec);
39SCM_SRFI4_API SCM scm_u8vector_ref (SCM uvec, SCM index);
40SCM_SRFI4_API SCM scm_u8vector_set_x (SCM uvec, SCM index, SCM value);
41SCM_SRFI4_API SCM scm_u8vector_to_list (SCM uvec);
42SCM_SRFI4_API SCM scm_list_to_u8vector (SCM l);
71ca65d9 43
064a03fd
MV
44SCM_SRFI4_API SCM scm_s8vector_p (SCM obj);
45SCM_SRFI4_API SCM scm_make_s8vector (SCM n, SCM fill);
46SCM_SRFI4_API SCM scm_s8vector (SCM l);
47SCM_SRFI4_API SCM scm_s8vector_length (SCM uvec);
48SCM_SRFI4_API SCM scm_s8vector_ref (SCM uvec, SCM index);
49SCM_SRFI4_API SCM scm_s8vector_set_x (SCM uvec, SCM index, SCM value);
50SCM_SRFI4_API SCM scm_s8vector_to_list (SCM uvec);
51SCM_SRFI4_API SCM scm_list_to_s8vector (SCM l);
71ca65d9 52
064a03fd
MV
53SCM_SRFI4_API SCM scm_u16vector_p (SCM obj);
54SCM_SRFI4_API SCM scm_make_u16vector (SCM n, SCM fill);
55SCM_SRFI4_API SCM scm_u16vector (SCM l);
56SCM_SRFI4_API SCM scm_u16vector_length (SCM uvec);
57SCM_SRFI4_API SCM scm_u16vector_ref (SCM uvec, SCM index);
58SCM_SRFI4_API SCM scm_u16vector_set_x (SCM uvec, SCM index, SCM value);
59SCM_SRFI4_API SCM scm_u16vector_to_list (SCM uvec);
60SCM_SRFI4_API SCM scm_list_to_u16vector (SCM l);
71ca65d9 61
064a03fd
MV
62SCM_SRFI4_API SCM scm_s16vector_p (SCM obj);
63SCM_SRFI4_API SCM scm_make_s16vector (SCM n, SCM fill);
64SCM_SRFI4_API SCM scm_s16vector (SCM l);
65SCM_SRFI4_API SCM scm_s16vector_length (SCM uvec);
66SCM_SRFI4_API SCM scm_s16vector_ref (SCM uvec, SCM index);
67SCM_SRFI4_API SCM scm_s16vector_set_x (SCM uvec, SCM index, SCM value);
68SCM_SRFI4_API SCM scm_s16vector_to_list (SCM uvec);
69SCM_SRFI4_API SCM scm_list_to_s16vector (SCM l);
71ca65d9 70
064a03fd
MV
71SCM_SRFI4_API SCM scm_u32vector_p (SCM obj);
72SCM_SRFI4_API SCM scm_make_u32vector (SCM n, SCM fill);
73SCM_SRFI4_API SCM scm_u32vector (SCM l);
74SCM_SRFI4_API SCM scm_u32vector_length (SCM uvec);
75SCM_SRFI4_API SCM scm_u32vector_ref (SCM uvec, SCM index);
76SCM_SRFI4_API SCM scm_u32vector_set_x (SCM uvec, SCM index, SCM value);
77SCM_SRFI4_API SCM scm_u32vector_to_list (SCM uvec);
78SCM_SRFI4_API SCM scm_list_to_u32vector (SCM l);
71ca65d9 79
064a03fd
MV
80SCM_SRFI4_API SCM scm_s32vector_p (SCM obj);
81SCM_SRFI4_API SCM scm_make_s32vector (SCM n, SCM fill);
82SCM_SRFI4_API SCM scm_s32vector (SCM l);
83SCM_SRFI4_API SCM scm_s32vector_length (SCM uvec);
84SCM_SRFI4_API SCM scm_s32vector_ref (SCM uvec, SCM index);
85SCM_SRFI4_API SCM scm_s32vector_set_x (SCM uvec, SCM index, SCM value);
86SCM_SRFI4_API SCM scm_s32vector_to_list (SCM uvec);
87SCM_SRFI4_API SCM scm_list_to_s32vector (SCM l);
71ca65d9 88
064a03fd
MV
89SCM_SRFI4_API SCM scm_u64vector_p (SCM obj);
90SCM_SRFI4_API SCM scm_make_u64vector (SCM n, SCM fill);
91SCM_SRFI4_API SCM scm_u64vector (SCM l);
92SCM_SRFI4_API SCM scm_u64vector_length (SCM uvec);
93SCM_SRFI4_API SCM scm_u64vector_ref (SCM uvec, SCM index);
94SCM_SRFI4_API SCM scm_u64vector_set_x (SCM uvec, SCM index, SCM value);
95SCM_SRFI4_API SCM scm_u64vector_to_list (SCM uvec);
96SCM_SRFI4_API SCM scm_list_to_u64vector (SCM l);
71ca65d9 97
064a03fd
MV
98SCM_SRFI4_API SCM scm_s64vector_p (SCM obj);
99SCM_SRFI4_API SCM scm_make_s64vector (SCM n, SCM fill);
100SCM_SRFI4_API SCM scm_s64vector (SCM l);
101SCM_SRFI4_API SCM scm_s64vector_length (SCM uvec);
102SCM_SRFI4_API SCM scm_s64vector_ref (SCM uvec, SCM index);
103SCM_SRFI4_API SCM scm_s64vector_set_x (SCM uvec, SCM index, SCM value);
104SCM_SRFI4_API SCM scm_s64vector_to_list (SCM uvec);
105SCM_SRFI4_API SCM scm_list_to_s64vector (SCM l);
71ca65d9 106
064a03fd
MV
107SCM_SRFI4_API SCM scm_f32vector_p (SCM obj);
108SCM_SRFI4_API SCM scm_make_f32vector (SCM n, SCM fill);
109SCM_SRFI4_API SCM scm_f32vector (SCM l);
110SCM_SRFI4_API SCM scm_f32vector_length (SCM uvec);
111SCM_SRFI4_API SCM scm_f32vector_ref (SCM uvec, SCM index);
112SCM_SRFI4_API SCM scm_f32vector_set_x (SCM uvec, SCM index, SCM value);
113SCM_SRFI4_API SCM scm_f32vector_to_list (SCM uvec);
114SCM_SRFI4_API SCM scm_list_to_f32vector (SCM l);
115
116SCM_SRFI4_API SCM scm_f64vector_p (SCM obj);
117SCM_SRFI4_API SCM scm_make_f64vector (SCM n, SCM fill);
118SCM_SRFI4_API SCM scm_f64vector (SCM l);
119SCM_SRFI4_API SCM scm_f64vector_length (SCM uvec);
120SCM_SRFI4_API SCM scm_f64vector_ref (SCM uvec, SCM index);
121SCM_SRFI4_API SCM scm_f64vector_set_x (SCM uvec, SCM index, SCM value);
122SCM_SRFI4_API SCM scm_f64vector_to_list (SCM uvec);
123SCM_SRFI4_API SCM scm_list_to_f64vector (SCM l);
124
125SCM_SRFI4_API void scm_init_srfi_4 (void);
71ca65d9
MG
126
127#endif /* SCM_SRFI_4_H */