trying TEMPLATE C

This commit is contained in:
2023-07-16 00:15:15 +02:00
commit 8e529cb426
40 changed files with 4302 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
#include "src/set_theoric_t/set_theoric_t.h"
#define CREATE_SET_THEORIC(type, id)\
type * CREATE_SET_THEORIC_##type(type id){\
if(id == 0) return NULL;\
SET_THEORIC_##type *ret_set = malloc(sizeof(SET_THEORIC_##type));\
ret_set->id = id;\
ret_set->set = malloc(id*sizeof(type));\
for(type i = 0; i < id; ++i) ret_set->set[i]=i;\
return ret_set; }
CREATE_SET_THEORIC(TYPE_U_CHAR)
CREATE_SET_THEORIC(TYPE_U_INT)
CREATE_SET_THEORIC(TYPE_U_LONG_INT)
#define IS_SET_THEORIC(type, st)\
bool IS_SET_THEORIC_##type(type *st){\
for(type i = 0; i < st->id; ++i){\
if(st->set[i] != i) return false;\
return true; }
IS_SET_THEORIC(TYPE_U_CHAR,st)
IS_SET_THEORIC(TYPE_U_INT,st)
IS_SET_THEORIC(TYPE_U_LONG_INT,st)
+31
View File
@@ -0,0 +1,31 @@
#ifndef __SET_THEORIC_T_C__H
#define __SET_THEORIC_T_C__H
#include <stdlib.h>
#include "src/tools_t/tools_t.h"
#define STRUCT_SET_THEORIC(type)\
struct SET_THEORIC_##type{\
type id;\
type *set;};
STRUCT_SET_THEORIC(TYPE_U_CHAR)
STRUCT_SET_THEORIC(TYPE_U_INT)
STRUCT_SET_THEORIC(TYPE_U_LONG_INT)
typedef struct SET_THEORIC_TYPE_U_CHAR SET_THEORIC_TYPE_U_CHAR;
typedef struct SET_THEORIC_TYPE_U_INT SET_THEORIC_TYPE_U_INT;
typedef struct SET_THEORIC_TYPE_U_LONG_INT SET_THEORIC_TYPE_U_LONG_INT;
SET_THEORIC_TYPE_U_CHAR * CREATE_SET_THEORIC_TYPE_U_CHAR(TYPE_U_CHAR);
SET_THEORIC_TYPE_U_INT * CREATE_SET_THEORIC_TYPE_U_INT(TYPE_U_INT);
SET_THEORIC_TYPE_U_LONG_INT * CREATE_SET_THEORIC_TYPE_U_LONG_INT(TYPE_U_LONG_INT);
bool IS_SET_THEORIC_TYPE_U_CHAR(SET_THEORIC_TYPE_U_CHAR *st);
bool IS_SET_THEORIC_TYPE_U_INT(SET_THEORIC_TYPE_U_INT *st);
bool IS_SET_THEORIC_TYPE_U_LONG_INT(SET_THEORIC_TYPE_U_LONG_INT *st);
#endif /*__SET_THEORIC_T_C__H*/