\doxysection{workspace/post-\/scarcity/src/memory/vectorspace.h File Reference}
\hypertarget{vectorspace_8h}{}\label{vectorspace_8h}\index{workspace/post-\/scarcity/src/memory/vectorspace.h@{workspace/post-\/scarcity/src/memory/vectorspace.h}}
{\ttfamily \#include $<$stdbool.\+h$>$}\newline
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$stdio.\+h$>$}\newline
{\ttfamily \#include $<$wchar.\+h$>$}\newline
{\ttfamily \#include $<$wctype.\+h$>$}\newline
{\ttfamily \#include "{}consspaceobject.\+h"{}}\newline
{\ttfamily \#include "{}hashmap.\+h"{}}\newline
Include dependency graph for vectorspace.\+h\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{vectorspace_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{vectorspace_8h__dep__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{vectorspace_8h_structhashmap__payload}{hashmap\+\_\+payload}}
\begin{DoxyCompactList}\small\item\em The payload of a hashmap.  \mbox{\hyperlink{vectorspace_8h_structhashmap__payload}{More...}}\end{DoxyCompactList}\item 
struct \mbox{\hyperlink{vectorspace_8h_structvector__space__header}{vector\+\_\+space\+\_\+header}}
\begin{DoxyCompactList}\small\item\em the header which forms the start of every vector space object.  \mbox{\hyperlink{vectorspace_8h_structvector__space__header}{More...}}\end{DoxyCompactList}\item 
union \mbox{\hyperlink{vectorspace_8h_unionvector__space__header_8tag}{vector\+\_\+space\+\_\+header.\+tag}}
\begin{DoxyCompactList}\small\item\em the tag (type) of this vector-\/space object.  \mbox{\hyperlink{vectorspace_8h_unionvector__space__header_8tag}{More...}}\end{DoxyCompactList}\item 
struct \mbox{\hyperlink{vectorspace_8h_structvector__space__object}{vector\+\_\+space\+\_\+object}}
\begin{DoxyCompactList}\small\item\em a \doxylink{vectorspace_8h_structvector__space__object}{vector\+\_\+space\+\_\+object} is just a \doxylink{vectorspace_8h_structvector__space__header}{vector\+\_\+space\+\_\+header} followed by a lump of bytes; what we deem to be in there is a function of the tag, and at this stage we don\textquotesingle{}t have a good picture of what these may be.  \mbox{\hyperlink{vectorspace_8h_structvector__space__object}{More...}}\end{DoxyCompactList}\item 
union \mbox{\hyperlink{vectorspace_8h_unionvector__space__object_8payload}{vector\+\_\+space\+\_\+object.\+payload}}
\begin{DoxyCompactList}\small\item\em we\textquotesingle{}ll malloc {\ttfamily size} bytes for payload, {\ttfamily payload} is just the first of these.  \mbox{\hyperlink{vectorspace_8h_unionvector__space__object_8payload}{More...}}\end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{vectorspace_8h_a8587c3e6f9520c9f7810ed351b27c831}{hashmapp}}(conspoint)~((\mbox{\hyperlink{consspaceobject_8c_a8670f58dc7ce45ff3f351a6023378e29}{check\+\_\+tag}}(conspoint,\mbox{\hyperlink{vectorspace_8h_a845017e723bca337605494a0b9be6d5c}{HASHTV}})))
\item 
\#define \mbox{\hyperlink{vectorspace_8h_a082539e355a7dbe8a3744346a220a246}{HASHTAG}}~"{}HASH"{}
\begin{DoxyCompactList}\small\item\em \doxylink{vectorspace_8h}{vectorspace.\+h} \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{vectorspace_8h_a845017e723bca337605494a0b9be6d5c}{HASHTV}}~1213415752
\item 
\#define \mbox{\hyperlink{vectorspace_8h_abd2edca1a4cd671d43ac9eee691d729c}{namespacep}}(conspoint)~(\mbox{\hyperlink{consspaceobject_8c_a8670f58dc7ce45ff3f351a6023378e29}{check\+\_\+tag}}(conspoint,\mbox{\hyperlink{vectorspace_8h_aaf012fba386a5f8c0c149caa5627f7c2}{NAMESPACETV}}))
\item 
\#define \mbox{\hyperlink{vectorspace_8h_a281d57017e0702728da3d7c52675d34d}{NAMESPACETAG}}~"{}NMSP"{}
\item 
\#define \mbox{\hyperlink{vectorspace_8h_aaf012fba386a5f8c0c149caa5627f7c2}{NAMESPACETV}}~1347636558
\item 
\#define \mbox{\hyperlink{vectorspace_8h_a6961330e553c390cec21939135c8c124}{pointer\+\_\+to\+\_\+vso}}(pointer)~((\mbox{\hyperlink{consspaceobject_8h_aea54db22dcf0db6b94cce75bbed0fc93}{vectorpointp}}(pointer)? (struct \mbox{\hyperlink{vectorspace_8h_structvector__space__object}{vector\+\_\+space\+\_\+object}} \texorpdfstring{$\ast$}{*}) \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(pointer).payload.\+vectorp.\+address \+: (struct \mbox{\hyperlink{vectorspace_8h_structvector__space__object}{vector\+\_\+space\+\_\+object}} \texorpdfstring{$\ast$}{*}) NULL))
\begin{DoxyCompactList}\small\item\em given a pointer to a vector space object, return the object. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{vectorspace_8h_ad64cf5c2c348785ae0e4d3b20bec9760}{vectorp}}(conspoint)~(\mbox{\hyperlink{consspaceobject_8c_a8670f58dc7ce45ff3f351a6023378e29}{check\+\_\+tag}}(conspoint,\mbox{\hyperlink{vectorspace_8h_ab14da2980ce3fddae8e82f412273bd11}{VECTORTV}}))
\item 
\#define \mbox{\hyperlink{vectorspace_8h_a48380c74312e0d155fe3b00d06c676ee}{VECTORTAG}}~"{}VECT"{}
\item 
\#define \mbox{\hyperlink{vectorspace_8h_ab14da2980ce3fddae8e82f412273bd11}{VECTORTV}}~1413694806
\item 
\#define \mbox{\hyperlink{vectorspace_8h_a485ee00329bad53a6353657851ed6233}{vso\+\_\+get\+\_\+vecp}}(vso)~((((\mbox{\hyperlink{vectorspace_8h_structvector__space__object}{vector\+\_\+space\+\_\+object}})vso)-\/$>$header.\+vecp))
\begin{DoxyCompactList}\small\item\em given a vector space object, return its canonical pointer. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{vectorspace_8h_a7d4b938413ff59e1e8c4e6966d86ad38}{free\+\_\+vso}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} pointer)
\begin{DoxyCompactList}\small\item\em for vector space pointers, free the actual vector-\/space object. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{vectorspace_8h_af82611898537d85117224ce5d4c5eeb5}{make\+\_\+vso}} (uint32\+\_\+t tag, uint64\+\_\+t payload\+\_\+size)
\begin{DoxyCompactList}\small\item\em Allocate a vector space object with this {\ttfamily payload\+\_\+size} and {\ttfamily tag}, and return a {\ttfamily \doxylink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} which points to an object whigh points to it. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Data Structure Documentation}
\index{hashmap\_payload@{hashmap\_payload}}\label{structhashmap__payload}
\Hypertarget{vectorspace_8h_structhashmap__payload}
\doxysubsubsection{struct hashmap\+\_\+payload}
The payload of a hashmap. 

