MCPcopy Create free account
hub / github.com/AstroImageJ/astroimagej / doMath

Method doMath

ij/src/main/java/ij/macro/Functions.java:453–519  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

451 }
452
453 private double doMath() {
454 interp.getToken();
455 if (interp.token!='.')
456 interp.error("'.' expected");
457 interp.getToken();
458 if (!(interp.token==WORD||interp.token==NUMERIC_FUNCTION))
459 interp.error("Function name expected: ");
460 String name = interp.tokenString;
461 if (name.equals("min"))
462 return Math.min(getFirstArg(), getLastArg());
463 else if (name.equals("max"))
464 return Math.max(getFirstArg(), getLastArg());
465 else if (name.equals("pow"))
466 return Math.pow(getFirstArg(), getLastArg());
467 else if (name.equals("atan2"))
468 return Math.atan2(getFirstArg(), getLastArg());
469 else if (name.equals("constrain"))
470 return Math.min(Math.max(getFirstArg(), getNextArg()), getLastArg());
471 else if (name.equals("map")) {
472 double value = getFirstArg();
473 double fromLow = getNextArg();
474 double fromHigh = getNextArg();
475 double toLow = getNextArg();
476 double toHigh = getLastArg();
477 return (value-fromLow)*(toHigh-toLow)/(fromHigh-fromLow)+toLow;
478 }
479 double arg = getArg();
480 if (name.equals("ceil"))
481 return Math.ceil(arg);
482 else if (name.equals("abs"))
483 return Math.abs(arg);
484 else if (name.equals("cos"))
485 return Math.cos(arg);
486 else if (name.equals("exp"))
487 return Math.exp(arg);
488 else if (name.equals("floor"))
489 return Math.floor(arg);
490 else if (name.equals("log"))
491 return Math.log(arg);
492 else if (name.equals("log10"))
493 return Math.log10(arg);
494 else if (name.equals("round"))
495 return Math.round(arg);
496 else if (name.equals("sin"))
497 return Math.sin(arg);
498 else if (name.equals("sqr"))
499 return arg*arg;
500 else if (name.equals("sqrt"))
501 return Math.sqrt(arg);
502 else if (name.equals("tan"))
503 return Math.tan(arg);
504 else if (name.equals("atan"))
505 return Math.atan(arg);
506 else if (name.equals("asin"))
507 return Math.asin(arg);
508 else if (name.equals("acos"))
509 return Math.acos(arg);
510 else if (name.equals("erf"))

Callers 1

getFunctionValueMethod · 0.95

Calls 15

getFirstArgMethod · 0.95
getLastArgMethod · 0.95
getNextArgMethod · 0.95
getArgMethod · 0.95
erfMethod · 0.95
getTokenMethod · 0.45
errorMethod · 0.45
equalsMethod · 0.45
minMethod · 0.45
maxMethod · 0.45
absMethod · 0.45
expMethod · 0.45

Tested by

no test coverage detected