@@ -461,7 +461,7 @@ unsigned int *VirtualMachinePrivate::run(unsigned int *pos, bool reset)
461461 {
462462 const Value *v = READ_REG (0 , 1 );
463463 if (v->isNegativeInfinity ())
464- REPLACE_RET_VALUE (Value (SpecialValue::Infinity ), 1 );
464+ REPLACE_RET_VALUE (std::numeric_limits< double >:: infinity ( ), 1 );
465465 else if (!v->isInfinity ())
466466 REPLACE_RET_VALUE (std::abs (v->toDouble ()), 1 );
467467 DISPATCH ();
@@ -487,7 +487,7 @@ unsigned int *VirtualMachinePrivate::run(unsigned int *pos, bool reset)
487487 {
488488 const Value &v = *READ_REG (0 , 1 );
489489 if (v < 0 )
490- REPLACE_RET_VALUE (Value (SpecialValue::NaN ), 1 );
490+ REPLACE_RET_VALUE (std::numeric_limits< double >:: quiet_NaN ( ), 1 );
491491 else if (!v.isInfinity ())
492492 REPLACE_RET_VALUE (std::sqrt (v.toDouble ()), 1 );
493493 DISPATCH ();
@@ -497,7 +497,7 @@ unsigned int *VirtualMachinePrivate::run(unsigned int *pos, bool reset)
497497 {
498498 const Value *v = READ_REG (0 , 1 );
499499 if (v->isInfinity () || v->isNegativeInfinity ())
500- REPLACE_RET_VALUE (Value (SpecialValue::NaN ), 1 );
500+ REPLACE_RET_VALUE (std::numeric_limits< double >:: quiet_NaN ( ), 1 );
501501 else
502502 REPLACE_RET_VALUE (std::sin (v->toDouble () * pi / 180 ), 1 );
503503 DISPATCH ();
@@ -507,7 +507,7 @@ unsigned int *VirtualMachinePrivate::run(unsigned int *pos, bool reset)
507507 {
508508 const Value *v = READ_REG (0 , 1 );
509509 if (v->isInfinity () || v->isNegativeInfinity ())
510- REPLACE_RET_VALUE (Value (SpecialValue::NaN ), 1 );
510+ REPLACE_RET_VALUE (std::numeric_limits< double >:: quiet_NaN ( ), 1 );
511511 else
512512 REPLACE_RET_VALUE (std::cos (v->toDouble () * pi / 180 ), 1 );
513513 DISPATCH ();
@@ -517,17 +517,17 @@ unsigned int *VirtualMachinePrivate::run(unsigned int *pos, bool reset)
517517 {
518518 const Value *v = READ_REG (0 , 1 );
519519 if (v->isInfinity () || v->isNegativeInfinity ())
520- REPLACE_RET_VALUE (Value (SpecialValue::NaN ), 1 );
520+ REPLACE_RET_VALUE (std::numeric_limits< double >:: quiet_NaN ( ), 1 );
521521 else {
522522 long mod;
523523 if (v->toLong () < 0 )
524524 mod = (v->toLong () + 360 ) % 360 ;
525525 else
526526 mod = v->toLong () % 360 ;
527527 if (mod == 90 )
528- REPLACE_RET_VALUE (Value (SpecialValue::Infinity ), 1 );
528+ REPLACE_RET_VALUE (std::numeric_limits< double >:: infinity ( ), 1 );
529529 else if (mod == 270 )
530- REPLACE_RET_VALUE (Value (SpecialValue::NegativeInfinity ), 1 );
530+ REPLACE_RET_VALUE (-std::numeric_limits< double >:: infinity ( ), 1 );
531531 else
532532 REPLACE_RET_VALUE (std::tan (v->toDouble () * pi / 180 ), 1 );
533533 }
@@ -538,7 +538,7 @@ unsigned int *VirtualMachinePrivate::run(unsigned int *pos, bool reset)
538538 {
539539 const Value &v = *READ_REG (0 , 1 );
540540 if (v < -1 || v > 1 )
541- REPLACE_RET_VALUE (Value (SpecialValue::NaN ), 1 );
541+ REPLACE_RET_VALUE (std::numeric_limits< double >:: quiet_NaN ( ), 1 );
542542 else
543543 REPLACE_RET_VALUE (std::asin (v.toDouble ()) * 180 / pi, 1 );
544544 DISPATCH ();
@@ -548,7 +548,7 @@ unsigned int *VirtualMachinePrivate::run(unsigned int *pos, bool reset)
548548 {
549549 const Value &v = *READ_REG (0 , 1 );
550550 if (v < -1 || v > 1 )
551- REPLACE_RET_VALUE (Value (SpecialValue::NaN ), 1 );
551+ REPLACE_RET_VALUE (std::numeric_limits< double >:: quiet_NaN ( ), 1 );
552552 else
553553 REPLACE_RET_VALUE (std::acos (v.toDouble ()) * 180 / pi, 1 );
554554 DISPATCH ();
0 commit comments