Commit 12799c73 authored by jgarcia's avatar jgarcia

Move from short/long-float to single/double-float (by L. Brinkhoff)

parent 384fa21e
......@@ -580,8 +580,8 @@ EXPORTS
make_integer
make_unsigned_integer
make_ratio
make_shortfloat
make_longfloat
make_singlefloat
make_doublefloat
make_complex
cl_rational
number_to_double
......
......@@ -581,8 +581,8 @@ EXPORTS
make_integer
make_unsigned_integer
make_ratio
make_shortfloat
make_longfloat
make_singlefloat
make_doublefloat
make_complex
cl_rational
number_to_double
......
......@@ -18,6 +18,10 @@ ECL 1.0:
- ADJUST-ARRAY accepted a fill-pointer even for arrays that did not have any.
- Instead of using SHORT-FLOAT and LONG-FLOAT as basic floating point types,
we use SINGLE-FLOAT and DOUBLE-FLOAT now. The names of the C functions have
changed accordingly (Contributed by Lars Brinkhoff).
;;; Local Variables: ***
;;; mode:text ***
;;; fill-column:79 ***
......
......@@ -259,8 +259,8 @@ ONCE_MORE:
obj->ratio.num = OBJNULL;
obj->ratio.den = OBJNULL;
break;
case t_shortfloat:
case t_longfloat:
case t_singlefloat:
case t_doublefloat:
break;
case t_complex:
obj->complex.imag = OBJNULL;
......@@ -686,11 +686,11 @@ init_alloc(void)
type_map[i] = (char)t_other;
/* Initialization must be done in increasing size order: */
init_tm(t_shortfloat, "FSHORT-FLOAT", /* 8 */
sizeof(struct ecl_shortfloat), 1);
init_tm(t_singlefloat, "FSINGLE-FLOAT", /* 8 */
sizeof(struct ecl_singlefloat), 1);
init_tm(t_cons, ".CONS", sizeof(struct ecl_cons), 384); /* 12 */
init_tm(t_longfloat, "LLONG-FLOAT", /* 16 */
sizeof(struct ecl_longfloat), 1);
init_tm(t_doublefloat, "LDOUBLE-FLOAT", /* 16 */
sizeof(struct ecl_doublefloat), 1);
init_tm(t_bytecodes, "bBYTECODES", sizeof(struct ecl_bytecodes), 64);
init_tm(t_base_string, "\"BASE-STRING", sizeof(struct ecl_base_string), 64); /* 20 */
#ifdef ECL_UNICODE
......
......@@ -117,8 +117,8 @@ cl_alloc_object(cl_type t)
GC_register_finalizer_no_order(obj, finalize, NULL, &ofn, &odata);
break;
}
case t_shortfloat:
case t_longfloat:
case t_singlefloat:
case t_doublefloat:
obj = (cl_object)GC_MALLOC_ATOMIC(type_size[t]);
break;
case t_bignum:
......@@ -224,11 +224,11 @@ init_alloc(void)
for (i = 0; i < t_end; i++) {
type_size[i] = 0;
}
init_tm(t_shortfloat, "SHORT-FLOAT", /* 8 */
sizeof(struct ecl_shortfloat));
init_tm(t_singlefloat, "SINGLE-FLOAT", /* 8 */
sizeof(struct ecl_singlefloat));
init_tm(t_cons, "CONS", sizeof(struct ecl_cons)); /* 12 */
init_tm(t_longfloat, "LONG-FLOAT", /* 16 */
sizeof(struct ecl_longfloat));
init_tm(t_doublefloat, "DOUBLE-FLOAT", /* 16 */
sizeof(struct ecl_doublefloat));
init_tm(t_bytecodes, "BYTECODES", sizeof(struct ecl_bytecodes));
init_tm(t_base_string, "BASE-STRING", sizeof(struct ecl_base_string)); /* 20 */
#ifdef ECL_UNICODE
......
......@@ -21,7 +21,7 @@
static const cl_index ecl_aet_size[] = {
sizeof(cl_object), /* aet_object */
sizeof(float), /* aet_sf */
sizeof(double), /* aet_lf */
sizeof(double), /* aet_df */
0, /* aet_bit: cannot be handled with this code */
sizeof(cl_fixnum), /* aet_fix */
sizeof(cl_index), /* aet_index */
......@@ -134,10 +134,10 @@ aref(cl_object x, cl_index index)
return make_unsigned_integer(x->array.self.index[index]);
case aet_sf:
return(make_shortfloat(x->array.self.sf[index]));
return(make_singlefloat(x->array.self.sf[index]));
case aet_lf:
return(make_longfloat(x->array.self.lf[index]));
case aet_df:
return(make_doublefloat(x->array.self.df[index]));
case aet_b8:
return(MAKE_FIXNUM(x->array.self.b8[index]));
......@@ -256,8 +256,8 @@ aset(cl_object x, cl_index index, cl_object value)
x->array.self.sf[index] = object_to_float(value);
break;
case aet_lf:
x->array.self.lf[index] = object_to_double(value);
case aet_df:
x->array.self.df[index] = object_to_double(value);
break;
case aet_b8: {
......@@ -466,12 +466,12 @@ array_allocself(cl_object x)
x->array.self.sf = elts;
break;
}
case aet_lf: {
case aet_df: {
double *elts;
elts = (double *)cl_alloc_atomic_align(sizeof(*elts)*d, sizeof(*elts));
for (i = 0; i < d; i++)
elts[i] = 0.0;
x->array.self.lf = elts;
x->array.self.df = elts;
break;
}
case aet_b8: {
......@@ -513,7 +513,7 @@ ecl_symbol_to_elttype(cl_object x)
else if (x == @'single-float' || x == @'short-float')
return(aet_sf);
else if (x == @'long-float' || x == @'double-float')
return(aet_lf);
return(aet_df);
else if (x == @'ext::byte8')
return(aet_b8);
else if (x == @'ext::integer8')
......@@ -537,8 +537,8 @@ ecl_elttype_to_symbol(cl_elttype aet)
case aet_bit: output = @'bit'; break;
case aet_fix: output = @'ext::cl-fixnum'; break;
case aet_index: output = @'ext::cl-index'; break;
case aet_sf: output = @'short-float'; break;
case aet_lf: output = @'long-float'; break;
case aet_sf: output = @'single-float'; break;
case aet_df: output = @'double-float'; break;
case aet_b8: output = @'ext::byte8'; break;
case aet_i8: output = @'ext::integer8'; break;
}
......@@ -562,8 +562,8 @@ array_address(cl_object x, cl_index inc)
return x->array.self.t + inc;
case aet_bc:
return x->base_string.self + inc;
case aet_lf:
return x->array.self.lf + inc;
case aet_df:
return x->array.self.df + inc;
case aet_b8:
return x->array.self.b8 + inc;
case aet_i8:
......@@ -786,8 +786,8 @@ cl_array_displacement(cl_object a)
case aet_sf:
offset = a->array.self.sf - to_array->array.self.sf;
break;
case aet_lf:
offset = a->array.self.lf - to_array->array.self.lf;
case aet_df:
offset = a->array.self.df - to_array->array.self.df;
break;
case aet_b8:
case aet_i8:
......@@ -988,11 +988,11 @@ ecl_reverse_subarray(cl_object x, cl_index i0, cl_index i1)
x->array.self.sf[j] = y;
}
break;
case aet_lf:
case aet_df:
for (i = i0, j = i1-1; i < j; i++, --j) {
double y = x->array.self.lf[i];
x->array.self.lf[i] = x->array.self.lf[j];
x->array.self.lf[j] = y;
double y = x->array.self.df[i];
x->array.self.df[i] = x->array.self.df[j];
x->array.self.df[j] = y;
}
break;
case aet_b8:
......
......@@ -77,10 +77,10 @@ object_to_fixnum(cl_object x)
/* case t_character: return (cl_fixnum)CHAR_CODE(x); */
case t_ratio:
return (cl_fixnum)number_to_double(x);
case t_shortfloat:
case t_singlefloat:
return (cl_fixnum)sf(x);
case t_longfloat:
return (cl_fixnum)lf(x);
case t_doublefloat:
return (cl_fixnum)df(x);
default:
FEerror("~S cannot be coerced to a C int.", 1, x);
}
......@@ -95,10 +95,10 @@ object_to_unsigned_integer(cl_object x)
return fixnnint(x);
case t_ratio:
return (cl_index)number_to_double(x);
case t_shortfloat:
case t_singlefloat:
return (cl_index)sf(x);
case t_longfloat:
return (cl_index)lf(x);
case t_doublefloat:
return (cl_index)df(x);
default:
FEerror("~S cannot be coerced to a C unsigned int.", 1, x);
}
......@@ -115,10 +115,10 @@ object_to_float(cl_object x)
case t_bignum:
case t_ratio:
return number_to_double(x);
case t_shortfloat:
case t_singlefloat:
return sf(x);
case t_longfloat:
return lf(x);
case t_doublefloat:
return df(x);
default:
FEtype_error_real(x);
}
......@@ -136,10 +136,10 @@ object_to_double(cl_object x)
case t_bignum:
case t_ratio:
return number_to_double(x);
case t_shortfloat:
case t_singlefloat:
return sf(x);
case t_longfloat:
return lf(x);
case t_doublefloat:
return df(x);
default:
FEtype_error_real(x);
}
......
......@@ -142,7 +142,7 @@ si_make_foreign_data_from_array(cl_object array)
}
switch (array->array.elttype) {
case aet_sf: tag = @':float'; break;
case aet_lf: tag = @':double'; break;
case aet_df: tag = @':double'; break;
case aet_fix: tag = @':int'; break;
case aet_index: tag = @':unsigned-int'; break;
default:
......@@ -286,9 +286,9 @@ ecl_foreign_data_ref_elt(void *p, enum ecl_ffi_tag tag)
case ECL_FFI_OBJECT:
return *(cl_object *)p;
case ECL_FFI_FLOAT:
return make_shortfloat(*(float *)p);
return make_singlefloat(*(float *)p);
case ECL_FFI_DOUBLE:
return make_longfloat(*(double *)p);
return make_doublefloat(*(double *)p);
case ECL_FFI_VOID:
return Cnil;
}
......
......@@ -750,14 +750,14 @@ fmt_fix_float(format_stack fmt, bool colon, bool atsign)
if (FIXNUMP(x) ||
type_of(x) == t_bignum ||
type_of(x) == t_ratio)
x = make_shortfloat(object_to_float(x));
x = make_singlefloat(object_to_float(x));
if (!REAL_TYPE(type_of(x))) {
if (fmt->nparam > 1) fmt->nparam = 1;
fmt_back_up(fmt);
fmt_decimal(fmt, colon, atsign);
return;
}
if (type_of(x) == t_longfloat)
if (type_of(x) == t_doublefloat)
n = 16;
else
n = 7;
......@@ -923,14 +923,14 @@ fmt_exponential_float(format_stack fmt, bool colon, bool atsign)
if (FIXNUMP(x) ||
type_of(x) == t_bignum ||
type_of(x) == t_ratio)
x = make_shortfloat(object_to_float(x));
x = make_singlefloat(object_to_float(x));
if (!REAL_TYPE(type_of(x))) {
if (fmt->nparam > 1) fmt->nparam = 1;
fmt_back_up(fmt);
fmt_decimal(fmt, colon, atsign);
return;
}
if (type_of(x) == t_longfloat)
if (type_of(x) == t_doublefloat)
n = 16;
else
n = 7;
......@@ -1042,15 +1042,15 @@ fmt_exponential_float(format_stack fmt, bool colon, bool atsign)
y = symbol_value(@'*read-default-float-format*');
if (exponentchar < 0) {
if (y == @'long-float' || y == @'double-float')
t = t_longfloat;
t = t_doublefloat;
else
t = t_shortfloat;
t = t_singlefloat;
if (type_of(x) == t)
exponentchar = 'E';
else if (type_of(x) == t_shortfloat)
exponentchar = 'S';
else if (type_of(x) == t_singlefloat)
exponentchar = 'F';
else
exponentchar = 'L';
exponentchar = 'D';
}
ecl_write_char(exponentchar, fmt->stream);
if (exp < 0)
......@@ -1096,7 +1096,7 @@ fmt_general_float(format_stack fmt, bool colon, bool atsign)
fmt_decimal(fmt, colon, atsign);
return;
}
if (type_of(x) == t_longfloat)
if (type_of(x) == t_doublefloat)
q = 16;
else
q = 7;
......@@ -1170,7 +1170,7 @@ fmt_dollars_float(format_stack fmt, bool colon, bool atsign)
return;
}
q = 7;
if (type_of(x) == t_longfloat)
if (type_of(x) == t_doublefloat)
q = 16;
f = number_to_double(x);
edit_double(q, f, &sign, buff, &exp);
......
......@@ -152,8 +152,8 @@ BEGIN:
mark_next(x->ratio.den);
break;
case t_shortfloat:
case t_longfloat:
case t_singlefloat:
case t_doublefloat:
break;
case t_complex:
......@@ -238,7 +238,7 @@ BEGIN:
case aet_sf:
j = x->array.dim * sizeof(float);
break;
case aet_lf:
case aet_df:
j = x->array.dim * sizeof(double);
break;
default:
......
......@@ -146,8 +146,8 @@ BEGIN:
mark_next(x->ratio.den);
break;
case t_shortfloat:
case t_longfloat:
case t_singlefloat:
case t_doublefloat:
break;
case t_complex:
......@@ -231,7 +231,7 @@ BEGIN:
case aet_sf:
j = x->array.dim * sizeof(float);
break;
case aet_lf:
case aet_df:
j = x->array.dim * sizeof(double);
break;
case aet_b8:
......
......@@ -129,10 +129,10 @@ _hash_eql(cl_hashkey h, cl_object x)
case t_ratio:
h = _hash_eql(h, x->ratio.num);
return _hash_eql(h, x->ratio.den);
case t_shortfloat:
case t_singlefloat:
return hash_string(h, (unsigned char*)&sf(x), sizeof(sf(x)));
case t_longfloat:
return hash_string(h, (unsigned char*)&lf(x), sizeof(lf(x)));
case t_doublefloat:
return hash_string(h, (unsigned char*)&df(x), sizeof(df(x)));
case t_complex:
h = _hash_eql(h, x->complex.real);
return _hash_eql(h, x->complex.imag);
......@@ -207,12 +207,12 @@ SCAN: if (depth++ >= 3) {
return h;
case t_fixnum:
return hash_word(h, fix(x));
case t_shortfloat:
case t_singlefloat:
/* FIXME! We should be more precise here! */
return hash_word(h, (cl_index)sf(x));
case t_longfloat:
case t_doublefloat:
/* FIXME! We should be more precise here! */
return hash_word(h, (cl_index)lf(x));
return hash_word(h, (cl_index)df(x));
case t_bignum:
/* FIXME! We should be more precise here! */
case t_ratio:
......@@ -378,10 +378,10 @@ ecl_extend_hashtable(cl_object hashtable)
old_size = hashtable->hash.size;
if (FIXNUMP(hashtable->hash.rehash_size))
new_size = old_size + fix(hashtable->hash.rehash_size);
else if (type_of(hashtable->hash.rehash_size) == t_shortfloat)
else if (type_of(hashtable->hash.rehash_size) == t_singlefloat)
new_size = (cl_index)(old_size * sf(hashtable->hash.rehash_size));
else if (type_of(hashtable->hash.rehash_size) == t_longfloat)
new_size = (cl_index)(old_size * lf(hashtable->hash.rehash_size));
else if (type_of(hashtable->hash.rehash_size) == t_doublefloat)
new_size = (cl_index)(old_size * df(hashtable->hash.rehash_size));
else
corrupted_hash(hashtable);
if (new_size <= old_size)
......@@ -408,8 +408,8 @@ ecl_extend_hashtable(cl_object hashtable)
@(defun make_hash_table (&key (test @'eql')
(size MAKE_FIXNUM(1024))
(rehash_size make_shortfloat(1.5))
(rehash_threshold make_shortfloat(0.7))
(rehash_size make_singlefloat(1.5))
(rehash_threshold make_singlefloat(0.7))
(lockable Cnil))
@
@(return cl__make_hash_table(test, size, rehash_size, rehash_threshold,
......@@ -446,14 +446,14 @@ cl__make_hash_table(cl_object test, cl_object size, cl_object rehash_size,
hsize = 16;
t = type_of(rehash_size);
if ((t != t_fixnum && t != t_shortfloat && t != t_longfloat) ||
if ((t != t_fixnum && t != t_singlefloat && t != t_doublefloat) ||
(number_compare(rehash_size, MAKE_FIXNUM(1)) < 0)) {
FEerror("~S is an illegal hash-table rehash-size.",
1, rehash_size);
}
factor = -1.0;
t = type_of(rehash_threshold);
if (t == t_fixnum || t == t_ratio || t == t_shortfloat || t == t_longfloat) {
if (t == t_fixnum || t == t_ratio || t == t_singlefloat || t == t_doublefloat) {
factor = number_to_double(rehash_threshold);
}
if (factor < 0.0 || factor > 1.0) {
......
......@@ -208,10 +208,10 @@ cl_class_of(cl_object x)
t = @'integer'; break;
case t_ratio:
t = @'ratio'; break;
case t_shortfloat:
case t_longfloat:
case t_singlefloat:
case t_doublefloat:
t = @'float'; break;
t = @'long-float'; break;
/* XXX t = @'long-float'; break; */
case t_complex:
t = @'complex'; break;
case t_character:
......
......@@ -266,8 +266,8 @@ cl_boot(int argc, char **argv)
*/
cl_core.char_names = aux =
cl__make_hash_table(@'equalp', MAKE_FIXNUM(128), /* size */
make_shortfloat(1.5f), /* rehash-size */
make_shortfloat(0.5f), /* rehash-threshold */
make_singlefloat(1.5f), /* rehash-size */
make_singlefloat(0.5f), /* rehash-threshold */
Cnil); /* thread-safe */
for (i = 0; char_names[i].code >= 0; i++) {
cl_object name = make_constant_base_string(char_names[i].name);
......@@ -282,8 +282,8 @@ cl_boot(int argc, char **argv)
cl_core.system_properties =
cl__make_hash_table(@'equal', MAKE_FIXNUM(1024), /* size */
make_shortfloat(1.5f), /* rehash-size */
make_shortfloat(0.75f), /* rehash-threshold */
make_singlefloat(1.5f), /* rehash-size */
make_singlefloat(0.75f), /* rehash-threshold */
Ct); /* thread-safe */
cl_core.gensym_prefix = make_constant_base_string("G");
......@@ -320,8 +320,8 @@ cl_boot(int argc, char **argv)
#ifdef ECL_THREADS
cl_env.bindings_hash = cl__make_hash_table(@'eq', MAKE_FIXNUM(1024),
make_shortfloat(1.5f),
make_shortfloat(0.75f),
make_singlefloat(1.5f),
make_singlefloat(0.75f),
Cnil); /* no locking */
ECL_SET(@'mp::*current-process*', cl_env.own_process);
#endif
......@@ -378,8 +378,8 @@ cl_boot(int argc, char **argv)
#ifdef CLOS
ECL_SET(@'si::*class-name-hash-table*',
cl__make_hash_table(@'eq', MAKE_FIXNUM(1024), /* size */
make_shortfloat(1.5f), /* rehash-size */
make_shortfloat(0.75f), /* rehash-threshold */
make_singlefloat(1.5f), /* rehash-size */
make_singlefloat(0.75f), /* rehash-threshold */
Ct)); /* thread safe */
#endif
......
This diff is collapsed.
This diff is collapsed.
......@@ -44,10 +44,10 @@ number_equalp(cl_object x, cl_object y)
case t_bignum:
case t_ratio:
return 0;
case t_shortfloat:
case t_singlefloat:
return fix(x) == (double)sf(y);
case t_longfloat:
return fix(x) == lf(y);
case t_doublefloat:
return fix(x) == df(y);
case t_complex:
goto Y_COMPLEX;
default:
......@@ -61,8 +61,8 @@ number_equalp(cl_object x, cl_object y)
return big_compare(x, y)==0;
case t_ratio:
return 0;
case t_shortfloat:
case t_longfloat:
case t_singlefloat:
case t_doublefloat:
y = cl_rational(y);
goto BEGIN;
case t_complex:
......@@ -78,8 +78,8 @@ number_equalp(cl_object x, cl_object y)
case t_ratio:
return (number_equalp(x->ratio.num, y->ratio.num) &&
number_equalp(x->ratio.den, y->ratio.den));
case t_shortfloat:
case t_longfloat:
case t_singlefloat:
case t_doublefloat:
y = cl_rational(y);
goto BEGIN;
case t_complex:
......@@ -87,11 +87,11 @@ number_equalp(cl_object x, cl_object y)
default:
FEtype_error_number(y);
}
case t_shortfloat:
case t_singlefloat:
dx = sf(x);
goto FLOAT;
case t_longfloat:
dx = lf(x);
case t_doublefloat:
dx = df(x);
FLOAT:
switch (type_of(y)) {
case t_fixnum:
......@@ -100,10 +100,10 @@ number_equalp(cl_object x, cl_object y)
case t_ratio:
x = cl_rational(x);
goto BEGIN;
case t_shortfloat:
case t_singlefloat:
return dx == sf(y);
case t_longfloat:
return dx == lf(y);
case t_doublefloat:
return dx == df(y);
case t_complex:
goto Y_COMPLEX;
default:
......@@ -160,14 +160,14 @@ number_compare(cl_object x, cl_object y)
x = number_times(x, y->ratio.den);
y = y->ratio.num;
return(number_compare(x, y));
case t_shortfloat:
case t_singlefloat:
dx = (double)(ix);
dy = (double)(sf(y));
goto LONGFLOAT;
case t_longfloat:
goto DOUBLEFLOAT;
case t_doublefloat:
dx = (double)(ix);
dy = lf(y);
goto LONGFLOAT;
dy = df(y);
goto DOUBLEFLOAT;
default:
FEtype_error_real(y);
}
......@@ -181,8 +181,8 @@ number_compare(cl_object x, cl_object y)
x = number_times(x, y->ratio.den);
y = y->ratio.num;
return(number_compare(x, y));
case t_shortfloat:
case t_longfloat:
case t_singlefloat:
case t_doublefloat:
y = cl_rational(y);
goto BEGIN;
default:
......@@ -200,19 +200,19 @@ number_compare(cl_object x, cl_object y)
y->ratio.den),
number_times(y->ratio.num,
x->ratio.den)));
case t_shortfloat:
case t_longfloat:
case t_singlefloat:
case t_doublefloat:
y = cl_rational(y);
goto BEGIN;
default:
FEtype_error_real(y);
}
case t_shortfloat:
case t_singlefloat:
dx = (double)(sf(x));
goto LONGFLOAT0;
case t_longfloat:
dx = lf(x);
LONGFLOAT0:
goto DOUBLEFLOAT0;
case t_doublefloat:
dx = df(x);
DOUBLEFLOAT0:
switch (type_of(y)) {
case t_fixnum:
dy = (double)(fix(y));
......@@ -221,16 +221,16 @@ number_compare(cl_object x, cl_object y)
case t_ratio:
x = cl_rational(x);
goto BEGIN;
case t_shortfloat:
case t_singlefloat:
dy = (double)(sf(y));
break;
case t_longfloat:
dy = lf(y);
case t_doublefloat:
dy = df(y);
break;
default:
FEtype_error_real(y);
}
LONGFLOAT:
DOUBLEFLOAT:
if (dx == dy)
return(0);
else if (dx < dy)
......
......@@ -27,11 +27,11 @@ number_zerop(cl_object x)
case t_ratio:
return(0);
case t_shortfloat:
case t_singlefloat:
return(sf(x) == 0.0);
case t_longfloat:
return(lf(x) == 0.0);
case t_doublefloat:
return(df(x) == 0.0);
case t_complex:
return(number_zerop(x->complex.real) &&
......@@ -58,11 +58,11 @@ number_plusp(cl_object x)
x = x->ratio.num;
goto RESTART;
case t_shortfloat:
case t_singlefloat:
return(sf(x) > 0.0);
case t_longfloat:
return(lf(x) > 0.0);
case t_doublefloat:
return(df(x) > 0.0);
default:
FEtype_error_real(x);
......@@ -85,11 +85,11 @@ number_minusp(cl_object x)
x = x->ratio.num;
goto RESTART;
case t_shortfloat:
case t_singlefloat:
return(sf(x) < 0.0);
case t_longfloat:
return(lf(x) < 0.0);
case t_doublefloat:
return(df(x) < 0.0);
default:
FEtype_error_real(x);
......
......@@ -34,10 +34,10 @@ rando(cl_object x, cl_object rs)
z = MAKE_FIXNUM((cl_fixnum)d);
} else if (tx == t_bignum) {
z = double_to_integer(d);
} else if (tx == t_shortfloat) {
z = make_shortfloat((float)d);
} else if (tx == t_longfloat) {
z = make_longfloat(d);
} else if (tx == t_singlefloat) {
z = make_singlefloat((float)d);
} else if (tx == t_doublefloat) {
z = make_doublefloat(d);
} else {
FEerror("~S is not an integer nor a floating-point number.",
1, x);
......
......@@ -84,13 +84,13 @@ cl_exp(cl_object x)
case t_fixnum:
case t_bignum: