tcalc 0.2.0
 
Loading...
Searching...
No Matches
builtins.hpp File Reference

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.

Classes

class  tcalc::builtins::FunctionWrapper
 Wrapper for User-defined functions. More...
 
class  tcalc::builtins::ImportWrapper
 Wrapper for ProgramImportNode. More...
 

Typedefs

using tcalc::builtins::Function = std::function< error::Result< double >(const std::vector< double > &, const EvalContext &)>
 Built-in function type.
 

Functions

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.
 

Variables

const std::unordered_map< std::string, double > tcalc::builtins::BUILTIN_VARIABLES
 
const std::unordered_map< std::string, Functiontcalc::builtins::BUILTIN_FUNCTIONS
 

Detailed Description

Built-in functions and variables.

Author
Dessera (desse.nosp@m.ra@q.nosp@m.q.com)
Version
0.2.0
Date
2025-06-16

Function Documentation

◆ acos()

error::Result< double > tcalc::builtins::acos ( const std::vector< double > &  args,
const EvalContext ctx 
)

Built-in acos function.

Parameters
argsFunction arguments.
ctxEvaluation 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
argsFunction arguments.
ctxEvaluation 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
argsFunction arguments.
ctxEvaluation 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
argsFunction arguments.
ctxEvaluation 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
argsFunction arguments.
ctxEvaluation 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
argsFunction arguments.
ctxEvaluation 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
argsFunction arguments.
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
argsFunction arguments.
ctxEvaluation 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
argsFunction arguments.
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
argsFunction arguments.
ctxEvaluation context.
Returns
error::Result<double> Result.

Variable Documentation

◆ BUILTIN_FUNCTIONS

const std::unordered_map<std::string, Function> tcalc::builtins::BUILTIN_FUNCTIONS
inline
Initial value:
= {
{ "sqrt", sqrt }, { "pow", pow }, { "log", log }, { "sin", sin },
{ "cos", cos }, { "tan", tan }, { "acos", acos }, { "asin", asin },
{ "atan", atan }, { "exp", exp }
}
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.