The number of buckets is assigned at run-\/time, and is stored in n\+\_\+buckets. Each bucket is something ASSOC can consume\+: i.\+e. either an assoc list or a further hashmap. 

Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00088}{88}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.



Collaboration diagram for hashmap\+\_\+payload\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=175pt]{structhashmap__payload__coll__graph}
\end{center}
\end{figure}
\begin{DoxyFields}{Data Fields}
\mbox{\Hypertarget{vectorspace_8h_ae05c576dff650fd511b86a82723a1942}\label{vectorspace_8h_ae05c576dff650fd511b86a82723a1942}} 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}&
buckets\mbox{[}$\,$\mbox{]}&
\\
\hline

\mbox{\Hypertarget{vectorspace_8h_a1d86eb1948d0cd90cacbad7eba0bfc0f}\label{vectorspace_8h_a1d86eb1948d0cd90cacbad7eba0bfc0f}} 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}&
hash\_fn&
\\
\hline

\mbox{\Hypertarget{vectorspace_8h_a241ccfe90f415a07cad8a881fc0f83ac}\label{vectorspace_8h_a241ccfe90f415a07cad8a881fc0f83ac}} 
uint32\_t&
n\_buckets&
\\
\hline

\mbox{\Hypertarget{vectorspace_8h_aa2c870ac0d3f33ae5aa413e2416e4ceb}\label{vectorspace_8h_aa2c870ac0d3f33ae5aa413e2416e4ceb}} 
uint32\_t&
unused&
\\
\hline

