aboutsummaryrefslogtreecommitdiffstats
path: root/unif.c
diff options
context:
space:
mode:
Diffstat (limited to 'unif.c')
-rwxr-xr-x[-rw-r--r--]unif.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/unif.c b/unif.c
index 490d2a7..ca05d3b 100644..100755
--- a/unif.c
+++ b/unif.c
@@ -138,6 +138,8 @@ long scm_prot2type(prot)
case BOOL_T: return tc7_Vbool;
case MAKINUM(8L): return tc7_VfixN8;
case MAKINUM(16L): return tc7_VfixN16;
+ case MAKINUM(64L): return tc7_VfixN64;
+ case MAKINUM(-64L): return tc7_VfixZ64;
case MAKINUM(32L): return tc7_VfixN32;
case MAKINUM(-32L): return tc7_VfixZ32;
case MAKINUM(-16L): return tc7_VfixZ16;
@@ -226,19 +228,12 @@ SCM arrayp(v, prot)
if (enclosed++) return BOOL_F;
v = ARRAY_V(v);
goto loop;
+ case tc7_vector:
+ case tc7_VfloR64: case tc7_VfloC64: case tc7_VfloR32: case tc7_VfloC32:
+ case tc7_VfixN64: case tc7_VfixZ64: case tc7_VfixN32: case tc7_VfixZ32:
+ case tc7_VfixN16: case tc7_VfixZ16: case tc7_VfixN8: case tc7_VfixZ8:
case tc7_Vbool:
case tc7_string:
- case tc7_VfixN32:
- case tc7_VfixZ32:
- case tc7_VfixN16:
- case tc7_VfixZ16:
- case tc7_VfixN8:
- case tc7_VfixZ8:
- case tc7_VfloR32:
- case tc7_VfloC32:
- case tc7_VfloR64:
- case tc7_VfloC64:
- case tc7_vector:
if (UNBNDP(prot)) return BOOL_T;
if (scm_prot2type(prot)==typ) return BOOL_T;
}
@@ -1731,11 +1726,11 @@ SCM list2ura(ndim, prot, lst)
SCM row=lst;
SCM ra;
long n;
- sizet k = INUM(ndim);
- ASRTER(INUMP(ndim), ndim, ARG1, s_list2ura);
- for (; k--; NIMP(row) && (row = CAR(row))) {
+ int k = INUM(ndim);
+ ASRTER(INUMP(ndim) && k >= 0, ndim, ARG1, s_list2ura);
+ for (; --k >= 0 ; (NIMP(row) && (row = CAR(row)))) {
n = ilength(row);
- ASRTER(n>=0, lst, ARG2, s_list2ura);
+ ASRTER(n>=0, lst, ARG3, s_list2ura);
shp = cons(MAKINUM(n), shp);
}
ra = dims2ura(reverse(shp), prot, EOL);
@@ -1942,6 +1937,10 @@ int raprin1(exp, port, writing)
lputc('A', port); break;
case tc7_string:
lputs("A:char", port); break;
+ case tc7_VfixN64:
+ lputs("A:fixN64b", port); break;
+ case tc7_VfixZ64:
+ lputs("A:fixZ64b", port); break;
case tc7_VfixN32:
lputs("A:fixN32b", port); break;
case tc7_VfixZ32:
@@ -1994,6 +1993,8 @@ SCM array_prot(ra)
case tc7_vector: return EOL;
case tc7_Vbool: return BOOL_T;
case tc7_string: return MAKICHR('a');
+ case tc7_VfixN64: return MAKINUM(64L);
+ case tc7_VfixZ64: return MAKINUM(-64L);
case tc7_VfixN32: return MAKINUM(32L);
case tc7_VfixZ32: return MAKINUM(-32L);
case tc7_VfixN16: return MAKINUM(16L);