#include #include namespace DB { struct LogName { static constexpr auto name = "log"; }; #if USE_FASTOPS namespace { struct Impl { static constexpr auto name = LogName::name; static constexpr auto rows_per_iteration = 0; static constexpr bool always_returns_float64 = false; template static void execute(const T * src, size_t size, T * dst) { NFastOps::Log(src, size, dst); } }; } using FunctionLog = FunctionMathUnary; #else using FunctionLog = FunctionMathUnary>; #endif void registerFunctionLog(FunctionFactory & factory) { factory.registerFunction(FunctionFactory::CaseInsensitive); factory.registerAlias("ln", "log", FunctionFactory::CaseInsensitive); } }