\mbox{\Hypertarget{vectorspace_8h_a2e3029ea295f8519d2e42e8b3c481b4b}\label{vectorspace_8h_a2e3029ea295f8519d2e42e8b3c481b4b}} 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}&
write\_acl&
\\
\hline

\end{DoxyFields}
\index{vector\_space\_header@{vector\_space\_header}}\label{structvector__space__header}
\Hypertarget{vectorspace_8h_structvector__space__header}
\doxysubsubsection{struct vector\+\_\+space\+\_\+header}
the header which forms the start of every vector space object. 

Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00069}{69}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.



Collaboration diagram for vector\+\_\+space\+\_\+header\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=190pt]{structvector__space__header__coll__graph}
\end{center}
\end{figure}
\begin{DoxyFields}{Data Fields}
\mbox{\Hypertarget{vectorspace_8h_af931a8871310b4dad23f0f0b0f623560}\label{vectorspace_8h_af931a8871310b4dad23f0f0b0f623560}} 
uint64\_t&
size&
the size of my payload, in bytes \\
\hline

\mbox{\Hypertarget{vectorspace_8h_ad427b8802abb07e6d40728768115d127}\label{vectorspace_8h_ad427b8802abb07e6d40728768115d127}} 
union \mbox{\hyperlink{vectorspace_8h_unionvector__space__header_8tag}{vector\_space\_header.tag}}&
tag&
the tag (type) of this vector-\/space object. \\
\hline

\mbox{\Hypertarget{vectorspace_8h_ac84e775f971dbab6f3ac08fdd378e797}\label{vectorspace_8h_ac84e775f971dbab6f3ac08fdd378e797}} 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}&
vecp&
back pointer to the vector pointer which uniquely points to this vso \\
\hline

\end{DoxyFields}
\index{vector\_space\_header.tag@{vector\_space\_header.tag}}\label{unionvector__space__header_8tag}
\Hypertarget{vectorspace_8h_unionvector__space__header_8tag}
\doxysubsubsection{union vector\+\_\+space\+\_\+header.\+tag}
the tag (type) of this vector-\/space object. 

Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00071}{71}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.

\begin{DoxyFields}{Data Fields}
\mbox{\Hypertarget{vectorspace_8h_aa1097d2f1ce65d928eb5be7066053f45}\label{vectorspace_8h_aa1097d2f1ce65d928eb5be7066053f45}} 
\mbox{\hyperlink{vectorspace_8h_a2063c1608d6e0baf80249c42e2be5804}{char}}&
bytes\mbox{[}\mbox{\hyperlink{consspaceobject_8h_a546e2bc33a194d5620b6c255902091ee}{TAGLENGTH}}\mbox{]}&
the tag considered as bytes. \\
\hline

\mbox{\Hypertarget{vectorspace_8h_a2063c1608d6e0baf80249c42e2be5804}\label{vectorspace_8h_a2063c1608d6e0baf80249c42e2be5804}} 
uint32\_t&
value&
the tag considered as a number \\
\hline

\end{DoxyFields}
\index{vector\_space\_object@{vector\_space\_object}}\label{structvector__space__object}
\Hypertarget{vectorspace_8h_structvector__space__object}
\doxysubsubsection{struct vector\+\_\+space\+\_\+object}
a \doxylink{vectorspace_8h_structvector__space__object}{vector\+\_\+space\+\_\+object} is just a \doxylink{vectorspace_8h_structvector__space__header}{vector\+\_\+space\+\_\+header} followed by a lump of bytes; what we deem to be in there is a function of the tag, and at this stage we don\textquotesingle{}t have a good picture of what these may be. 

