mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-03 13:20:26 +02:00
Remove 'contiguous' flag in arrays
Was never used, so we save having to set it on various ops. * libguile/arrays.h (SCM_I_ARRAY_FLAG_CONTIGUOUS, SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG, SCM_I_ARRAY_CONTP): Remove. * libguile/arrays.c (scm_i_ra_set_contp): Remove. Elsewhere remove all uses of this and the other macros.
This commit is contained in:
parent
d88d4d5558
commit
edf9abb4a0
3 changed files with 5 additions and 34 deletions
|
@ -19,6 +19,11 @@ Use scm_is_vector instead.
|
||||||
|
|
||||||
If you were including these headers directly for any reason, just include libguile.h instead.
|
If you were including these headers directly for any reason, just include libguile.h instead.
|
||||||
|
|
||||||
|
** scm_from_contiguous_typed_array has been removed.
|
||||||
|
|
||||||
|
This function was undocumented. Instead, use scm_make_typed_array and
|
||||||
|
the array handle functions to copy data to the new array.
|
||||||
|
|
||||||
|
|
||||||
* Backward incompatible changes
|
* Backward incompatible changes
|
||||||
|
|
||||||
|
|
|
@ -604,7 +604,6 @@ SCM_DEFINE (scm_make_typed_array, "make-typed-array", 2, 0, 1,
|
||||||
SCM ra;
|
SCM ra;
|
||||||
|
|
||||||
ra = scm_i_shap2ra (bounds);
|
ra = scm_i_shap2ra (bounds);
|
||||||
SCM_SET_ARRAY_CONTIGUOUS_FLAG (ra);
|
|
||||||
s = SCM_I_ARRAY_DIMS (ra);
|
s = SCM_I_ARRAY_DIMS (ra);
|
||||||
k = SCM_I_ARRAY_NDIM (ra);
|
k = SCM_I_ARRAY_NDIM (ra);
|
||||||
|
|
||||||
|
@ -637,29 +636,6 @@ SCM_DEFINE (scm_make_array, "make-array", 1, 0, 1,
|
||||||
}
|
}
|
||||||
#undef FUNC_NAME
|
#undef FUNC_NAME
|
||||||
|
|
||||||
/* see scm_from_contiguous_array */
|
|
||||||
static void
|
|
||||||
scm_i_ra_set_contp (SCM ra)
|
|
||||||
{
|
|
||||||
size_t k = SCM_I_ARRAY_NDIM (ra);
|
|
||||||
if (k)
|
|
||||||
{
|
|
||||||
ssize_t inc = SCM_I_ARRAY_DIMS (ra)[k - 1].inc;
|
|
||||||
while (k--)
|
|
||||||
{
|
|
||||||
if (inc != SCM_I_ARRAY_DIMS (ra)[k].inc)
|
|
||||||
{
|
|
||||||
SCM_CLR_ARRAY_CONTIGUOUS_FLAG (ra);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
inc *= (SCM_I_ARRAY_DIMS (ra)[k].ubnd
|
|
||||||
- SCM_I_ARRAY_DIMS (ra)[k].lbnd + 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
SCM_SET_ARRAY_CONTIGUOUS_FLAG (ra);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
SCM_DEFINE (scm_make_shared_array, "make-shared-array", 2, 0, 1,
|
SCM_DEFINE (scm_make_shared_array, "make-shared-array", 2, 0, 1,
|
||||||
(SCM oldra, SCM mapfunc, SCM dims),
|
(SCM oldra, SCM mapfunc, SCM dims),
|
||||||
"@code{make-shared-array} can be used to create shared subarrays\n"
|
"@code{make-shared-array} can be used to create shared subarrays\n"
|
||||||
|
@ -772,7 +748,6 @@ SCM_DEFINE (scm_make_shared_array, "make-shared-array", 2, 0, 1,
|
||||||
return scm_make_generalized_vector (scm_array_type (ra), SCM_INUM0,
|
return scm_make_generalized_vector (scm_array_type (ra), SCM_INUM0,
|
||||||
SCM_UNDEFINED);
|
SCM_UNDEFINED);
|
||||||
}
|
}
|
||||||
scm_i_ra_set_contp (ra);
|
|
||||||
return ra;
|
return ra;
|
||||||
}
|
}
|
||||||
#undef FUNC_NAME
|
#undef FUNC_NAME
|
||||||
|
@ -1043,7 +1018,6 @@ SCM_DEFINE (scm_transpose_array, "transpose-array", 1, 0, 1,
|
||||||
}
|
}
|
||||||
if (ndim > 0)
|
if (ndim > 0)
|
||||||
SCM_MISC_ERROR ("bad argument list", SCM_EOL);
|
SCM_MISC_ERROR ("bad argument list", SCM_EOL);
|
||||||
scm_i_ra_set_contp (res);
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,16 +89,8 @@ SCM_API SCM scm_array_rank (SCM ra);
|
||||||
|
|
||||||
/* internal. */
|
/* internal. */
|
||||||
|
|
||||||
/* see scm_from_contiguous_array for these three */
|
|
||||||
#define SCM_I_ARRAY_FLAG_CONTIGUOUS (1 << 0)
|
|
||||||
#define SCM_SET_ARRAY_CONTIGUOUS_FLAG(x) \
|
|
||||||
(SCM_SET_CELL_WORD_0 ((x), SCM_CELL_WORD_0 (x) | (SCM_I_ARRAY_FLAG_CONTIGUOUS << 16)))
|
|
||||||
#define SCM_CLR_ARRAY_CONTIGUOUS_FLAG(x) \
|
|
||||||
(SCM_SET_CELL_WORD_0 ((x), SCM_CELL_WORD_0 (x) & ~(SCM_I_ARRAY_FLAG_CONTIGUOUS << 16)))
|
|
||||||
|
|
||||||
#define SCM_I_ARRAYP(a) SCM_TYP16_PREDICATE (scm_tc7_array, a)
|
#define SCM_I_ARRAYP(a) SCM_TYP16_PREDICATE (scm_tc7_array, a)
|
||||||
#define SCM_I_ARRAY_NDIM(x) ((size_t) (SCM_CELL_WORD_0 (x)>>17))
|
#define SCM_I_ARRAY_NDIM(x) ((size_t) (SCM_CELL_WORD_0 (x)>>17))
|
||||||
#define SCM_I_ARRAY_CONTP(x) (SCM_CELL_WORD_0 (x) & (SCM_I_ARRAY_FLAG_CONTIGUOUS << 16))
|
|
||||||
|
|
||||||
#define SCM_I_ARRAY_V(a) SCM_CELL_OBJECT_1 (a)
|
#define SCM_I_ARRAY_V(a) SCM_CELL_OBJECT_1 (a)
|
||||||
#define SCM_I_ARRAY_BASE(a) ((size_t) SCM_CELL_WORD_2 (a))
|
#define SCM_I_ARRAY_BASE(a) ((size_t) SCM_CELL_WORD_2 (a))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue