FuncSketch
Loading...
Searching...
No Matches
gamma.cpp
Go to the documentation of this file.
1/*
2 * Copyright 2026 MusicScience37 (Kenta Kabashima)
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
21
22#include <boost/math/special_functions/gamma.hpp>
23
28
29namespace func_sketch::math {
30
32 return MathFunction(
34 "gamma", [](Real arg) {
35 try {
36 return boost::math::tgamma(arg);
37 } catch (const std::exception& e) {
38 return std::numeric_limits<Real>::quiet_NaN();
39 }
40 }));
41}
42
44 return MathFunction(
46 "lgamma", [](Real arg) {
47 try {
48 return boost::math::lgamma(arg);
49 } catch (const std::exception& e) {
50 return std::numeric_limits<Real>::quiet_NaN();
51 }
52 }));
53}
54
55} // namespace func_sketch::math
Definition of AcceptableTypes struct.
Class of mathematical functions.
Definitions of common types.
double Real
Type of real numbers in this project.
Declaration of functions to create gamma functions.
MathFunction lgamma_function()
Create lgamma function.
Definition gamma.cpp:43
MathFunction gamma_function()
Create gamma function.
Definition gamma.cpp:31
Definition of GeneralMathFunction class.
auto make_general_math_function(std::string name, FunctionType &&function)
Make a general mathematical function.
Definition of MathFunction class.
Traits struct to handle acceptable number types.