\begin{DoxySeeAlso}{See also}
\doxylink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame} for an example \doxylink{vectorspace_8h_a52100a8d038844c00250f5356f1b9a3f}{payload}; 

\doxylink{stack_8c_ae97b7f0d449fa282f7a7c68c521dffd3}{make\+\_\+empty\+\_\+frame} for an example of how to initialise and use one. 
\end{DoxySeeAlso}


Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00109}{109}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.



Collaboration diagram for vector\+\_\+space\+\_\+object\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=190pt]{structvector__space__object__coll__graph}
\end{center}
\end{figure}
\begin{DoxyFields}{Data Fields}
\mbox{\Hypertarget{vectorspace_8h_ab85f7d1e94d2f1083b6ce5a136c859f2}\label{vectorspace_8h_ab85f7d1e94d2f1083b6ce5a136c859f2}} 
struct \mbox{\hyperlink{vectorspace_8h_structvector__space__header}{vector\_space\_header}}&
header&
the header of this object \\
\hline

\mbox{\Hypertarget{vectorspace_8h_a52100a8d038844c00250f5356f1b9a3f}\label{vectorspace_8h_a52100a8d038844c00250f5356f1b9a3f}} 
union \mbox{\hyperlink{vectorspace_8h_unionvector__space__object_8payload}{vector\_space\_object.payload}}&
payload&
we\textquotesingle{}ll malloc {\ttfamily size} bytes for payload, {\ttfamily payload} is just the first of these. \newline
\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000012}{Todo}}]this is almost certainly not idiomatic C. \end{DoxyRefDesc}
\\
\hline

\end{DoxyFields}
\index{vector\_space\_object.payload@{vector\_space\_object.payload}}\label{unionvector__space__object_8payload}
\Hypertarget{vectorspace_8h_unionvector__space__object_8payload}
\doxysubsubsection{union vector\+\_\+space\+\_\+object.\+payload}
we\textquotesingle{}ll malloc {\ttfamily size} bytes for payload, {\ttfamily payload} is just the first of these. 

\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000012}{Todo}}]this is almost certainly not idiomatic C. \end{DoxyRefDesc}


Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00114}{114}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.

\begin{DoxyFields}{Data Fields}
\mbox{\Hypertarget{vectorspace_8h_a4b3a6218bb3e3a7303e8a171a60fcf92}\label{vectorspace_8h_a4b3a6218bb3e3a7303e8a171a60fcf92}} 
char&
bytes&
the payload considered as bytes \\
\hline

\mbox{\Hypertarget{vectorspace_8h_adda7806a4847ec61b5940c2623a5aabd}\label{vectorspace_8h_adda7806a4847ec61b5940c2623a5aabd}} 
struct \mbox{\hyperlink{vectorspace_8h_structhashmap__payload}{hashmap\_payload}}&
hashmap&
\\
\hline

\end{DoxyFields}


\doxysubsection{Macro Definition Documentation}
\Hypertarget{vectorspace_8h_a8587c3e6f9520c9f7810ed351b27c831}\label{vectorspace_8h_a8587c3e6f9520c9f7810ed351b27c831} 
\index{vectorspace.h@{vectorspace.h}!hashmapp@{hashmapp}}
\index{hashmapp@{hashmapp}!vectorspace.h@{vectorspace.h}}
\doxysubsubsection{\texorpdfstring{hashmapp}{hashmapp}}
{\footnotesize\ttfamily \#define hashmapp(\begin{DoxyParamCaption}\item[{}]{conspoint }\end{DoxyParamCaption})~((\mbox{\hyperlink{consspaceobject_8c_a8670f58dc7ce45ff3f351a6023378e29}{check\+\_\+tag}}(conspoint,\mbox{\hyperlink{vectorspace_8h_a845017e723bca337605494a0b9be6d5c}{HASHTV}})))}



Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00032}{32}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.

