in backend/engine/src/main/java/com/epam/deltix/quantgrid/engine/node/expression/UnaryFunction.java [40:70]
protected Column evaluate(Column source) {
return switch (function) {
case ABS -> applyDoubleUnaryFunction(source, DoubleFunctions::abs);
case ACOS -> applyDoubleUnaryFunction(source, DoubleFunctions::acos);
case ASIN -> applyDoubleUnaryFunction(source, DoubleFunctions::asin);
case ATAN -> applyDoubleUnaryFunction(source, DoubleFunctions::atan);
case CEIL -> applyDoubleUnaryFunction(source, DoubleFunctions::ceil);
case COS -> applyDoubleUnaryFunction(source, DoubleFunctions::cos);
case DAY -> applyDoubleUnaryFunction(source, Dates::getDay);
case EXP -> applyDoubleUnaryFunction(source, DoubleFunctions::exp);
case FLOOR -> applyDoubleUnaryFunction(source, DoubleFunctions::floor);
case HOUR -> applyDoubleUnaryFunction(source, Dates::getHour);
case ISNA -> isNa(source);
case LEN -> applyString2DoubleFunction(source, StringFunctions::len);
case LN -> applyDoubleUnaryFunction(source, DoubleFunctions::log);
case LOG10 -> applyDoubleUnaryFunction(source, DoubleFunctions::log10);
case LOWER -> applyStringUnaryFunction(source, StringUtils::lowerCase);
case MINUTE -> applyDoubleUnaryFunction(source, Dates::getMinute);
case MONTH -> applyDoubleUnaryFunction(source, Dates::getMonth);
case ROUND -> applyDoubleUnaryFunction(source, DoubleFunctions::round);
case SECOND -> applyDoubleUnaryFunction(source, Dates::getSecond);
case SIN -> applyDoubleUnaryFunction(source, DoubleFunctions::sin);
case SQRT -> applyDoubleUnaryFunction(source, DoubleFunctions::sqrt);
case TAN -> applyDoubleUnaryFunction(source, DoubleFunctions::tan);
case TRIM -> applyStringUnaryFunction(source, StringUtils::trim);
case VALUE -> applyString2DoubleFunction(source, StringFunctions::parseDouble);
case UNICHAR -> applyDouble2StringFunction(source, StringFunctions::fromCharCode);
case UPPER -> applyStringUnaryFunction(source, StringUtils::upperCase);
case YEAR -> applyDoubleUnaryFunction(source, Dates::getYear);
};
}