#ifndef MATH_FUNCTIONS_H #define MATH_FUNCTIONS_H #include #define MAX_MATH_FUNCTION_ARGS 2 /** * @brief Výsledek vyhodnocení výrazu */ enum eval_result { EVAL_OK, EVAL_ERROR }; /** * @brief Ukazatel na vyhodnocovač matematické funkce */ typedef enum eval_result (*math_function_ptr)(double* y, const double* args); /** * @brief Matematická funkce * * Struktura popisující matematickou funkci, kterou lze použít ve vstupním výrazu */ struct math_function { const char *name; size_t num_args; math_function_ptr ptr; }; /** * @brief Vrátí ukazatel na pole obsahující matematické funkce * * Toto pole je ukončené položkou s atributem name == NULL. * * @return Ukazatel na pole funkcí */ const struct math_function *fns_get(void); #endif /* MATH_FUNCTIONS_H */