Skip to content

File comp_rational_data.h

File List > comp-rational_data > src > comp_rational_data.h

Go to the documentation of this file

#ifndef COMPUTATION_RATIONAL_DATA_H
#define COMPUTATION_RATIONAL_DATA_H

/******************************************************************************/
/*************************** Includes *****************************************/
/******************************************************************************/

#include "computation_defs.h"
#include "notation_tv.h"
#include "storage_defs.h"
#include "stdbool.h"
#include "stdlib.h"
#include "string.h"

/******************************************************************************/
/*************************** Defines ******************************************/
/******************************************************************************/

/*************************** Write Keys   *************************************/

#define COMP_RATIONAL_DAT_STORAGE_UKEY    ("COMP_RATIONAL_DAT")
/*@@@TODO: add keys*/

/*************************** Config *******************************************/

#define COMP_RATIONAL_DAT_CONFIG_IS_NULL       (0x1u << 1u)

#define COMP_RATIONAL_DAT_CONFIG_BUFFER        (0x1u << 2u)

#define COMP_RATIONAL_DAT_CONFIG_STR_BUFFER    (0x1u << 3u)

/******************************************************************************/
/*************************** Typedefs *****************************************/
/******************************************************************************/

#ifdef __cplusplus
extern "C"
{
#endif

typedef struct {
    int   numerator;
    int   denominator;
    char *parity;
    int   num_algebraic_equ;
    int   den_algebraic_equ;
} comp_rational_data_result_t;
#ifdef __cplusplus
}
#endif

#ifdef __cplusplus
extern "C"
{
#endif

typedef struct {
    storage_write_funptr_t storage_write;
    note_tv_t *            tv_n;
    char *                 tv_str_buff;
    size_t                 tv_str_buff_len;
} comp_rational_data_config_t;
#ifdef __cplusplus
}
#endif

/******************************************************************************/
/*************************** Public Function Declarations *********************/
/******************************************************************************/

#ifdef __cplusplus
extern "C"
{
#endif

uint8_t comp_rational_data_config(comp_rational_data_config_t *config_arg);

#ifdef __cplusplus
}
#endif

#ifdef __cplusplus
extern "C"
{
#endif

uint8_t comp_rational_data_compute();

#ifdef __cplusplus
}
#endif
#ifdef __cplusplus
extern "C"
{
#endif

const comp_rational_data_result_t *comp_rational_data_result();

#ifdef __cplusplus
}
#endif
#endif /* end COMPUTATION_RATIONAL_DATA_H */