Lines Matching refs:number
110 LispObj *number, *numbers;
115 number = CAR(numbers);
119 CHECK_NUMBER(number);
120 return (number);
126 set_number_object(&num, number);
142 LispObj *number, *numbers;
147 number = CAR(numbers);
151 CHECK_NUMBER(number);
152 return (number);
158 set_number_object(&num, number);
170 - number &rest more_numbers
174 LispObj *number, *more_numbers;
177 number = ARGUMENT(0);
179 set_number_object(&num, number);
196 / number &rest more_numbers
200 LispObj *number, *more_numbers;
203 number = ARGUMENT(0);
206 set_number_object(&num, number);
215 number = CAR(more_numbers);
219 div_number_object(&num, number);
230 1+ number
234 LispObj *number;
236 number = ARGUMENT(0);
240 add_number_object(&num, number);
248 1- number
252 LispObj *number;
254 number = ARGUMENT(0);
258 add_number_object(&num, number);
266 < number &rest more-numbers
269 LispObj *compare, *number, *more_numbers;
276 number = CAR(more_numbers);
277 if (cmp_object_object(compare, number, 1) >= 0)
279 compare = number;
293 <= number &rest more-numbers
296 LispObj *compare, *number, *more_numbers;
303 number = CAR(more_numbers);
304 if (cmp_object_object(compare, number, 1) > 0)
306 compare = number;
320 = number &rest more-numbers
323 LispObj *compare, *number, *more_numbers;
330 number = CAR(more_numbers);
331 if (cmp_object_object(compare, number, 0) != 0)
333 compare = number;
347 > number &rest more-numbers
350 LispObj *compare, *number, *more_numbers;
357 number = CAR(more_numbers);
358 if (cmp_object_object(compare, number, 1) <= 0)
360 compare = number;
374 >= number &rest more-numbers
377 LispObj *compare, *number, *more_numbers;
384 number = CAR(more_numbers);
385 if (cmp_object_object(compare, number, 1) < 0)
387 compare = number;
401 /= number &rest more-numbers
404 LispObj *object, *compare, *number, *more_numbers;
407 number = ARGUMENT(0);
410 CHECK_REAL(number);
417 compare = number;
419 number = CAR(object);
421 if (cmp_object_object(compare, number, 0) == 0)
425 number = CAR(more_numbers);
438 min number &rest more-numbers
441 LispObj *result, *number, *more_numbers;
448 number = CAR(more_numbers);
449 if (cmp_object_object(result, number, 1) > 0)
450 result = number;
464 max number &rest more-numbers
467 LispObj *result, *number, *more_numbers;
474 number = CAR(more_numbers);
475 if (cmp_object_object(result, number, 1) < 0)
476 result = number;
490 abs number
493 LispObj *result, *number;
495 result = number = ARGUMENT(0);
497 switch (OBJECT_TYPE(number)) {
504 if (cmp_real_object(&zero, number) > 0) {
507 set_real_object(&real, number);
515 set_number_object(&num, number);
520 fatal_builtin_object_error(builtin, number, NOT_A_NUMBER);
567 conjugate number
571 LispObj *number, *realpart, *imagpart;
573 number = ARGUMENT(0);
575 CHECK_NUMBER(number);
577 if (REALP(number))
578 return (number);
580 realpart = OCXR(number);
584 mul_number_object(&num, OCXI(number));
597 LispObj *place, *delta, *number;
603 number = LispGetVar(place);
604 if (number == NULL)
608 number = EVAL(place);
614 set_number_object(&num, number);
616 number = make_number_object(&num);
622 add_number_object(&num, number);
623 number = make_number_object(&num);
628 LispSetVar(place, number);
633 GC_PROTECT(number);
634 (void)APPLY2(Osetf, place, number);
638 return (number);
672 LispDestroy("%s: %s is not a rational number",
714 float number &optional other
717 LispObj *number, *other;
720 number = ARGUMENT(0);
726 return (LispFloatCoerce(builtin, number));
730 LispFloatCoerce(LispBuiltin *builtin, LispObj *number)
734 switch (OBJECT_TYPE(number)) {
736 value = FIXNUM_VALUE(number);
739 value = INT_VALUE(number);
742 value = mpi_getd(OBI(number));
745 return (number);
747 value = (double)OFRN(number) / (double)OFRD(number);
750 value = mpr_getd(OBR(number));
754 fatal_builtin_object_error(builtin, number, NOT_A_REAL_NUMBER);
809 imagpart number
812 LispObj *number;
814 number = ARGUMENT(0);
816 if (COMPLEXP(number))
817 return (OCXI(number));
819 CHECK_REAL(number);
832 LispObj *place, *delta, *number;
838 number = LispGetVar(place);
839 if (number == NULL)
843 number = EVAL(place);
849 set_number_object(&num, number);
851 number = make_number_object(&num);
857 add_number_object(&num, number);
858 number = make_number_object(&num);
863 LispSetVar(place, number);
868 GC_PROTECT(number);
869 (void)APPLY2(Osetf, place, number);
873 return (number);
930 LispDestroy("%s: %s is not a natural number",
1087 minusp number
1090 LispObj *number;
1092 number = ARGUMENT(0);
1094 CHECK_REAL(number);
1096 return (cmp_real_object(&zero, number) > 0 ? T : NIL);
1102 mod number divisor
1107 LispObj *number, *divisor;
1110 number = ARGUMENT(0);
1112 if (INTEGERP(number) && INTEGERP(divisor)) {
1115 set_real_object(&real, number);
1122 set_number_object(&num, number);
1175 LispDestroy("%s: %s is not a rational number",
1216 plusp number
1219 LispObj *number;
1221 number = ARGUMENT(0);
1223 CHECK_REAL(number);
1225 return (cmp_real_object(&zero, number) < 0 ? T : NIL);
1231 rational number
1234 LispObj *number;
1236 number = ARGUMENT(0);
1238 if (DFLOATP(number)) {
1239 double numerator = ODF(number);
1242 number = INTEGER(numerator);
1252 number = make_real_object(&real);
1256 CHECK_REAL(number);
1259 return (number);
1278 realpart number
1281 LispObj *number;
1283 number = ARGUMENT(0);
1285 if (COMPLEXP(number))
1286 return (OCXR(number));
1288 CHECK_REAL(number);
1291 return (number);
1297 rem number divisor
1302 LispObj *number, *divisor;
1305 number = ARGUMENT(0);
1307 if (INTEGERP(number) && INTEGERP(divisor)) {
1310 set_real_object(&real, number);
1317 set_number_object(&num, number);
1329 sqrt number
1333 LispObj *number;
1335 number = ARGUMENT(0);
1337 set_number_object(&num, number);
1346 zerop number
1349 LispObj *result, *number;
1351 number = ARGUMENT(0);
1353 switch (OBJECT_TYPE(number)) {
1360 result = cmp_real_object(&zero, number) == 0 ? T : NIL;
1363 result = cmp_real_object(&zero, OCXR(number)) == 0 &&
1364 cmp_real_object(&zero, OCXI(number)) == 0 ? T : NIL;
1367 fatal_builtin_object_error(builtin, number, NOT_A_NUMBER);
1379 LispObj *number, *divisor;
1382 number = ARGUMENT(0);
1386 if (cmp_real_object(&zero, number) == 0) {
1397 set_number_object(&num, number);
1410 ceiling number &optional divisor
1419 fceiling number &optional divisor
1428 floor number &optional divisor
1437 ffloor number &optional divisor
1446 round number &optional divisor
1455 fround number &optional divisor
1464 truncate number &optional divisor
1473 ftruncate number &optional divisor