\Hypertarget{vectorspace_8h_a082539e355a7dbe8a3744346a220a246}\label{vectorspace_8h_a082539e355a7dbe8a3744346a220a246} 
\index{vectorspace.h@{vectorspace.h}!HASHTAG@{HASHTAG}}
\index{HASHTAG@{HASHTAG}!vectorspace.h@{vectorspace.h}}
\doxysubsubsection{\texorpdfstring{HASHTAG}{HASHTAG}}
{\footnotesize\ttfamily \#define HASHTAG~"{}HASH"{}}



\doxylink{vectorspace_8h}{vectorspace.\+h} 

Declarations common to all vector space objects.

(c) 2017 Simon Brooke \href{mailto:simon@journeyman.cc}{\texttt{ simon@journeyman.\+cc}} Licensed under GPL version 2.\+0, or, at your option, any later version. 

Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00029}{29}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.

\Hypertarget{vectorspace_8h_a845017e723bca337605494a0b9be6d5c}\label{vectorspace_8h_a845017e723bca337605494a0b9be6d5c} 
\index{vectorspace.h@{vectorspace.h}!HASHTV@{HASHTV}}
\index{HASHTV@{HASHTV}!vectorspace.h@{vectorspace.h}}
\doxysubsubsection{\texorpdfstring{HASHTV}{HASHTV}}
{\footnotesize\ttfamily \#define HASHTV~1213415752}



Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00030}{30}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.

\Hypertarget{vectorspace_8h_abd2edca1a4cd671d43ac9eee691d729c}\label{vectorspace_8h_abd2edca1a4cd671d43ac9eee691d729c} 
\index{vectorspace.h@{vectorspace.h}!namespacep@{namespacep}}
\index{namespacep@{namespacep}!vectorspace.h@{vectorspace.h}}
\doxysubsubsection{\texorpdfstring{namespacep}{namespacep}}
{\footnotesize\ttfamily \#define namespacep(\begin{DoxyParamCaption}\item[{}]{conspoint }\end{DoxyParamCaption})~(\mbox{\hyperlink{consspaceobject_8c_a8670f58dc7ce45ff3f351a6023378e29}{check\+\_\+tag}}(conspoint,\mbox{\hyperlink{vectorspace_8h_aaf012fba386a5f8c0c149caa5627f7c2}{NAMESPACETV}}))}



Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00042}{42}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.

\Hypertarget{vectorspace_8h_a281d57017e0702728da3d7c52675d34d}\label{vectorspace_8h_a281d57017e0702728da3d7c52675d34d} 
\index{vectorspace.h@{vectorspace.h}!NAMESPACETAG@{NAMESPACETAG}}
\index{NAMESPACETAG@{NAMESPACETAG}!vectorspace.h@{vectorspace.h}}
\doxysubsubsection{\texorpdfstring{NAMESPACETAG}{NAMESPACETAG}}
{\footnotesize\ttfamily \#define NAMESPACETAG~"{}NMSP"{}}



Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00039}{39}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.

\Hypertarget{vectorspace_8h_aaf012fba386a5f8c0c149caa5627f7c2}\label{vectorspace_8h_aaf012fba386a5f8c0c149caa5627f7c2} 
\index{vectorspace.h@{vectorspace.h}!NAMESPACETV@{NAMESPACETV}}
\index{NAMESPACETV@{NAMESPACETV}!vectorspace.h@{vectorspace.h}}
\doxysubsubsection{\texorpdfstring{NAMESPACETV}{NAMESPACETV}}
{\footnotesize\ttfamily \#define NAMESPACETV~1347636558}



Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00040}{40}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.

\Hypertarget{vectorspace_8h_a6961330e553c390cec21939135c8c124}\label{vectorspace_8h_a6961330e553c390cec21939135c8c124} 
\index{vectorspace.h@{vectorspace.h}!pointer\_to\_vso@{pointer\_to\_vso}}
\index{pointer\_to\_vso@{pointer\_to\_vso}!vectorspace.h@{vectorspace.h}}
\doxysubsubsection{\texorpdfstring{pointer\_to\_vso}{pointer\_to\_vso}}
{\footnotesize\ttfamily \#define pointer\+\_\+to\+\_\+vso(\begin{DoxyParamCaption}\item[{}]{pointer }\end{DoxyParamCaption})~((\mbox{\hyperlink{consspaceobject_8h_aea54db22dcf0db6b94cce75bbed0fc93}{vectorpointp}}(pointer)? (struct \mbox{\hyperlink{vectorspace_8h_structvector__space__object}{vector\+\_\+space\+\_\+object}} \texorpdfstring{$\ast$}{*}) \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(pointer).payload.\+vectorp.\+address \+: (struct \mbox{\hyperlink{vectorspace_8h_structvector__space__object}{vector\+\_\+space\+\_\+object}} \texorpdfstring{$\ast$}{*}) NULL))}



given a pointer to a vector space object, return the object. 



Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00055}{55}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.

