245 |
CTYPES2SCM (const CTYPE *data, long n) |
CTYPES2SCM (const CTYPE *data, long n) |
246 |
{ |
{ |
247 |
long i; |
long i; |
248 |
SCM v, *velts; |
SCM v; |
249 |
|
|
250 |
SCM_ASSERT_RANGE (SCM_ARG2, scm_long2num (n), |
SCM_ASSERT_RANGE (SCM_ARG2, scm_long2num (n), |
251 |
n > 0 && n <= SCM_VECTOR_MAX_LENGTH); |
n > 0 && n <= SCM_VECTOR_MAX_LENGTH); |
252 |
v = scm_c_make_vector (n, SCM_UNSPECIFIED); |
v = scm_c_make_vector (n, SCM_UNSPECIFIED); |
253 |
velts = SCM_VELTS (v); |
|
254 |
for (i = 0; i < n; i++) |
for (i = 0; i < n; i++) |
255 |
#ifdef FLOATTYPE |
#ifdef FLOATTYPE |
256 |
velts[i] = scm_make_real ((double) data[i]); |
SCM_VECTOR_SET (v, i, scm_make_real ((double) data[i])); |
257 |
#else |
#else |
258 |
velts[i] = SCM_MAKINUM (data[i]); |
SCM_VECTOR_SET (v, i, SCM_MAKINUM (data[i])); |
259 |
#endif |
#endif |
260 |
return v; |
return v; |
261 |
} |
} |