Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions be/src/vec/functions/math.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,11 @@

namespace doris::vectorized {

struct GammaName {
static constexpr auto name = "gamma";
};
using FunctionGamma = FunctionMathUnary<UnaryFunctionPlain<GammaName, std::tgamma>>;

struct AcosName {
static constexpr auto name = "acos";
// https://dev.mysql.com/doc/refman/8.4/en/mathematical-functions.html#function_acos
Expand Down Expand Up @@ -991,5 +996,6 @@ void register_function_math(SimpleFunctionFactory& factory) {
factory.register_function<FunctionMathBinary<LcmImpl<TYPE_LARGEINT>>>();
factory.register_function<FunctionIsNan>();
factory.register_function<FunctionIsInf>();
factory.register_function<FunctionGamma>();
}
} // namespace doris::vectorized
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@
import org.apache.doris.nereids.trees.expressions.functions.scalar.FromSecond;
import org.apache.doris.nereids.trees.expressions.functions.scalar.FromUnixtime;
import org.apache.doris.nereids.trees.expressions.functions.scalar.G;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Gamma;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Gcd;
import org.apache.doris.nereids.trees.expressions.functions.scalar.GetFormat;
import org.apache.doris.nereids.trees.expressions.functions.scalar.GetVariantType;
Expand Down Expand Up @@ -769,6 +770,7 @@ public class BuiltinScalarFunctions implements FunctionHelper {
scalar(FromIso8601Date.class, "from_iso8601_date"),
scalar(FromUnixtime.class, "from_unixtime"),
scalar(G.class, "g"),
scalar(Gamma.class, "gamma"),
scalar(Gcd.class, "gcd"),
scalar(GetFormat.class, "get_format"),
scalar(GetVariantType.class, "variant_type"),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.

package org.apache.doris.nereids.trees.expressions.functions.scalar;

import org.apache.doris.catalog.FunctionSignature;
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
import org.apache.doris.nereids.types.DoubleType;

import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;

import java.util.List;

/**
* ScalarFunction 'gamma'. This class is generated by GenerateFunction.
*/
public class Gamma extends ScalarFunction
implements UnaryExpression, ExplicitlyCastableSignature, PropagateNullable {

public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE)
);

/**
* constructor with 1 argument.
*/
public Gamma(Expression arg) {
super("gamma", arg);
}

/** constructor for withChildren and reuse signature */
private Gamma(ScalarFunctionParams functionParams) {
super(functionParams);
}

/**
* withChildren.
*/
@Override
public Gamma withChildren(List<Expression> children) {
Preconditions.checkArgument(children.size() == 1);
return new Gamma(getFunctionParams(children));
}

@Override
public List<FunctionSignature> getSignatures() {
return SIGNATURES;
}

@Override
public <R, C> R accept(ExpressionVisitor<R, C> visitor, C context) {
return visitor.visitGamma(this, context);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,7 @@
import org.apache.doris.nereids.trees.expressions.functions.scalar.FromIso8601Date;
import org.apache.doris.nereids.trees.expressions.functions.scalar.FromUnixtime;
import org.apache.doris.nereids.trees.expressions.functions.scalar.G;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Gamma;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Gcd;
import org.apache.doris.nereids.trees.expressions.functions.scalar.GetFormat;
import org.apache.doris.nereids.trees.expressions.functions.scalar.GetVariantType;
Expand Down Expand Up @@ -1401,6 +1402,10 @@ default R visitG(G g, C context) {
return visitScalarFunction(g, context);
}

default R visitGamma(Gamma gamma, C context) {
return visitScalarFunction(gamma, context);
}

default R visitGcd(Gcd gcd, C context) {
return visitScalarFunction(gcd, context);
}
Expand Down