\Hypertarget{vectorspace_8h_ad64cf5c2c348785ae0e4d3b20bec9760}\label{vectorspace_8h_ad64cf5c2c348785ae0e4d3b20bec9760} 
\index{vectorspace.h@{vectorspace.h}!vectorp@{vectorp}}
\index{vectorp@{vectorp}!vectorspace.h@{vectorspace.h}}
\doxysubsubsection{\texorpdfstring{vectorp}{vectorp}}
{\footnotesize\ttfamily \#define vectorp(\begin{DoxyParamCaption}\item[{}]{conspoint }\end{DoxyParamCaption})~(\mbox{\hyperlink{consspaceobject_8c_a8670f58dc7ce45ff3f351a6023378e29}{check\+\_\+tag}}(conspoint,\mbox{\hyperlink{vectorspace_8h_ab14da2980ce3fddae8e82f412273bd11}{VECTORTV}}))}



Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00050}{50}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.

\Hypertarget{vectorspace_8h_a48380c74312e0d155fe3b00d06c676ee}\label{vectorspace_8h_a48380c74312e0d155fe3b00d06c676ee} 
\index{vectorspace.h@{vectorspace.h}!VECTORTAG@{VECTORTAG}}
\index{VECTORTAG@{VECTORTAG}!vectorspace.h@{vectorspace.h}}
\doxysubsubsection{\texorpdfstring{VECTORTAG}{VECTORTAG}}
{\footnotesize\ttfamily \#define VECTORTAG~"{}VECT"{}}



Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00047}{47}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.

\Hypertarget{vectorspace_8h_ab14da2980ce3fddae8e82f412273bd11}\label{vectorspace_8h_ab14da2980ce3fddae8e82f412273bd11} 
\index{vectorspace.h@{vectorspace.h}!VECTORTV@{VECTORTV}}
\index{VECTORTV@{VECTORTV}!vectorspace.h@{vectorspace.h}}
\doxysubsubsection{\texorpdfstring{VECTORTV}{VECTORTV}}
{\footnotesize\ttfamily \#define VECTORTV~1413694806}



Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00048}{48}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.

