MCPcopy Create free account
hub / github.com/beanshell/beanshell / doubleBinaryOperation

Method doubleBinaryOperation

src/bsh/Primitive.java:469–529  ·  view source on GitHub ↗
(Double D1, Double D2, int kind)

Source from the content-addressed store, hash-verified

467
468 // returns Object covering both Double and Boolean return types
469 static Object doubleBinaryOperation(Double D1, Double D2, int kind)
470 throws UtilEvalError
471 {
472 double lhs = D1.doubleValue();
473 double rhs = D2.doubleValue();
474
475 switch(kind)
476 {
477 // boolean
478 case LT:
479 case LTX:
480 return lhs < rhs ? Boolean.TRUE : Boolean.FALSE;
481
482 case GT:
483 case GTX:
484 return lhs > rhs ? Boolean.TRUE : Boolean.FALSE;
485
486 case EQ:
487 return lhs == rhs ? Boolean.TRUE : Boolean.FALSE;
488
489 case LE:
490 case LEX:
491 return lhs <= rhs ? Boolean.TRUE : Boolean.FALSE;
492
493 case GE:
494 case GEX:
495 return lhs >= rhs ? Boolean.TRUE : Boolean.FALSE;
496
497 case NE:
498 return lhs != rhs ? Boolean.TRUE : Boolean.FALSE;
499
500 // arithmetic
501 case PLUS:
502 return new Double(lhs + rhs);
503
504 case MINUS:
505 return new Double(lhs - rhs);
506
507 case STAR:
508 return new Double(lhs * rhs);
509
510 case SLASH:
511 return new Double(lhs / rhs);
512
513 case MOD:
514 return new Double(lhs % rhs);
515
516 // can't shift floating-point values
517 case LSHIFT:
518 case LSHIFTX:
519 case RSIGNEDSHIFT:
520 case RSIGNEDSHIFTX:
521 case RUNSIGNEDSHIFT:
522 case RUNSIGNEDSHIFTX:
523 throw new UtilEvalError("Can't shift doubles");
524
525 default:
526 throw new InterpreterError(

Callers 1

binaryOperationImplMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected