Lines Matching refs:mdTaskData

142 static Handle Real_strc(TaskData *mdTaskData, Handle hDigits, Handle hMode, Handle arg);
143 static Handle Real_convc(TaskData *mdTaskData, Handle str);
171 Handle real_result(TaskData *mdTaskData, double x)
177 PolyObject *v = alloc(mdTaskData, DBLE/sizeof(PolyWord), F_BYTE_OBJ);
183 return mdTaskData->saveVec.push(v);
328 Handle Real_convc(TaskData *mdTaskData, Handle str) /* string to real */
349 if (*finish != '\0') raise_exception_string(mdTaskData, EXC_conversion, "");
351 return real_result(mdTaskData, result);
394 static Handle powerOf(TaskData *mdTaskData, Handle args)
402 if (y == 0.0) return real_result(mdTaskData, 1.0);
403 else return real_result(mdTaskData, notANumber);
405 else if (isnan(y)) return real_result(mdTaskData, y); /* i.e. nan. */
413 return real_result(mdTaskData, negInf); /* -infinity. */
414 else return real_result(mdTaskData, posInf); /* +infinity. */
416 return real_result(mdTaskData, pow(x, y));
583 Handle Real_strc(TaskData *mdTaskData, Handle hDigits, Handle hMode, Handle arg)
587 int mode = get_C_int(mdTaskData, hMode->Word());
588 int digits = get_C_int(mdTaskData, hDigits->Word());
594 PolyWord pStr = C_string_to_Poly(mdTaskData, chars);
596 Handle ppStr = mdTaskData->saveVec.push(pStr);
598 PolyObject *result = alloc(mdTaskData, 3);
602 return mdTaskData->saveVec.push(result);
628 static Handle Real_dispatchc(TaskData *mdTaskData, Handle args, Handle code)
630 unsigned c = get_C_unsigned(mdTaskData, code->Word());
633 case 3: /* atan2 */ return real_result(mdTaskData, atan2(real_arg1(args), real_arg2(args)));
634 case 4: /* pow */ return powerOf(mdTaskData, args);
637 case 11: /* Value of radix */ return mdTaskData->saveVec.push(TAGGED(_DBL_RADIX));
639 case 11: /* Value of radix */ return mdTaskData->saveVec.push(TAGGED(FLT_RADIX));
641 case 12: /* Value of precision */ return mdTaskData->saveVec.push(TAGGED(DBL_MANT_DIG));
642 case 13: /* Maximum number */ return real_result(mdTaskData, DBL_MAX);
647 return real_result(mdTaskData, DBL_MIN);
649 return mdTaskData->saveVec.push(copysign(1.0, real_arg(args)) < 0.0 ? TAGGED(1) : TAGGED(0));
651 return real_result(mdTaskData, copysign(real_arg1(args), real_arg2(args)));
654 int exp = get_C_int(mdTaskData, DEREFHANDLE(args)->Get(1));
655 return real_result(mdTaskData, ldexp(real_arg1(args), exp));
660 return real_result(mdTaskData, frexp(real_arg(args), &exp));
666 return mdTaskData->saveVec.push(TAGGED(exp));
668 case 26: /* nextafter */ return real_result(mdTaskData, nextafter(real_arg1(args), real_arg2(args)));
674 raise_exception_string(mdTaskData, EXC_Fail, msg);