\doxysection{vectorspace.\+h}
\hypertarget{vectorspace_8h_source}{}\label{vectorspace_8h_source}\index{workspace/post-\/scarcity/src/memory/vectorspace.h@{workspace/post-\/scarcity/src/memory/vectorspace.h}}
\mbox{\hyperlink{vectorspace_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00001}00001\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00002}00002\ \textcolor{comment}{\ *\ \ vectorspace.h}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00003}00003\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00004}00004\ \textcolor{comment}{\ *\ \ Declarations\ common\ to\ all\ vector\ space\ objects.}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00005}00005\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00006}00006\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00007}00007\ \textcolor{comment}{\ *\ \ (c)\ 2017\ Simon\ Brooke\ <simon@journeyman.cc>}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00008}00008\ \textcolor{comment}{\ *\ \ Licensed\ under\ GPL\ version\ 2.0,\ or,\ at\ your\ option,\ any\ later\ version.}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00009}00009\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00010}00010\ }
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00011}00011\ \textcolor{preprocessor}{\#include\ <stdbool.h>}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00012}00012\ \textcolor{preprocessor}{\#include\ <stdint.h>}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00013}00013\ \textcolor{preprocessor}{\#include\ <stdio.h>}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00014}00014\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00015}00015\ \textcolor{comment}{\ *\ wide\ characters}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00016}00016\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00017}00017\ \textcolor{preprocessor}{\#include\ <wchar.h>}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00018}00018\ \textcolor{preprocessor}{\#include\ <wctype.h>}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00019}00019\ }
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00020}00020\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{consspaceobject_8h}{consspaceobject.h}}"{}}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00021}00021\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{hashmap_8h}{hashmap.h}}"{}}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00022}00022\ }
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00023}00023\ \textcolor{preprocessor}{\#ifndef\ \_\_vectorspace\_h}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00024}00024\ \textcolor{preprocessor}{\#define\ \_\_vectorspace\_h}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00025}00025\ }
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00026}00026\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00027}00027\ \textcolor{comment}{\ *\ part\ of\ the\ implementation\ structure\ of\ a\ namespace.}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00028}00028\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00029}\mbox{\hyperlink{vectorspace_8h_a082539e355a7dbe8a3744346a220a246}{00029}}\ \textcolor{preprocessor}{\#define\ HASHTAG\ "{}HASH"{}}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00030}\mbox{\hyperlink{vectorspace_8h_a845017e723bca337605494a0b9be6d5c}{00030}}\ \textcolor{preprocessor}{\#define\ HASHTV\ 1213415752}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00031}00031\ }
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00032}\mbox{\hyperlink{vectorspace_8h_a8587c3e6f9520c9f7810ed351b27c831}{00032}}\ \textcolor{preprocessor}{\#define\ hashmapp(conspoint)((check\_tag(conspoint,HASHTV)))}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00033}00033\ }
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00034}00034\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00035}00035\ \textcolor{comment}{\ *\ a\ namespace\ (i.e.\ a\ binding\ of\ names\ to\ values,\ implemented\ as\ a\ hashmap)}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00036}00036\ \textcolor{comment}{\ *\ TODO:\ but\ note\ that\ a\ namespace\ is\ now\ essentially\ a\ hashmap\ with\ a\ write\ ACL}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00037}00037\ \textcolor{comment}{\ *\ whose\ name\ is\ interned.}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00038}00038\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00039}\mbox{\hyperlink{vectorspace_8h_a281d57017e0702728da3d7c52675d34d}{00039}}\ \textcolor{preprocessor}{\#define\ NAMESPACETAG\ "{}NMSP"{}}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00040}\mbox{\hyperlink{vectorspace_8h_aaf012fba386a5f8c0c149caa5627f7c2}{00040}}\ \textcolor{preprocessor}{\#define\ NAMESPACETV\ 1347636558}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00041}00041\ }
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00042}\mbox{\hyperlink{vectorspace_8h_abd2edca1a4cd671d43ac9eee691d729c}{00042}}\ \textcolor{preprocessor}{\#define\ namespacep(conspoint)(check\_tag(conspoint,NAMESPACETV))}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00043}00043\ }
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00044}00044\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00045}00045\ \textcolor{comment}{\ *\ a\ vector\ of\ cons\ pointers.}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00046}00046\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00047}\mbox{\hyperlink{vectorspace_8h_a48380c74312e0d155fe3b00d06c676ee}{00047}}\ \textcolor{preprocessor}{\#define\ VECTORTAG\ "{}VECT"{}}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00048}\mbox{\hyperlink{vectorspace_8h_ab14da2980ce3fddae8e82f412273bd11}{00048}}\ \textcolor{preprocessor}{\#define\ VECTORTV\ 1413694806}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00049}00049\ }
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00050}\mbox{\hyperlink{vectorspace_8h_ad64cf5c2c348785ae0e4d3b20bec9760}{00050}}\ \textcolor{preprocessor}{\#define\ vectorp(conspoint)(check\_tag(conspoint,VECTORTV))}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00051}00051\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00052}00052\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00053}00053\ \textcolor{comment}{\ *\ given\ a\ pointer\ to\ a\ vector\ space\ object,\ return\ the\ object.}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00054}00054\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00055}\mbox{\hyperlink{vectorspace_8h_a6961330e553c390cec21939135c8c124}{00055}}\ \textcolor{preprocessor}{\#define\ pointer\_to\_vso(pointer)((vectorpointp(pointer)?\ (struct\ vector\_space\_object\ *)\ pointer2cell(pointer).payload.vectorp.address\ :\ (struct\ vector\_space\_object\ *)\ NULL))}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00056}00056\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00057}00057\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00058}00058\ \textcolor{comment}{\ *\ given\ a\ vector\ space\ object,\ return\ its\ canonical\ pointer.}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00059}00059\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00060}\mbox{\hyperlink{vectorspace_8h_a485ee00329bad53a6353657851ed6233}{00060}}\ \textcolor{preprocessor}{\#define\ vso\_get\_vecp(vso)((((vector\_space\_object)vso)-\/>header.vecp))}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00061}00061\ }
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00062}00062\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{vectorspace_8h_af82611898537d85117224ce5d4c5eeb5}{make\_vso}}(\ uint32\_t\ tag,\ uint64\_t\ payload\_size\ );}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00063}00063\ }
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00064}00064\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{vectorspace_8h_a7d4b938413ff59e1e8c4e6966d86ad38}{free\_vso}}(\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ pointer\ );}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00065}00065\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00066}00066\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00067}00067\ \textcolor{comment}{\ *\ the\ header\ which\ forms\ the\ start\ of\ every\ vector\ space\ object.}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00068}00068\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00069}\mbox{\hyperlink{vectorspace_8h}{00069}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{vectorspace_8h_structvector__space__header}{vector\_space\_header}}\ \{\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00070}00070\ \textcolor{comment}{\ \ \ \ /**\ the\ tag\ (type)\ of\ this\ vector-\/space\ object.\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00071}\mbox{\hyperlink{vectorspace_8h}{00071}}\ \ \ \ \ \textcolor{keyword}{union\ }\{\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00072}00072\ \textcolor{comment}{\ \ \ \ \ \ \ \ /**\ the\ tag\ considered\ as\ bytes.\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00073}00073\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ bytes[\mbox{\hyperlink{consspaceobject_8h_a546e2bc33a194d5620b6c255902091ee}{TAGLENGTH}}];\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00074}00074\ \textcolor{comment}{\ \ \ \ \ \ \ \ /**\ the\ tag\ considered\ as\ a\ number\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00075}00075\ \ \ \ \ \ \ \ \ uint32\_t\ value;}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00076}\mbox{\hyperlink{vectorspace_8h_ad427b8802abb07e6d40728768115d127}{00076}}\ \ \ \ \ \}\ \mbox{\hyperlink{vectorspace_8h_ad427b8802abb07e6d40728768115d127}{tag}};\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00077}00077\ \textcolor{comment}{\ \ \ \ /**\ back\ pointer\ to\ the\ vector\ pointer\ which\ uniquely\ points\ to\ this\ vso\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00078}\mbox{\hyperlink{vectorspace_8h_ac84e775f971dbab6f3ac08fdd378e797}{00078}}\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{vectorspace_8h_ac84e775f971dbab6f3ac08fdd378e797}{vecp}};\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00079}00079\ \textcolor{comment}{\ \ \ \ /**\ the\ size\ of\ my\ payload,\ in\ bytes\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00080}\mbox{\hyperlink{vectorspace_8h_af931a8871310b4dad23f0f0b0f623560}{00080}}\ \ \ \ \ uint64\_t\ \mbox{\hyperlink{vectorspace_8h_af931a8871310b4dad23f0f0b0f623560}{size}};}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00081}00081\ \};}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00082}00082\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00083}00083\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00084}00084\ \textcolor{comment}{\ *\ The\ payload\ of\ a\ hashmap.\ The\ number\ of\ buckets\ is\ assigned\ at\ run-\/time,}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00085}00085\ \textcolor{comment}{\ *\ and\ is\ stored\ in\ n\_buckets.\ Each\ bucket\ is\ something\ ASSOC\ can\ consume:}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00086}00086\ \textcolor{comment}{\ *\ i.e.\ either\ an\ assoc\ list\ or\ a\ further\ hashmap.}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00087}00087\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00088}\mbox{\hyperlink{vectorspace_8h}{00088}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{vectorspace_8h_structhashmap__payload}{hashmap\_payload}}\ \{}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00089}\mbox{\hyperlink{vectorspace_8h_a1d86eb1948d0cd90cacbad7eba0bfc0f}{00089}}\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{vectorspace_8h_a1d86eb1948d0cd90cacbad7eba0bfc0f}{hash\_fn}};\ \ \textcolor{comment}{/*\ function\ for\ hashing\ values\ in\ this\ hashmap,\ or\ \`{}NIL`\ to\ use}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00090}00090\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ the\ default\ hashing\ function\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00091}\mbox{\hyperlink{vectorspace_8h_a2e3029ea295f8519d2e42e8b3c481b4b}{00091}}\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{vectorspace_8h_a2e3029ea295f8519d2e42e8b3c481b4b}{write\_acl}};\ \ \textcolor{comment}{/*\ it\ seems\ to\ me\ that\ it\ is\ likely\ that\ the}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00092}00092\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ principal\ difference\ between\ a\ hashmap\ and\ a}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00093}00093\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ namespace\ is\ that\ a\ hashmap\ has\ a\ write\ ACL}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00094}00094\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ of\ \`{}NIL`,\ meaning\ not\ writeable\ by\ anyone\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00095}\mbox{\hyperlink{vectorspace_8h_a241ccfe90f415a07cad8a881fc0f83ac}{00095}}\ \ \ \ \ uint32\_t\ \mbox{\hyperlink{vectorspace_8h_a241ccfe90f415a07cad8a881fc0f83ac}{n\_buckets}};\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ number\ of\ hash\ buckets\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00096}\mbox{\hyperlink{vectorspace_8h_aa2c870ac0d3f33ae5aa413e2416e4ceb}{00096}}\ \ \ \ \ uint32\_t\ \mbox{\hyperlink{vectorspace_8h_aa2c870ac0d3f33ae5aa413e2416e4ceb}{unused}};\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ for\ word\ alignment\ and\ possible\ later\ expansion\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00097}\mbox{\hyperlink{vectorspace_8h_ae05c576dff650fd511b86a82723a1942}{00097}}\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \mbox{\hyperlink{vectorspace_8h_ae05c576dff650fd511b86a82723a1942}{buckets}}[];\ \ \textcolor{comment}{/*\ actual\ hash\ buckets,\ which\ should\ be\ \`{}NIL`}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00098}00098\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ or\ assoc\ lists\ or\ (possibly)\ further\ hashmaps.\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00099}00099\ \};}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00100}00100\ }
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00101}00101\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00102}00102\ \textcolor{comment}{/**\ a\ vector\_space\_object\ is\ just\ a\ vector\_space\_header\ followed\ by\ a}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00103}00103\ \textcolor{comment}{\ *\ lump\ of\ bytes;\ what\ we\ deem\ to\ be\ in\ there\ is\ a\ function\ of\ the\ tag,}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00104}00104\ \textcolor{comment}{\ *\ and\ at\ this\ stage\ we\ don't\ have\ a\ good\ picture\ of\ what\ these\ may\ be.}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00105}00105\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00106}00106\ \textcolor{comment}{\ *\ \(\backslash\)see\ stack\_frame\ for\ an\ example\ payload;}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00107}00107\ \textcolor{comment}{\ *\ \(\backslash\)see\ make\_empty\_frame\ for\ an\ example\ of\ how\ to\ initialise\ and\ use\ one.}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00108}00108\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00109}\mbox{\hyperlink{vectorspace_8h}{00109}}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{vectorspace_8h_structvector__space__object}{vector\_space\_object}}\ \{\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00110}00110\ \textcolor{comment}{\ \ \ \ /**\ the\ header\ of\ this\ object\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00111}\mbox{\hyperlink{vectorspace_8h_ab85f7d1e94d2f1083b6ce5a136c859f2}{00111}}\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{vectorspace_8h_structvector__space__header}{vector\_space\_header}}\ \mbox{\hyperlink{vectorspace_8h_ab85f7d1e94d2f1083b6ce5a136c859f2}{header}};\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00112}00112\ \textcolor{comment}{\ \ \ \ /**\ we'll\ malloc\ \`{}size`\ bytes\ for\ payload,\ \`{}payload`\ is\ just\ the\ first\ of\ these.}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00113}00113\ \textcolor{comment}{\ \ \ \ \ *\ \(\backslash\)todo\ this\ is\ almost\ certainly\ not\ idiomatic\ C.\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00114}\mbox{\hyperlink{vectorspace_8h}{00114}}\ \ \ \ \ \textcolor{keyword}{union\ }\{\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00115}00115\ \textcolor{comment}{\ \ \ \ \ \ \ \ /**\ the\ payload\ considered\ as\ bytes\ */}}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00116}00116\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ bytes;}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00117}00117\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{vectorspace_8h_structhashmap__payload}{hashmap\_payload}}\ hashmap;}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00118}\mbox{\hyperlink{vectorspace_8h_a52100a8d038844c00250f5356f1b9a3f}{00118}}\ \ \ \ \ \}\ \mbox{\hyperlink{vectorspace_8h_a52100a8d038844c00250f5356f1b9a3f}{payload}};}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00119}00119\ \};}
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00120}00120\ }
\DoxyCodeLine{\Hypertarget{vectorspace_8h_source_l00121}00121\ \textcolor{preprocessor}{\#endif}}

\end{DoxyCode}
