mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-04 15:40:49 +00:00
Add some of missed cmath functions
acosh asinh atan2 atanh cosh hypot log1p sinh
This commit is contained in:
parent
4fede5b008
commit
d12f2f64fb
19
src/Functions/acosh.cpp
Normal file
19
src/Functions/acosh.cpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#include <Functions/FunctionMathUnary.h>
|
||||||
|
#include <Functions/FunctionFactory.h>
|
||||||
|
|
||||||
|
namespace DB
|
||||||
|
{
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
|
||||||
|
struct AcoshName { static constexpr auto name = "acosh"; };
|
||||||
|
using FunctionAcosh = FunctionMathUnary<UnaryFunctionVectorized<AcoshName, acosh>>;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void registerFunctionAcosh(FunctionFactory & factory)
|
||||||
|
{
|
||||||
|
factory.registerFunction<FunctionAcosh>();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
19
src/Functions/asinh.cpp
Normal file
19
src/Functions/asinh.cpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#include <Functions/FunctionMathUnary.h>
|
||||||
|
#include <Functions/FunctionFactory.h>
|
||||||
|
|
||||||
|
namespace DB
|
||||||
|
{
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
|
||||||
|
struct AsinhName { static constexpr auto name = "asinh"; };
|
||||||
|
using FunctionAsinh = FunctionMathUnary<UnaryFunctionVectorized<AsinhName, asinh>>;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void registerFunctionAsinh(FunctionFactory & factory)
|
||||||
|
{
|
||||||
|
factory.registerFunction<FunctionAsinh>();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
19
src/Functions/atan2.cpp
Normal file
19
src/Functions/atan2.cpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#include <Functions/FunctionMathBinaryFloat64.h>
|
||||||
|
#include <Functions/FunctionFactory.h>
|
||||||
|
|
||||||
|
namespace DB
|
||||||
|
{
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
|
||||||
|
struct Atan2Name { static constexpr auto name = "atan2"; };
|
||||||
|
using FunctionAtan2 = FunctionMathBinaryFloat64<BinaryFunctionVectorized<Atan2Name, atan2>>;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void registerFunctionAtan2(FunctionFactory & factory)
|
||||||
|
{
|
||||||
|
factory.registerFunction<FunctionAtan2>(FunctionFactory::CaseInsensitive);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
19
src/Functions/atanh.cpp
Normal file
19
src/Functions/atanh.cpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#include <Functions/FunctionMathUnary.h>
|
||||||
|
#include <Functions/FunctionFactory.h>
|
||||||
|
|
||||||
|
namespace DB
|
||||||
|
{
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
|
||||||
|
struct AtanhName { static constexpr auto name = "atanh"; };
|
||||||
|
using FunctionAtanh = FunctionMathUnary<UnaryFunctionVectorized<AtanhName, atanh>>;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void registerFunctionAtanh(FunctionFactory & factory)
|
||||||
|
{
|
||||||
|
factory.registerFunction<FunctionAtanh>();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
19
src/Functions/cosh.cpp
Normal file
19
src/Functions/cosh.cpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#include <Functions/FunctionMathUnary.h>
|
||||||
|
#include <Functions/FunctionFactory.h>
|
||||||
|
|
||||||
|
namespace DB
|
||||||
|
{
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
|
||||||
|
struct CoshName { static constexpr auto name = "cosh"; };
|
||||||
|
using FunctionCosh = FunctionMathUnary<UnaryFunctionVectorized<CoshName, cosh>>;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void registerFunctionCosh(FunctionFactory & factory)
|
||||||
|
{
|
||||||
|
factory.registerFunction<FunctionCosh>();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
19
src/Functions/hypot.cpp
Normal file
19
src/Functions/hypot.cpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#include <Functions/FunctionMathBinaryFloat64.h>
|
||||||
|
#include <Functions/FunctionFactory.h>
|
||||||
|
|
||||||
|
namespace DB
|
||||||
|
{
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
|
||||||
|
struct HypotName { static constexpr auto name = "hypot"; };
|
||||||
|
using FunctionHypot = FunctionMathBinaryFloat64<BinaryFunctionVectorized<HypotName, hypot>>;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void registerFunctionHypot(FunctionFactory & factory)
|
||||||
|
{
|
||||||
|
factory.registerFunction<FunctionHypot>(FunctionFactory::CaseInsensitive);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
19
src/Functions/log1p.cpp
Normal file
19
src/Functions/log1p.cpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#include <Functions/FunctionMathUnary.h>
|
||||||
|
#include <Functions/FunctionFactory.h>
|
||||||
|
|
||||||
|
namespace DB
|
||||||
|
{
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
|
||||||
|
struct Log1pName { static constexpr auto name = "log1p"; };
|
||||||
|
using FunctionLog1p = FunctionMathUnary<UnaryFunctionVectorized<Log1pName, log1p>>;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void registerFunctionLog1p(FunctionFactory & factory)
|
||||||
|
{
|
||||||
|
factory.registerFunction<FunctionLog1p>();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,6 +1,5 @@
|
|||||||
namespace DB
|
namespace DB
|
||||||
{
|
{
|
||||||
|
|
||||||
class FunctionFactory;
|
class FunctionFactory;
|
||||||
|
|
||||||
void registerFunctionE(FunctionFactory & factory);
|
void registerFunctionE(FunctionFactory & factory);
|
||||||
@ -9,6 +8,7 @@ void registerFunctionExp(FunctionFactory & factory);
|
|||||||
void registerFunctionLog(FunctionFactory & factory);
|
void registerFunctionLog(FunctionFactory & factory);
|
||||||
void registerFunctionExp2(FunctionFactory & factory);
|
void registerFunctionExp2(FunctionFactory & factory);
|
||||||
void registerFunctionLog2(FunctionFactory & factory);
|
void registerFunctionLog2(FunctionFactory & factory);
|
||||||
|
void registerFunctionLog1p(FunctionFactory & factory);
|
||||||
void registerFunctionExp10(FunctionFactory & factory);
|
void registerFunctionExp10(FunctionFactory & factory);
|
||||||
void registerFunctionLog10(FunctionFactory & factory);
|
void registerFunctionLog10(FunctionFactory & factory);
|
||||||
void registerFunctionSqrt(FunctionFactory & factory);
|
void registerFunctionSqrt(FunctionFactory & factory);
|
||||||
@ -23,8 +23,15 @@ void registerFunctionTan(FunctionFactory & factory);
|
|||||||
void registerFunctionAsin(FunctionFactory & factory);
|
void registerFunctionAsin(FunctionFactory & factory);
|
||||||
void registerFunctionAcos(FunctionFactory & factory);
|
void registerFunctionAcos(FunctionFactory & factory);
|
||||||
void registerFunctionAtan(FunctionFactory & factory);
|
void registerFunctionAtan(FunctionFactory & factory);
|
||||||
|
void registerFunctionAtan2(FunctionFactory & factory);
|
||||||
void registerFunctionSigmoid(FunctionFactory & factory);
|
void registerFunctionSigmoid(FunctionFactory & factory);
|
||||||
|
void registerFunctionHypot(FunctionFactory & factory);
|
||||||
|
void registerFunctionSinh(FunctionFactory & factory);
|
||||||
|
void registerFunctionCosh(FunctionFactory & factory);
|
||||||
void registerFunctionTanh(FunctionFactory & factory);
|
void registerFunctionTanh(FunctionFactory & factory);
|
||||||
|
void registerFunctionAsinh(FunctionFactory & factory);
|
||||||
|
void registerFunctionAcosh(FunctionFactory & factory);
|
||||||
|
void registerFunctionAtanh(FunctionFactory & factory);
|
||||||
void registerFunctionPow(FunctionFactory & factory);
|
void registerFunctionPow(FunctionFactory & factory);
|
||||||
|
|
||||||
|
|
||||||
@ -36,6 +43,7 @@ void registerFunctionsMath(FunctionFactory & factory)
|
|||||||
registerFunctionLog(factory);
|
registerFunctionLog(factory);
|
||||||
registerFunctionExp2(factory);
|
registerFunctionExp2(factory);
|
||||||
registerFunctionLog2(factory);
|
registerFunctionLog2(factory);
|
||||||
|
registerFunctionLog1p(factory);
|
||||||
registerFunctionExp10(factory);
|
registerFunctionExp10(factory);
|
||||||
registerFunctionLog10(factory);
|
registerFunctionLog10(factory);
|
||||||
registerFunctionSqrt(factory);
|
registerFunctionSqrt(factory);
|
||||||
@ -50,8 +58,15 @@ void registerFunctionsMath(FunctionFactory & factory)
|
|||||||
registerFunctionAsin(factory);
|
registerFunctionAsin(factory);
|
||||||
registerFunctionAcos(factory);
|
registerFunctionAcos(factory);
|
||||||
registerFunctionAtan(factory);
|
registerFunctionAtan(factory);
|
||||||
|
registerFunctionAtan2(factory);
|
||||||
registerFunctionSigmoid(factory);
|
registerFunctionSigmoid(factory);
|
||||||
|
registerFunctionHypot(factory);
|
||||||
|
registerFunctionSinh(factory);
|
||||||
|
registerFunctionCosh(factory);
|
||||||
registerFunctionTanh(factory);
|
registerFunctionTanh(factory);
|
||||||
|
registerFunctionAsinh(factory);
|
||||||
|
registerFunctionAcosh(factory);
|
||||||
|
registerFunctionAtanh(factory);
|
||||||
registerFunctionPow(factory);
|
registerFunctionPow(factory);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
19
src/Functions/sinh.cpp
Normal file
19
src/Functions/sinh.cpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#include <Functions/FunctionMathUnary.h>
|
||||||
|
#include <Functions/FunctionFactory.h>
|
||||||
|
|
||||||
|
namespace DB
|
||||||
|
{
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
|
||||||
|
struct SinhName { static constexpr auto name = "sinh"; };
|
||||||
|
using FunctionSinh = FunctionMathUnary<UnaryFunctionVectorized<SinhName, sinh>>;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void registerFunctionSinh(FunctionFactory & factory)
|
||||||
|
{
|
||||||
|
factory.registerFunction<FunctionSinh>();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user