From 3c467516c3b6f5d0ffb838c86169d8a7a5996411 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Tue, 8 May 2018 13:41:00 -0400 Subject: [PATCH] Issue #55 - Add complex_num_type definition --- include/cyclone/types.h | 11 +++++++++++ runtime.c | 1 + 2 files changed, 12 insertions(+) diff --git a/include/cyclone/types.h b/include/cyclone/types.h index d58d6b87..4f72dccb 100644 --- a/include/cyclone/types.h +++ b/include/cyclone/types.h @@ -10,6 +10,7 @@ #define CYCLONE_TYPES_H #include +#include #include #include #include @@ -55,6 +56,7 @@ enum object_tag { , string_tag // 18 , symbol_tag // 19 , vector_tag // 20 + , complex_num_tag // 21 }; #define type_is_pair_prim(clo) \ @@ -676,6 +678,15 @@ typedef struct { #define alloc_bignum(data, p) \ bignum_type *p = gc_alloc_bignum((gc_thread_data *)data); +/** + * @brief Complex number + */ +typedef struct { + gc_header_type hdr; + tag_type tag; + double complex value; +} complex_num_type; + /** * @brief Double-precision floating point type, also known as a flonum. */ diff --git a/runtime.c b/runtime.c index ca8f73ae..f3a0a5d6 100644 --- a/runtime.c +++ b/runtime.c @@ -53,6 +53,7 @@ const char *tag_names[] = { /*string_tag */ , "string" /*symbol_tag */ , "symbol" /*vector_tag */ , "vector" + /*complex_num_tag*/ , "complex number" , "Reserved for future use" };