}
if (SCM_NINUMP (y))
{
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_BIGP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_quotient, x, y, SCM_ARG2, s_quotient);
}
-#endif
return SCM_INUM0;
}
#else
}
if (SCM_NINUMP (y))
{
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_BIGP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_remainder, x, y, SCM_ARG2, s_remainder);
}
-#endif
return x;
}
#else
}
if (SCM_NINUMP (y))
{
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_BIGP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_modulo, x, y, SCM_ARG2, s_modulo);
}
-#endif
return (SCM_BIGSIGN (y) ? (x > 0) : (x < 0)) ? scm_sum (x, y) : x;
}
#else
if (SCM_NINUMP (x))
{
#ifdef SCM_BIGDIG
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (x)))
{
badx:
SCM_WTA_DISPATCH_2 (g_eq_p, x, y, SCM_ARG1, s_eq_p);
}
-#endif
if (SCM_BIGP (x))
{
if (SCM_INUMP (y))
SCM_ASRTGO (SCM_NIMP (y), bady);
if (SCM_BIGP (y))
return SCM_BOOL_F;
-#ifndef SCM_RECKLESS
if (!(SCM_INEXP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_eq_p, x, y, SCM_ARGn, s_eq_p);
}
-#endif
#else
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_INEXP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_eq_p, x, y, SCM_ARGn, s_eq_p);
}
-#endif
#endif
realint:
return ((SCM_REALP (y) && (((double) SCM_INUM (x)) == SCM_REALPART (y)))
}
if (SCM_NINUMP (y))
{
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_BIGP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_eq_p, x, y, SCM_ARGn, s_eq_p);
}
-#endif
return SCM_BOOL_F;
}
#else
if (SCM_NINUMP (x))
{
#ifdef SCM_BIGDIG
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (x)))
{
badx:
SCM_WTA_DISPATCH_2 (g_less_p, x, y, SCM_ARG1, s_less_p);
}
-#endif
if (SCM_BIGP (x))
{
if (SCM_INUMP (y))
SCM_ASRTGO (SCM_NIMP (y), bady);
if (SCM_BIGP (y))
return SCM_BIGSIGN (y) ? SCM_BOOL_F : SCM_BOOL_T;
-#ifndef SCM_RECKLESS
if (!(SCM_REALP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_less_p, x, y, SCM_ARGn, s_less_p);
}
-#endif
#else
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_REALP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_less_p, x, y, SCM_ARGn, s_less_p);
}
-#endif
#endif
return ((((double) SCM_INUM (x)) < SCM_REALPART (y))
? SCM_BOOL_T
}
if (SCM_NINUMP (y))
{
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_BIGP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_less_p, x, y, SCM_ARGn, s_less_p);
}
-#endif
return SCM_BIGSIGN (y) ? SCM_BOOL_F : SCM_BOOL_T;
}
#else
SCM_ASRTGO (SCM_NIMP (z), badz);
if (SCM_BIGP (z))
return SCM_BOOL_F;
-#ifndef SCM_RECKLESS
if (!(SCM_INEXP (z)))
{
badz:
SCM_WTA_DISPATCH_1 (g_zero_p, z, SCM_ARG1, s_zero_p);
}
-#endif
#else
SCM_GASSERT1 (SCM_NIMP (z) && SCM_INEXP (z),
g_zero_p, z, SCM_ARG1, s_zero_p);
SCM_ASRTGO (SCM_NIMP (x), badx);
if (SCM_BIGP (x))
return SCM_TYP16 (x) == scm_tc16_bigpos ? SCM_BOOL_T : SCM_BOOL_F;
-#ifndef SCM_RECKLESS
if (!(SCM_REALP (x)))
{
badx:
SCM_WTA_DISPATCH_1 (g_positive_p, x, SCM_ARG1, s_positive_p);
}
-#endif
#else
SCM_GASSERT1 (SCM_NIMP (x) && SCM_REALP (x),
g_positive_p, x, SCM_ARG1, s_positive_p);
SCM_ASRTGO (SCM_NIMP (x), badx);
if (SCM_BIGP (x))
return SCM_TYP16 (x) == scm_tc16_bigpos ? SCM_BOOL_F : SCM_BOOL_T;
-#ifndef SCM_RECKLESS
if (!(SCM_REALP (x)))
{
badx:
SCM_WTA_DISPATCH_1 (g_negative_p, x, SCM_ARG1, s_negative_p);
}
-#endif
#else
SCM_GASSERT1 (SCM_NIMP (x) && SCM_REALP (x),
g_negative_p, x, SCM_ARG1, s_negative_p);
SCM_ASRTGO (SCM_NIMP (y), bady);
if (SCM_BIGP (y))
return SCM_BIGSIGN (y) ? x : y;
-#ifndef SCM_RECKLESS
if (!(SCM_REALP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_max, x, y, SCM_ARGn, s_max);
}
-#endif
#else
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_REALP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_max, x, y, SCM_ARGn, s_max);
}
-#endif
#endif
return (((z = SCM_INUM (x)) < SCM_REALPART (y))
? y
}
if (SCM_NINUMP (y))
{
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_BIGP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_max, x, y, SCM_ARGn, s_max);
}
-#endif
return SCM_BIGSIGN (y) ? x : y;
}
#else
SCM_ASRTGO (SCM_NIMP (y), bady);
if (SCM_BIGP (y))
return SCM_BIGSIGN (y) ? y : x;
-#ifndef SCM_RECKLESS
if (!(SCM_REALP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_min, x, y, SCM_ARGn, s_min);
}
-#endif
#else
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_REALP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_min, x, y, SCM_ARGn, s_min);
}
-#endif
#endif
return (((z = SCM_INUM (x)) > SCM_REALPART (y))
? y
}
if (SCM_NINUMP (y))
{
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_BIGP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_min, x, y, SCM_ARGn, s_min);
}
-#endif
return SCM_BIGSIGN (y) ? y : x;
}
#else
{
if (SCM_UNBNDP (x))
return SCM_INUM0;
-#ifndef SCM_RECKLESS
SCM_GASSERT1 (SCM_NUMBERP (x), g_sum, x, SCM_ARG1, s_sum);
-#endif
return x;
}
#ifdef SCM_FLOATS
y = t;
goto bigreal;
}
-#ifndef SCM_RECKLESS
else if (!(SCM_INEXP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_sum, x, y, SCM_ARGn, s_sum);
}
-#endif
#else
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_INEXP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_sum, x, y, SCM_ARGn, s_sum);
}
-#endif
#endif
{
double i = 0.0;
}
if (SCM_NINUMP (y))
{
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_BIGP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_sum, x, y, SCM_ARGn, s_sum);
}
-#endif
intbig:
{
#ifndef SCM_DIGSTOOBIG
#ifdef SCM_FLOATS
if (SCM_NINUMP (x))
{
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (x)))
{
if (SCM_UNBNDP (y))
SCM_WTA_DISPATCH_2 (g_difference, x, y, SCM_ARG1, s_difference);
}
}
-#endif
if (SCM_UNBNDP (y))
{
#ifdef SCM_BIGDIG
y, 0x0100);
#endif
}
-#ifndef SCM_RECKLESS
if (!(SCM_INEXP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_difference, x, y, SCM_ARGn, s_difference);
}
-#endif
#else
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_INEXP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_difference, x, y, SCM_ARGn, s_difference);
}
-#endif
#endif
return scm_makdbl (SCM_INUM (x) - SCM_REALPART (y),
SCM_CPLXP (y) ? -SCM_IMAG (y) : 0.0);
}
if (SCM_NINUMP (y))
{
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_BIGP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_difference, x, y, SCM_ARGn, s_difference);
}
-#endif
{
#ifndef SCM_DIGSTOOBIG
long z = scm_pseudolong (SCM_INUM (x));
{
if (SCM_UNBNDP (x))
return SCM_MAKINUM (1L);
-#ifndef SCM_RECKLESS
SCM_GASSERT1 (SCM_NUMBERP (x), g_product, x, SCM_ARG1, s_product);
-#endif
return x;
}
#ifdef SCM_FLOATS
y = t;
goto bigreal;
}
-#ifndef SCM_RECKLESS
else if (!(SCM_INEXP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_product, x, y, SCM_ARGn, s_product);
}
-#endif
#else
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_INEXP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_product, x, y, SCM_ARGn, s_product);
}
-#endif
#endif
if (SCM_CPLXP (x))
{
}
if (SCM_NINUMP (y))
{
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_BIGP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_product, x, y, SCM_ARGn, s_product);
}
-#endif
intbig:
if (SCM_INUM0 == x)
return x;
double d, r, i, a;
if (SCM_NINUMP (x))
{
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (x)))
{
if (SCM_UNBNDP (y))
SCM_WTA_DISPATCH_2 (g_divide, x, y, SCM_ARG1, s_divide);
}
}
-#endif
if (SCM_UNBNDP (y))
{
#ifdef SCM_BIGDIG
SCM_ASRTGO (SCM_NIMP (y), bady);
if (SCM_BIGP (y))
return scm_makdbl (SCM_INUM (x) / scm_big2dbl (y), 0.0);
-#ifndef SCM_RECKLESS
if (!(SCM_INEXP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_divide, x, y, SCM_ARGn, s_divide);
}
-#endif
#else
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_INEXP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_divide, x, y, SCM_ARGn, s_divide);
}
-#endif
#endif
if (SCM_REALP (y))
return scm_makdbl (SCM_INUM (x) / SCM_REALPART (y), 0.0);
}
if (SCM_NINUMP (y))
{
-#ifndef SCM_RECKLESS
if (!(SCM_NIMP (y) && SCM_BIGP (y)))
{
bady:
SCM_WTA_DISPATCH_2 (g_divide, x, y, SCM_ARGn, s_divide);
}
-#endif
goto ov;
}
#else
SCM_ASRTGO (SCM_NIMP (z), badz);
if (SCM_BIGP (z))
return z;
-#ifndef SCM_RECKLESS
if (!(SCM_INEXP (z)))
{
badz:
SCM_WTA_DISPATCH_1 (g_real_part, z, SCM_ARG1, s_real_part);
}
-#endif
#else
SCM_GASSERT1 (SCM_NIMP (z) && SCM_INEXP (z),
g_real_part, z, SCM_ARG1, s_real_part);
SCM_ASRTGO (SCM_NIMP (z), badz);
if (SCM_BIGP (z))
return SCM_INUM0;
-#ifndef SCM_RECKLESS
if (!(SCM_INEXP (z)))
{
badz:
SCM_WTA_DISPATCH_1 (g_imag_part, z, SCM_ARG1, s_imag_part);
}
-#endif
#else
SCM_GASSERT1 (SCM_NIMP (z) && SCM_INEXP (z),
g_imag_part, z, SCM_ARG1, s_imag_part);
SCM_ASRTGO (SCM_NIMP (z), badz);
if (SCM_BIGP (z))
return scm_abs (z);
-#ifndef SCM_RECKLESS
if (!(SCM_INEXP (z)))
{
badz:
SCM_WTA_DISPATCH_1 (g_magnitude, z, SCM_ARG1, s_magnitude);
}
-#endif
#else
SCM_GASSERT1 (SCM_NIMP (z) && SCM_INEXP (z),
g_magnitude, z, SCM_ARG1, s_magnitude);
x = (SCM_TYP16 (z) == scm_tc16_bigpos) ? 1.0 : -1.0;
goto do_angle;
}
-#ifndef SCM_RECKLESS
if (!(SCM_INEXP (z)))
{
badz:
SCM_WTA_DISPATCH_1 (g_angle, z, SCM_ARG1, s_angle);
}
-#endif
#else
SCM_GASSERT1 (SCM_NIMP (z) && SCM_INEXP (z), g_angle, z, SCM_ARG1, s_angle);
#endif
-/* Copyright (C) 1995, 1996, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1998, 1999 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
long j;
long e;
- SCM_ASSERT (SCM_NIMP (vec1) && SCM_VECTORP (vec1), vec1, SCM_ARG1, s_vector_move_right_x);
+ SCM_ASSERT (SCM_NIMP (vec1) && SCM_VECTORP (vec1),
+ vec1, SCM_ARG1, s_vector_move_right_x);
SCM_ASSERT (SCM_INUMP (start1), start1, SCM_ARG2, s_vector_move_right_x);
SCM_ASSERT (SCM_INUMP (end1), end1, SCM_ARG3, s_vector_move_right_x);
- SCM_ASSERT (SCM_NIMP (vec2) && SCM_VECTORP (vec2), vec2, SCM_ARG4, s_vector_move_right_x);
+ SCM_ASSERT (SCM_NIMP (vec2) && SCM_VECTORP (vec2),
+ vec2, SCM_ARG4, s_vector_move_right_x);
SCM_ASSERT (SCM_INUMP (start2), start2, SCM_ARG5, s_vector_move_right_x);
i = SCM_INUM (start1);
j = SCM_INUM (start2);
e = SCM_INUM (end1);
- SCM_ASSERT (i <= SCM_LENGTH (vec1) && i >= 0, start1, SCM_OUTOFRANGE, s_vector_move_right_x);
- SCM_ASSERT (j <= SCM_LENGTH (vec2) && j >= 0, start2, SCM_OUTOFRANGE, s_vector_move_right_x);
- SCM_ASSERT (e <= SCM_LENGTH (vec1) && e >= 0, end1, SCM_OUTOFRANGE, s_vector_move_right_x);
- SCM_ASSERT ((j = e-i+j) <= SCM_LENGTH (vec2), start2, SCM_OUTOFRANGE, s_vector_move_right_x);
- while (i<e) SCM_VELTS (vec2)[--j] = SCM_VELTS (vec1)[--e];
+ SCM_ASSERT (i <= SCM_LENGTH (vec1) && i >= 0,
+ start1, SCM_OUTOFRANGE, s_vector_move_right_x);
+ SCM_ASSERT (j <= SCM_LENGTH (vec2) && j >= 0,
+ start2, SCM_OUTOFRANGE, s_vector_move_right_x);
+ SCM_ASSERT (e <= SCM_LENGTH (vec1) && e >= 0,
+ end1, SCM_OUTOFRANGE, s_vector_move_right_x);
+ j = e - i + j;
+ SCM_ASSERT (j <= SCM_LENGTH (vec2),
+ start2, SCM_OUTOFRANGE, s_vector_move_right_x);
+ while (i < e)
+ SCM_VELTS (vec2)[--j] = SCM_VELTS (vec1)[--e];
return SCM_UNSPECIFIED;
}