41 lines
875 B
C
41 lines
875 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 */ |