Built-in functions and variables.
More...
#include <cmath>
#include <functional>
#include <unordered_map>
#include <vector>
#include "tcalc/ast/function.hpp"
#include "tcalc/ast/node.hpp"
#include "tcalc/ast/program.hpp"
#include "tcalc/common.hpp"
#include "tcalc/error.hpp"
Go to the source code of this file.
|
using | tcalc::builtins::Function = std::function< error::Result< double >(const std::vector< double > &, const EvalContext &)> |
| Built-in function type.
|
|
|
TCALC_PUBLIC error::Result< double > | tcalc::builtins::sqrt (const std::vector< double > &args, const EvalContext &ctx) |
| Built-in sqrt function.
|
|
TCALC_PUBLIC error::Result< double > | tcalc::builtins::pow (const std::vector< double > &args, const EvalContext &ctx) |
| Built-in pow function.
|
|
TCALC_PUBLIC error::Result< double > | tcalc::builtins::log (const std::vector< double > &args, const EvalContext &ctx) |
| Built-in log function.
|
|
TCALC_PUBLIC error::Result< double > | tcalc::builtins::sin (const std::vector< double > &args, const EvalContext &ctx) |
| Built-in sin function.
|
|
TCALC_PUBLIC error::Result< double > | tcalc::builtins::cos (const std::vector< double > &args, const EvalContext &ctx) |
| Built-in cos function.
|
|
TCALC_PUBLIC error::Result< double > | tcalc::builtins::tan (const std::vector< double > &args, const EvalContext &ctx) |
| Built-in tan function.
|
|
TCALC_PUBLIC error::Result< double > | tcalc::builtins::acos (const std::vector< double > &args, const EvalContext &ctx) |
| Built-in acos function.
|
|
TCALC_PUBLIC error::Result< double > | tcalc::builtins::asin (const std::vector< double > &args, const EvalContext &ctx) |
| Built-in asin function.
|
|
TCALC_PUBLIC error::Result< double > | tcalc::builtins::atan (const std::vector< double > &args, const EvalContext &ctx) |
| Built-in atan function.
|
|
TCALC_PUBLIC error::Result< double > | tcalc::builtins::exp (const std::vector< double > &args, const EvalContext &ctx) |
| Built-in exp function.
|
|
Built-in functions and variables.
- Author
- Dessera (desse.nosp@m.ra@q.nosp@m.q.com)
- Version
- 0.2.0
- Date
- 2025-06-16
- Copyright
- Copyright (c) 2025 Dessera
◆ acos()
error::Result< double > tcalc::builtins::acos |
( |
const std::vector< double > & |
args, |
|
|
const EvalContext & |
ctx |
|
) |
| |
Built-in acos function.
- Parameters
-
args | Function arguments. |
ctx | Evaluation context. |
- Returns
- error::Result<double> Result.
◆ asin()
error::Result< double > tcalc::builtins::asin |
( |
const std::vector< double > & |
args, |
|
|
const EvalContext & |
ctx |
|
) |
| |
Built-in asin function.
- Parameters
-
args | Function arguments. |
ctx | Evaluation context. |
- Returns
- error::Result<double> Result.
◆ atan()
error::Result< double > tcalc::builtins::atan |
( |
const std::vector< double > & |
args, |
|
|
const EvalContext & |
ctx |
|
) |
| |
Built-in atan function.
- Parameters
-
args | Function arguments. |
ctx | Evaluation context. |
- Returns
- error::Result<double> Result.
◆ cos()
error::Result< double > tcalc::builtins::cos |
( |
const std::vector< double > & |
args, |
|
|
const EvalContext & |
ctx |
|
) |
| |
Built-in cos function.
- Parameters
-
args | Function arguments. |
ctx | Evaluation context. |
- Returns
- error::Result<double> Result.
◆ exp()
error::Result< double > tcalc::builtins::exp |
( |
const std::vector< double > & |
args, |
|
|
const EvalContext & |
ctx |
|
) |
| |
Built-in exp function.
- Parameters
-
args | Function arguments. |
ctx | Evaluation context. |
- Returns
- error::Result<double> Result.
◆ log()
error::Result< double > tcalc::builtins::log |
( |
const std::vector< double > & |
args, |
|
|
const EvalContext & |
ctx |
|
) |
| |
Built-in log function.
- Parameters
-
args | Function arguments. |
ctx | Evaluation context. |
- Returns
- error::Result<double> Result.
◆ pow()
error::Result< double > tcalc::builtins::pow |
( |
const std::vector< double > & |
args, |
|
|
const EvalContext & |
ctx |
|
) |
| |
Built-in pow function.
- Parameters
-
- Returns
- error::Result<double> Result.
◆ sin()
error::Result< double > tcalc::builtins::sin |
( |
const std::vector< double > & |
args, |
|
|
const EvalContext & |
ctx |
|
) |
| |
Built-in sin function.
- Parameters
-
args | Function arguments. |
ctx | Evaluation context. |
- Returns
- error::Result<double> Result.
◆ sqrt()
error::Result< double > tcalc::builtins::sqrt |
( |
const std::vector< double > & |
args, |
|
|
const EvalContext & |
ctx |
|
) |
| |
Built-in sqrt function.
- Parameters
-
- Returns
- error::Result<double> Result.
◆ tan()
error::Result< double > tcalc::builtins::tan |
( |
const std::vector< double > & |
args, |
|
|
const EvalContext & |
ctx |
|
) |
| |
Built-in tan function.
- Parameters
-
args | Function arguments. |
ctx | Evaluation context. |
- Returns
- error::Result<double> Result.
◆ BUILTIN_FUNCTIONS
const std::unordered_map<std::string, Function> tcalc::builtins::BUILTIN_FUNCTIONS |
|
inline |
Initial value:= {
{
"sqrt",
sqrt }, {
"pow",
pow }, {
"log", log }, {
"sin", sin },
}
TCALC_PUBLIC error::Result< double > asin(const std::vector< double > &args, const EvalContext &ctx)
Built-in asin function.
Definition builtins.cpp:146
TCALC_PUBLIC error::Result< double > exp(const std::vector< double > &args, const EvalContext &ctx)
Built-in exp function.
Definition builtins.cpp:170
TCALC_PUBLIC error::Result< double > sqrt(const std::vector< double > &args, const EvalContext &ctx)
Built-in sqrt function.
Definition builtins.cpp:62
TCALC_PUBLIC error::Result< double > tan(const std::vector< double > &args, const EvalContext &ctx)
Built-in tan function.
Definition builtins.cpp:122
TCALC_PUBLIC error::Result< double > acos(const std::vector< double > &args, const EvalContext &ctx)
Built-in acos function.
Definition builtins.cpp:134
TCALC_PUBLIC error::Result< double > pow(const std::vector< double > &args, const EvalContext &ctx)
Built-in pow function.
Definition builtins.cpp:74
TCALC_PUBLIC error::Result< double > cos(const std::vector< double > &args, const EvalContext &ctx)
Built-in cos function.
Definition builtins.cpp:110
TCALC_PUBLIC error::Result< double > atan(const std::vector< double > &args, const EvalContext &ctx)
Built-in atan function.
Definition builtins.cpp:158
Built-in functions.
◆ BUILTIN_VARIABLES
const std::unordered_map<std::string, double> tcalc::builtins::BUILTIN_VARIABLES |
|
inline |
Initial value:= {
{ "pi", M_PI },
{ "e", M_E },
}
Built-in variables.