/** * Bitwise RIGHT SHIFT * * @param pos the token position */ private void BITWISE_RIGHT_SHIFT(int pos) { long a = (long)getTokenValue(pos-1); int b = (int)getTokenValue(pos+1); opSetDecreaseRemove(pos, a >> b); } /**
/** * Characteristic function [a,b) * * @param pos the token position */ private void CHI_L(int pos) { double x = getTokenValue(pos+1); double a = getTokenValue(pos+2); double b = getTokenValue(pos+3); f3SetDecreaseRemove(pos, MathFunctions.chi_L(x, a, b) ); } /**
/** * Cumulative Distribution Function - Normal distribution * * @param pos the token position */ private void CDF_NORMAL(int pos) { double x = getTokenValue(pos+1); double mean = getTokenValue(pos+2); double stddev = getTokenValue(pos+3); f3SetDecreaseRemove(pos, ProbabilityDistributions.cdfNormal(x, mean, stddev) ); } /**
/** * Logical IMP * * * @param pos the token position */ private void IMP(int pos) { double a = getTokenValue(pos-1); double b = getTokenValue(pos+1); opSetDecreaseRemove(pos, BooleanAlgebra.imp(a, b) ); } /**
/** * Equality relation. * * @param pos the token position */ private void EQ(int pos) { double a = getTokenValue(pos-1); double b = getTokenValue(pos+1); opSetDecreaseRemove(pos, BinaryRelations.eq(a, b) ); } /**
/** * Not equals. * * @param pos the token position */ private void NEQ(int pos) { double a = getTokenValue(pos-1); double b = getTokenValue(pos+1); opSetDecreaseRemove(pos, BinaryRelations.neq(a, b) ); } /**
/** * Lower or equal. * * @param pos the token position */ private void LEQ(int pos) { double a = getTokenValue(pos-1); double b = getTokenValue(pos+1); opSetDecreaseRemove(pos, BinaryRelations.leq(a, b) ); } /**
/** * Number of digits in given numeral system * * @param pos the token position */ private void NDIG(int pos) { double number = getTokenValue(pos+1); double numeralSystemBase = getTokenValue(pos+2); f2SetDecreaseRemove(pos, NumberTheory.numberOfDigits(number, numeralSystemBase) ); } /**
/** * Sine function * * @param pos the token position */ private void SIN(int pos) { double a = getTokenValue(pos+1); f1SetDecreaseRemove(pos, MathFunctions.sin(a) ); } /**
/** * Arcus sine / Inverse trigonometric functions * Sets tokens to number token * * @param pos the token position */ private void ASIN(int pos) { double a = getTokenValue(pos+1); f1SetDecreaseRemove(pos, MathFunctions.asin(a) ); } /**
/** * Arcus cotangent / Inverse trigonometric functions * Sets tokens to number token * * @param pos the token position */ private void ACTAN(int pos) { double a = getTokenValue(pos+1); f1SetDecreaseRemove(pos, MathFunctions.actan(a) ); } /**
/** * Hyperbolic cosine * Sets tokens to number token * * @param pos the token position */ private void COSH(int pos) { double a = getTokenValue(pos+1); f1SetDecreaseRemove(pos, MathFunctions.cosh(a) ); } /**
/** * Signum function * Sets tokens to number token * * @param pos the token position */ private void SGN(int pos) { double a = getTokenValue(pos+1); f1SetDecreaseRemove(pos, MathFunctions.sgn(a) ); } /**
/** * Arcus hyperbolic tangent * Sets tokens to number token * * @param pos the token position */ private void ARTANH(int pos) { double a = getTokenValue(pos+1); f1SetDecreaseRemove(pos, MathFunctions.artanh(a) ); } /**
/** * Bell numbers * * @param pos the token position */ private void BELL_NUMBER(int pos) { double n = getTokenValue(pos+1); f1SetDecreaseRemove(pos, MathFunctions.bellNumber(n) ); } /**
/** * Prime counting * * @param pos the token position */ private void PRIME_COUNT(int pos) { double n = getTokenValue(pos+1); f1SetDecreaseRemove(pos, NumberTheory.primeCount(n) ); } /**
/** * Gauss complementary error function * * @param pos the token position */ private void GAUSS_ERFC(int pos) { double x = getTokenValue(pos+1); f1SetDecreaseRemove(pos, SpecialFunctions.erfc(x) ); } /**
/** * Inverse of Gauss complementary error function * * @param pos the token position */ private void GAUSS_ERFC_INV(int pos) { double x = getTokenValue(pos+1); f1SetDecreaseRemove(pos, SpecialFunctions.erfcInv(x) ); } /**
/** * Lambert-W special function, branch = -1 * Sets tokens to number token * * @param pos the token position */ private void LAMBERT_W1(int pos) { double x = getTokenValue(pos+1); f1SetDecreaseRemove(pos, SpecialFunctions.lambertW(x, -1) ); } /**
/** * Signum of Gamma special function * Sets tokens to number token * * @param pos the token position */ private void SGN_GAMMA(int pos) { double x = getTokenValue(pos+1); f1SetDecreaseRemove(pos, SpecialFunctions.sgnGamma(x) ); } /**