\Hypertarget{vectorspace_8h_a485ee00329bad53a6353657851ed6233}\label{vectorspace_8h_a485ee00329bad53a6353657851ed6233} 
\index{vectorspace.h@{vectorspace.h}!vso\_get\_vecp@{vso\_get\_vecp}}
\index{vso\_get\_vecp@{vso\_get\_vecp}!vectorspace.h@{vectorspace.h}}
\doxysubsubsection{\texorpdfstring{vso\_get\_vecp}{vso\_get\_vecp}}
{\footnotesize\ttfamily \#define vso\+\_\+get\+\_\+vecp(\begin{DoxyParamCaption}\item[{}]{vso }\end{DoxyParamCaption})~((((\mbox{\hyperlink{vectorspace_8h_structvector__space__object}{vector\+\_\+space\+\_\+object}})vso)-\/$>$header.\+vecp))}



given a vector space object, return its canonical pointer. 



Definition at line \mbox{\hyperlink{vectorspace_8h_source_l00060}{60}} of file \mbox{\hyperlink{vectorspace_8h_source}{vectorspace.\+h}}.



\doxysubsection{Function Documentation}
\Hypertarget{vectorspace_8h_a7d4b938413ff59e1e8c4e6966d86ad38}\label{vectorspace_8h_a7d4b938413ff59e1e8c4e6966d86ad38} 
\index{vectorspace.h@{vectorspace.h}!free\_vso@{free\_vso}}
\index{free\_vso@{free\_vso}!vectorspace.h@{vectorspace.h}}
\doxysubsubsection{\texorpdfstring{free\_vso()}{free\_vso()}}
{\footnotesize\ttfamily void free\+\_\+vso (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{pointer }\end{DoxyParamCaption})}



for vector space pointers, free the actual vector-\/space object. 

Dangerous! 

Definition at line \mbox{\hyperlink{vectorspace_8c_source_l00123}{123}} of file \mbox{\hyperlink{vectorspace_8c_source}{vectorspace.\+c}}.



References \mbox{\hyperlink{debug_8h_source_l00021}{DEBUG\+\_\+\+ALLOC}}, \mbox{\hyperlink{debug_8c_source_l00101}{debug\+\_\+printf()}}, \mbox{\hyperlink{intern_8c_source_l00110}{free\+\_\+hashmap()}}, \mbox{\hyperlink{stack_8c_source_l00224}{free\+\_\+stack\+\_\+frame()}}, \mbox{\hyperlink{stack_8c_source_l00053}{get\+\_\+stack\+\_\+frame()}}, \mbox{\hyperlink{vectorspace_8h_source_l00030}{HASHTV}}, \mbox{\hyperlink{vectorspace_8h_source_l00111}{vector\+\_\+space\+\_\+object\+::header}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{stack_8h_source_l00031}{STACKFRAMETV}}, and \mbox{\hyperlink{vectorspace_8h_ad427b8802abb07e6d40728768115d127}{vector\+\_\+space\+\_\+header\+::tag}}.



Referenced by \mbox{\hyperlink{conspage_8c_source_l00143}{free\+\_\+cell()}}.

\Hypertarget{vectorspace_8h_af82611898537d85117224ce5d4c5eeb5}\label{vectorspace_8h_af82611898537d85117224ce5d4c5eeb5} 
\index{vectorspace.h@{vectorspace.h}!make\_vso@{make\_vso}}
\index{make\_vso@{make\_vso}!vectorspace.h@{vectorspace.h}}
\doxysubsubsection{\texorpdfstring{make\_vso()}{make\_vso()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} make\+\_\+vso (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{tag,  }\item[{uint64\+\_\+t}]{payload\+\_\+size }\end{DoxyParamCaption})}



Allocate a vector space object with this {\ttfamily payload\+\_\+size} and {\ttfamily tag}, and return a {\ttfamily \doxylink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} which points to an object whigh points to it. 

@tag the vector-\/space tag of the particular type of vector-\/space object, NOT {\ttfamily VECTORPOINTTAG}. @payload\+\_\+size the size of the payload required, in bytes.

\begin{DoxyReturn}{Returns}
a \doxylink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer} to the object, or NIL if the object could not be allocated due to memory exhaustion. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{vectorspace_8c_source_l00075}{75}} of file \mbox{\hyperlink{vectorspace_8c_source}{vectorspace.\+c}}.



References \mbox{\hyperlink{debug_8h_source_l00021}{DEBUG\+\_\+\+ALLOC}}, \mbox{\hyperlink{debug_8c_source_l00136}{debug\+\_\+dump\+\_\+object()}}, \mbox{\hyperlink{debug_8c_source_l00041}{debug\+\_\+print()}}, \mbox{\hyperlink{debug_8c_source_l00101}{debug\+\_\+printf()}}, \mbox{\hyperlink{vectorspace_8h_source_l00111}{vector\+\_\+space\+\_\+object\+::header}}, \mbox{\hyperlink{vectorspace_8c_source_l00042}{make\+\_\+vec\+\_\+pointer()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{vectorspace_8h_a52100a8d038844c00250f5356f1b9a3f}{vector\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{vectorspace_8h_source_l00080}{vector\+\_\+space\+\_\+header\+::size}}, \mbox{\hyperlink{vectorspace_8h_ad427b8802abb07e6d40728768115d127}{vector\+\_\+space\+\_\+header\+::tag}}, and \mbox{\hyperlink{vectorspace_8h_source_l00078}{vector\+\_\+space\+\_\+header\+::vecp}}.



Referenced by \mbox{\hyperlink{stack_8c_source_l00075}{make\+\_\+empty\+\_\+frame()}}, and \mbox{\hyperlink{intern_8c_source_l00137}{make\+\_\+hashmap()}}.

