PC_graph/math_functions.h
2025-01-04 22:24:52 +01:00

41 lines
872 B
C

#ifndef MATH_FUNCTIONS_H
#define MATH_FUNCTIONS_H
#include <stdlib.h>
#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 */