\doxysection{equal.\+c}
\hypertarget{equal_8c_source}{}\label{equal_8c_source}\index{workspace/post-\/scarcity/src/ops/equal.c@{workspace/post-\/scarcity/src/ops/equal.c}}
\mbox{\hyperlink{equal_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00001}00001\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00002}00002\ \textcolor{comment}{\ *\ equal.c}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00003}00003\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00004}00004\ \textcolor{comment}{\ *\ Checks\ for\ shallow\ and\ deep\ equality}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00005}00005\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00006}00006\ \textcolor{comment}{\ *\ (c)\ 2017\ Simon\ Brooke\ <simon@journeyman.cc>}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00007}00007\ \textcolor{comment}{\ *\ Licensed\ under\ GPL\ version\ 2.0,\ or,\ at\ your\ option,\ any\ later\ version.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00008}00008\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00009}00009\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00010}00010\ \textcolor{preprocessor}{\#include\ <math.h>}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00011}00011\ \textcolor{preprocessor}{\#include\ <stdbool.h>}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00012}00012\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00013}00013\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{conspage_8h}{memory/conspage.h}}"{}}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00014}00014\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{consspaceobject_8h}{memory/consspaceobject.h}}"{}}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00015}00015\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{integer_8h}{arith/integer.h}}"{}}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00016}00016\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{peano_8h}{arith/peano.h}}"{}}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00017}00017\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{ratio_8h}{arith/ratio.h}}"{}}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00018}00018\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{debug_8h}{debug.h}}"{}}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00019}00019\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00020}00020\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00021}00021\ \textcolor{comment}{\ *\ Shallow,\ and\ thus\ cheap,\ equality:\ true\ if\ these\ two\ objects\ are}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00022}00022\ \textcolor{comment}{\ *\ the\ same\ object,\ else\ false.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00023}00023\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00024}\mbox{\hyperlink{equal_8c_ae8c9b7a5b6a556dbb30ae27d4c776d32}{00024}}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{equal_8c_ae8c9b7a5b6a556dbb30ae27d4c776d32}{eq}}(\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ a,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ b\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00025}00025\ \ \ \ \ \textcolor{keywordflow}{return}\ (\ (\ a.\mbox{\hyperlink{consspaceobject_8h_a299de2b4ddc8d6da1dcb676a9162afe4}{page}}\ ==\ b.\mbox{\hyperlink{consspaceobject_8h_a299de2b4ddc8d6da1dcb676a9162afe4}{page}}\ )\ \&\&\ (\ a.\mbox{\hyperlink{consspaceobject_8h_a894bdfa2d603d8343f8ef01dda6fcd23}{offset}}\ ==\ b.\mbox{\hyperlink{consspaceobject_8h_a894bdfa2d603d8343f8ef01dda6fcd23}{offset}}\ )\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00026}00026\ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00027}00027\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00028}00028\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00029}00029\ \textcolor{comment}{\ *\ True\ if\ the\ objects\ at\ these\ two\ cons\ pointers\ have\ the\ same\ tag,\ else\ false.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00030}00030\ \textcolor{comment}{\ *\ @param\ a\ a\ pointer\ to\ a\ cons-\/space\ object;}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00031}00031\ \textcolor{comment}{\ *\ @param\ b\ another\ pointer\ to\ a\ cons-\/space\ object.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00032}00032\ \textcolor{comment}{\ *\ @return\ true\ if\ the\ objects\ at\ these\ two\ cons\ pointers\ have\ the\ same\ tag,}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00033}00033\ \textcolor{comment}{\ *\ else\ false.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00034}00034\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00035}\mbox{\hyperlink{equal_8c_a1ebabc8005b5fe0d8f0cb75b75b37f33}{00035}}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{equal_8c_a1ebabc8005b5fe0d8f0cb75b75b37f33}{same\_type}}(\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ a,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ b\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00036}00036\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\_a\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ a\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00037}00037\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\_b\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00038}00038\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00039}00039\ \ \ \ \ \textcolor{keywordflow}{return}\ cell\_a-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ ==\ cell\_b-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value;}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00040}00040\ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00041}00041\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00042}00042\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00043}00043\ \textcolor{comment}{\ *\ Some\ strings\ will\ be\ null\ terminated\ and\ some\ will\ be\ NIL\ terminated...\ ooops!}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00044}00044\ \textcolor{comment}{\ *\ @param\ string\ the\ string\ to\ test}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00045}00045\ \textcolor{comment}{\ *\ @return\ true\ if\ it's\ the\ end\ of\ a\ string.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00046}00046\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00047}\mbox{\hyperlink{equal_8c_a2bfd79a6460cb4842855ab943047dce1}{00047}}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{equal_8c_a2bfd79a6460cb4842855ab943047dce1}{end\_of\_string}}(\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ \textcolor{keywordtype}{string}\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00048}00048\ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ \textcolor{keywordtype}{string}\ )\ ||}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00049}00049\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ \textcolor{keywordtype}{string}\ ).\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.character\ ==\ \textcolor{charliteral}{'\(\backslash\)0'};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00050}00050\ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00051}00051\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00052}00052\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00053}00053\ \textcolor{comment}{\ *\ @brief\ compare\ two\ long\ doubles\ and\ returns\ true\ if\ they\ are\ the\ same\ to}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00054}00054\ \textcolor{comment}{\ *\ within\ a\ tolerance\ of\ one\ part\ in\ a\ billion.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00055}00055\ \textcolor{comment}{\ *\ }}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00056}00056\ \textcolor{comment}{\ *\ @param\ a\ }}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00057}00057\ \textcolor{comment}{\ *\ @param\ b\ }}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00058}00058\ \textcolor{comment}{\ *\ @return\ true\ if\ \`{}a`\ and\ \`{}b`\ are\ equal\ to\ within\ one\ part\ in\ a\ billion.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00059}00059\ \textcolor{comment}{\ *\ @return\ false\ otherwise.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00060}00060\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00061}\mbox{\hyperlink{equal_8c_a0f02ff1de9849cd640b49ed80150d8c0}{00061}}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{equal_8c_a0f02ff1de9849cd640b49ed80150d8c0}{equal\_ld\_ld}}(\ \textcolor{keywordtype}{long}\ \textcolor{keywordtype}{double}\ a,\ \textcolor{keywordtype}{long}\ \textcolor{keywordtype}{double}\ b\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00062}00062\ \ \ \ \ \textcolor{keywordtype}{long}\ \textcolor{keywordtype}{double}\ fa\ =\ fabsl(\ a\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00063}00063\ \ \ \ \ \textcolor{keywordtype}{long}\ \textcolor{keywordtype}{double}\ fb\ =\ fabsl(\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00064}00064\ \ \ \ \ \textcolor{comment}{/*\ difference\ of\ magnitudes\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00065}00065\ \ \ \ \ \textcolor{keywordtype}{long}\ \textcolor{keywordtype}{double}\ diff\ =\ fabsl(\ fa\ -\/\ fb\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00066}00066\ \ \ \ \ \textcolor{comment}{/*\ average\ magnitude\ of\ the\ two\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00067}00067\ \ \ \ \ \textcolor{keywordtype}{long}\ \textcolor{keywordtype}{double}\ av\ =\ (\ fa\ >\ fb\ )\ ?\ (\ fa\ -\/\ diff\ )\ :\ (\ fb\ -\/\ diff\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00068}00068\ \ \ \ \ \textcolor{comment}{/*\ amount\ of\ difference\ we\ will\ tolerate\ for\ equality\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00069}00069\ \ \ \ \ \textcolor{keywordtype}{long}\ \textcolor{keywordtype}{double}\ tolerance\ =\ av\ *\ 0.000000001;}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00070}00070\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00071}00071\ \ \ \ \ \textcolor{keywordtype}{bool}\ result\ =\ (\ fabsl(\ a\ -\/\ b\ )\ <\ tolerance\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00072}00072\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00073}00073\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}},\ L\textcolor{stringliteral}{"{}\(\backslash\)nequal\_ld\_ld\ returning\ \%d\(\backslash\)n"{}},\ result\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00074}00074\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00075}00075\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00076}00076\ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00077}00077\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00078}00078\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00079}00079\ \textcolor{comment}{\ *\ @brief\ Private\ function,\ don't\ use.\ It\ depends\ on\ its\ arguments\ being\ }}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00080}00080\ \textcolor{comment}{\ *\ numbers\ and\ doesn't\ sanity\ check\ them.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00081}00081\ \textcolor{comment}{\ *\ }}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00082}00082\ \textcolor{comment}{\ *\ @param\ a\ a\ lisp\ integer\ -\/-\/\ if\ it\ isn't\ an\ integer,\ things\ will\ break.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00083}00083\ \textcolor{comment}{\ *\ @param\ b\ a\ lisp\ real\ -\/-\/\ if\ it\ isn't\ a\ real,\ things\ will\ break.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00084}00084\ \textcolor{comment}{\ *\ @return\ true\ if\ the\ two\ numbers\ have\ equal\ value.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00085}00085\ \textcolor{comment}{\ *\ @return\ false\ if\ they\ don't.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00086}00086\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00087}\mbox{\hyperlink{integer_8h_a24e33b5a4598eee932af379418e8c02b}{00087}}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{equal_8c_a24e33b5a4598eee932af379418e8c02b}{equal\_integer\_real}}(\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ a,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ b\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00088}00088\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}\(\backslash\)nequal\_integer\_real:\ "{}},\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00089}00089\ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ a,\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00090}00090\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}\ =\ "{}},\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00091}00091\ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ b,\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00092}00092\ \ \ \ \ \textcolor{keywordtype}{bool}\ result\ =\ \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00093}00093\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\_a\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ a\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00094}00094\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\_b\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00095}00095\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00096}00096\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_a758a42bfac22caaf66e29c666c91702d}{nilp}}(\ cell\_a-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.integer.more\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00097}00097\ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00098}00098\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{equal_8c_a0f02ff1de9849cd640b49ed80150d8c0}{equal\_ld\_ld}}(\ (\ \textcolor{keywordtype}{long}\ \textcolor{keywordtype}{double}\ )\ cell\_a-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.integer.value,}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00099}00099\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell\_b-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.real.value\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00100}00100\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00101}00101\ \ \ \ \ \ \ \ \ fwprintf(\ stderr,}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00102}00102\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\textcolor{stringliteral}{"{}\(\backslash\)nequality\ is\ not\ yet\ implemented\ for\ bignums\ compared\ to\ reals."{}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00103}00103\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00104}00104\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00105}00105\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}},\ L\textcolor{stringliteral}{"{}\(\backslash\)nequal\_integer\_real\ returning\ \%d\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00106}00106\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00107}00107\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00108}00108\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00109}00109\ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00110}00110\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00111}00111\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00112}00112\ \textcolor{comment}{\ *\ @brief\ Private\ function,\ don't\ use.\ It\ depends\ on\ its\ arguments\ being\ }}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00113}00113\ \textcolor{comment}{\ *\ numbers\ and\ doesn't\ sanity\ check\ them.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00114}00114\ \textcolor{comment}{\ *\ }}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00115}00115\ \textcolor{comment}{\ *\ @param\ a\ a\ lisp\ integer\ -\/-\/\ if\ it\ isn't\ an\ integer,\ things\ will\ break.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00116}00116\ \textcolor{comment}{\ *\ @param\ b\ a\ lisp\ number.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00117}00117\ \textcolor{comment}{\ *\ @return\ true\ if\ the\ two\ numbers\ have\ equal\ value.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00118}00118\ \textcolor{comment}{\ *\ @return\ false\ if\ they\ don't.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00119}00119\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00120}\mbox{\hyperlink{equal_8c_a1699b8cdf3ac99b09ee8e7d5062e960c}{00120}}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{equal_8c_a1699b8cdf3ac99b09ee8e7d5062e960c}{equal\_integer\_number}}(\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ a,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ b\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00121}00121\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}\(\backslash\)nequal\_integer\_number:\ "{}},\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00122}00122\ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ a,\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00123}00123\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}\ =\ "{}},\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00124}00124\ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ b,\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00125}00125\ \ \ \ \ \textcolor{keywordtype}{bool}\ result\ =\ \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00126}00126\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\_b\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00127}00127\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00128}00128\ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ cell\_b-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00129}00129\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a4e0e4ea1576f98a0094f57bf918ded96}{INTEGERTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00130}00130\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{integer_8c_a10c7e3258f3c46d3271301a7092fc52e}{equal\_integer\_integer}}(\ a,\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00131}00131\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00132}00132\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a964051b1bf348dbf06440df0a37bcde4}{REALTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00133}00133\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{equal_8c_a24e33b5a4598eee932af379418e8c02b}{equal\_integer\_real}}(\ a,\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00134}00134\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00135}00135\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a63bde20c8b029f5ac3ffd93b36dfddc9}{RATIOTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00136}00136\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00137}00137\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00138}00138\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00139}00139\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00140}00140\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}},\ L\textcolor{stringliteral}{"{}\(\backslash\)nequal\_integer\_number\ returning\ \%d\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00141}00141\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00142}00142\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00143}00143\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00144}00144\ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00145}00145\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00146}00146\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00147}00147\ \textcolor{comment}{\ *\ @brief\ Private\ function,\ don't\ use.\ It\ depends\ on\ its\ arguments\ being\ }}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00148}00148\ \textcolor{comment}{\ *\ numbers\ and\ doesn't\ sanity\ check\ them.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00149}00149\ \textcolor{comment}{\ *\ }}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00150}00150\ \textcolor{comment}{\ *\ @param\ a\ a\ lisp\ real\ -\/-\/\ if\ it\ isn't\ an\ real,\ things\ will\ break.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00151}00151\ \textcolor{comment}{\ *\ @param\ b\ a\ lisp\ number.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00152}00152\ \textcolor{comment}{\ *\ @return\ true\ if\ the\ two\ numbers\ have\ equal\ value.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00153}00153\ \textcolor{comment}{\ *\ @return\ false\ if\ they\ don't.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00154}00154\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00155}\mbox{\hyperlink{equal_8c_a3732eeade772be6ea934dd0f5ecded69}{00155}}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{equal_8c_a3732eeade772be6ea934dd0f5ecded69}{equal\_real\_number}}(\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ a,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ b\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00156}00156\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}\(\backslash\)nequal\_real\_number:\ "{}},\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00157}00157\ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ a,\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00158}00158\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}\ =\ "{}},\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00159}00159\ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ b,\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00160}00160\ \ \ \ \ \textcolor{keywordtype}{bool}\ result\ =\ \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00161}00161\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\_b\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00162}00162\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00163}00163\ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ cell\_b-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00164}00164\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a4e0e4ea1576f98a0094f57bf918ded96}{INTEGERTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00165}00165\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{equal_8c_a24e33b5a4598eee932af379418e8c02b}{equal\_integer\_real}}(\ b,\ a\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00166}00166\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00167}00167\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a964051b1bf348dbf06440df0a37bcde4}{REALTV}}:\{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00168}00168\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\_a\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ a\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00169}00169\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00170}00170\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{equal_8c_a0f02ff1de9849cd640b49ed80150d8c0}{equal\_ld\_ld}}(\ cell\_a-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.real.value,}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00171}00171\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell\_b-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.real.value\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00172}00172\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00173}00173\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00174}00174\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a63bde20c8b029f5ac3ffd93b36dfddc9}{RATIOTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00175}00175\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\_a\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ a\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00176}00176\ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00177}00177\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{equal_8c_a0f02ff1de9849cd640b49ed80150d8c0}{equal\_ld\_ld}}(\ \mbox{\hyperlink{ratio_8c_a0fe47053f1b1b94101748d354c1a76be}{c\_ratio\_to\_ld}}(\ b\ ),\ cell\_a-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.real.value\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00178}00178\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00179}00179\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00180}00180\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00181}00181\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}},\ L\textcolor{stringliteral}{"{}\(\backslash\)nequal\_real\_number\ returning\ \%d\(\backslash\)n"{}},\ result\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00182}00182\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00183}00183\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00184}00184\ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00185}00185\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00186}00186\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00187}00187\ \textcolor{comment}{\ *\ @brief\ Private\ function,\ don't\ use.\ It\ depends\ on\ its\ arguments\ being\ }}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00188}00188\ \textcolor{comment}{\ *\ numbers\ and\ doesn't\ sanity\ check\ them.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00189}00189\ \textcolor{comment}{\ *\ }}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00190}00190\ \textcolor{comment}{\ *\ @param\ a\ a\ number}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00191}00191\ \textcolor{comment}{\ *\ @param\ b\ a\ number}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00192}00192\ \textcolor{comment}{\ *\ @return\ true\ if\ the\ two\ numbers\ have\ equal\ value.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00193}00193\ \textcolor{comment}{\ *\ @return\ false\ if\ they\ don't.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00194}00194\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00195}\mbox{\hyperlink{equal_8c_a19b531038d2c2376c58f825c36e03d1f}{00195}}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{equal_8c_a19b531038d2c2376c58f825c36e03d1f}{equal\_number\_number}}(\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ a,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ b\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00196}00196\ \ \ \ \ \textcolor{keywordtype}{bool}\ result\ =\ \mbox{\hyperlink{equal_8c_ae8c9b7a5b6a556dbb30ae27d4c776d32}{eq}}(\ a,\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00197}00197\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00198}00198\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}\(\backslash\)nequal\_number\_number:\ "{}},\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00199}00199\ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ a,\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00200}00200\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}\ =\ "{}},\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00201}00201\ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ b,\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00202}00202\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00203}00203\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ !result\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00204}00204\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\_a\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ a\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00205}00205\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\_b\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00206}00206\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00207}00207\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ cell\_a-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00208}00208\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a4e0e4ea1576f98a0094f57bf918ded96}{INTEGERTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00209}00209\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{equal_8c_a1699b8cdf3ac99b09ee8e7d5062e960c}{equal\_integer\_number}}(\ a,\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00210}00210\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00211}00211\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a964051b1bf348dbf06440df0a37bcde4}{REALTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00212}00212\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{equal_8c_a3732eeade772be6ea934dd0f5ecded69}{equal\_real\_number}}(\ a,\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00213}00213\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00214}00214\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a63bde20c8b029f5ac3ffd93b36dfddc9}{RATIOTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00215}00215\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ cell\_b-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00216}00216\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a4e0e4ea1576f98a0094f57bf918ded96}{INTEGERTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00217}00217\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ as\ all\ ratios\ are\ simplified\ by\ make\_ratio,\ any}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00218}00218\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ ratio\ that\ would\ simplify\ to\ an\ integer\ is\ an}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00219}00219\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ integer,\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00220}00220\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00221}00221\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00222}00222\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a964051b1bf348dbf06440df0a37bcde4}{REALTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00223}00223\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{equal_8c_a3732eeade772be6ea934dd0f5ecded69}{equal\_real\_number}}(\ b,\ a\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00224}00224\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00225}00225\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a63bde20c8b029f5ac3ffd93b36dfddc9}{RATIOTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00226}00226\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{ratio_8c_a63c0888d86fd97b087a259dd507b618c}{equal\_ratio\_ratio}}(\ a,\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00227}00227\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00228}00228\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ can't\ throw\ an\ exception\ from\ here,\ but\ non-\/numbers}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00229}00229\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ shouldn't\ have\ been\ passed\ in\ anyway,\ so\ no\ default.\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00230}00230\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00231}00231\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00232}00232\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ can't\ throw\ an\ exception\ from\ here,\ but\ non-\/numbers}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00233}00233\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ shouldn't\ have\ been\ passed\ in\ anyway,\ so\ no\ default.\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00234}00234\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00235}00235\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00236}00236\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00237}00237\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}},\ L\textcolor{stringliteral}{"{}\(\backslash\)nequal\_number\_number\ returning\ \%d\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00238}00238\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00239}00239\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00240}00240\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00241}00241\ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00242}00242\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00243}00243\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00244}00244\ \textcolor{comment}{\ *\ Deep,\ and\ thus\ expensive,\ equality:\ true\ if\ these\ two\ objects\ have}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00245}00245\ \textcolor{comment}{\ *\ identical\ structure,\ else\ false.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00246}00246\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00247}\mbox{\hyperlink{equal_8c_a8b86c32fe89b8039c060b6bf9f455870}{00247}}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{equal_8c_a8b86c32fe89b8039c060b6bf9f455870}{equal}}(\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ a,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\_pointer}}\ b\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00248}00248\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}\(\backslash\)nequal:\ "{}},\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00249}00249\ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ a,\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00250}00250\ \ \ \ \ \mbox{\hyperlink{debug_8c_ad55e4f61e076944d705d98b5314c5181}{debug\_print}}(\ L\textcolor{stringliteral}{"{}\ =\ "{}},\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00251}00251\ \ \ \ \ \mbox{\hyperlink{debug_8c_ada2d4646201b5827137d0bf053fcac59}{debug\_print\_object}}(\ b,\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}}\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00252}00252\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00253}00253\ \ \ \ \ \textcolor{keywordtype}{bool}\ result\ =\ \mbox{\hyperlink{equal_8c_ae8c9b7a5b6a556dbb30ae27d4c776d32}{eq}}(\ a,\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00254}00254\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00255}00255\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ !result\ \&\&\ \mbox{\hyperlink{equal_8c_a1ebabc8005b5fe0d8f0cb75b75b37f33}{same\_type}}(\ a,\ b\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00256}00256\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\_a\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ a\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00257}00257\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{consspaceobject_8h_structcons__space__object}{cons\_space\_object}}\ *cell\_b\ =\ \&\mbox{\hyperlink{consspaceobject_8h_af31e1da9438d7ae4410864ecc901b131}{pointer2cell}}(\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00258}00258\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00259}00259\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ cell\_a-\/>\mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{tag}}.value\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00260}00260\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a6a5f5b042aa23509409e0fd00a91ac2e}{CONSTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00261}00261\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_ad4ddcddc7db74650f23a33d0e970db30}{LAMBDATV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00262}00262\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a7f953a7cdd4f2ce5eab1738da32536b3}{NLAMBDATV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00263}00263\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ TODO:\ it\ is\ not\ OK\ to\ do\ this\ on\ the\ stack\ since\ list-\/like\ }}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00264}00264\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ structures\ can\ be\ of\ indefinite\ extent.\ It\ *must*\ be\ done\ by\ }}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00265}00265\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ iteration\ (and\ even\ that\ is\ problematic)\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00266}00266\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00267}00267\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{equal_8c_a8b86c32fe89b8039c060b6bf9f455870}{equal}}(\ cell\_a-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.cons.car,\ cell\_b-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.cons.car\ )}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00268}00268\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \&\&\ \mbox{\hyperlink{equal_8c_a8b86c32fe89b8039c060b6bf9f455870}{equal}}(\ cell\_a-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.cons.cdr,}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00269}00269\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell\_b-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.cons.cdr\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00270}00270\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00271}00271\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a027cdb41b87676d9d2fb55dd058c0078}{KEYTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00272}00272\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a3a4310cf1909a3b9c167a945ef71d3e1}{STRINGTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00273}00273\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a1cef10aef0e023839dbcfe6d5c305393}{SYMBOLTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00274}00274\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ slightly\ complex\ because\ a\ string\ may\ or\ may\ not\ have\ a\ '\(\backslash\)0'}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00275}00275\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ cell\ at\ the\ end,\ but\ I'll\ ignore\ that\ for\ now.\ I\ think\ in}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00276}00276\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ practice\ only\ the\ empty\ string\ will.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00277}00277\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00278}00278\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ TODO:\ it\ is\ not\ OK\ to\ do\ this\ on\ the\ stack\ since\ list-\/like\ }}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00279}00279\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ structures\ can\ be\ of\ indefinite\ extent.\ It\ *must*\ be\ done\ by\ }}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00280}00280\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ iteration\ (and\ even\ that\ is\ problematic)\ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00281}00281\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00282}00282\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell\_a-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.hash\ ==\ cell\_b-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.hash}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00283}00283\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \&\&\ cell\_a-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.character\ ==}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00284}00284\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell\_b-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.character}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00285}00285\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \&\&}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00286}00286\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ \mbox{\hyperlink{equal_8c_a8b86c32fe89b8039c060b6bf9f455870}{equal}}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00287}00287\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ cell\_a-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.cdr,}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00288}00288\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell\_b-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.cdr\ )}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00289}00289\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ (\ \mbox{\hyperlink{equal_8c_a2bfd79a6460cb4842855ab943047dce1}{end\_of\_string}}(\ cell\_a-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.cdr\ )}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00290}00290\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \&\&\ \mbox{\hyperlink{equal_8c_a2bfd79a6460cb4842855ab943047dce1}{end\_of\_string}}(\ cell\_b-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.string.cdr\ )\ )\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00291}00291\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00292}00292\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a4e0e4ea1576f98a0094f57bf918ded96}{INTEGERTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00293}00293\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00294}00294\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\ cell\_a-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.integer.value\ ==}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00295}00295\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell\_b-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.integer.value\ )\ \&\&}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00296}00296\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{equal_8c_a8b86c32fe89b8039c060b6bf9f455870}{equal}}(\ cell\_a-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.integer.more,}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00297}00297\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cell\_b-\/>\mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{payload}}.integer.more\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00298}00298\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00299}00299\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a63bde20c8b029f5ac3ffd93b36dfddc9}{RATIOTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00300}00300\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{ratio_8c_a63c0888d86fd97b087a259dd507b618c}{equal\_ratio\_ratio}}(\ a,\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00301}00301\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00302}00302\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \mbox{\hyperlink{consspaceobject_8h_a964051b1bf348dbf06440df0a37bcde4}{REALTV}}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00303}00303\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00304}00304\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ num\_a\ =\ \mbox{\hyperlink{peano_8c_ac3f5af65c887eed123b7be986ae92766}{to\_long\_double}}(\ a\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00305}00305\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ num\_b\ =\ \mbox{\hyperlink{peano_8c_ac3f5af65c887eed123b7be986ae92766}{to\_long\_double}}(\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00306}00306\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ max\ =\ fabs(\ num\_a\ )\ >\ fabs(\ num\_b\ )}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00307}00307\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ?\ fabs(\ num\_a\ )}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00308}00308\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ fabs(\ num\_b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00309}00309\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00310}00310\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00311}00311\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ not\ more\ different\ than\ one\ part\ in\ a\ million\ -\/\ close\ enough}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00312}00312\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00313}00313\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ fabs(\ num\_a\ -\/\ num\_b\ )\ <\ (\ max\ /\ 1000000.0\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00314}00314\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00315}00315\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00316}00316\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00317}00317\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ =\ \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00318}00318\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00319}00319\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00320}00320\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{consspaceobject_8h_afda644903a80d4a9fa0923dc51370863}{numberp}}(\ a\ )\ \&\&\ \mbox{\hyperlink{consspaceobject_8h_afda644903a80d4a9fa0923dc51370863}{numberp}}(\ b\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00321}00321\ \ \ \ \ \ \ \ \ result\ =\ \mbox{\hyperlink{equal_8c_a19b531038d2c2376c58f825c36e03d1f}{equal\_number\_number}}(\ a,\ b\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00322}00322\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00323}00323\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00324}00324\ \ \ \ \ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00325}00325\ \textcolor{comment}{\ \ \ \ \ *\ there's\ only\ supposed\ ever\ to\ be\ one\ T\ and\ one\ NIL\ cell,\ so\ each}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00326}00326\ \textcolor{comment}{\ \ \ \ \ *\ should\ be\ caught\ by\ eq;\ equality\ of\ vector-\/space\ objects\ is\ a\ whole}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00327}00327\ \textcolor{comment}{\ \ \ \ \ *\ other\ ball\ game\ so\ we\ won't\ deal\ with\ it\ now\ (and\ indeed\ may\ never).}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00328}00328\ \textcolor{comment}{\ \ \ \ \ *\ I'm\ not\ certain\ what\ equality\ means\ for\ read\ and\ write\ streams,\ so}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00329}00329\ \textcolor{comment}{\ \ \ \ \ *\ I'll\ ignore\ them,\ too,\ for\ now.}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00330}00330\ \textcolor{comment}{\ \ \ \ \ */}}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00331}00331\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00332}00332\ \ \ \ \ \mbox{\hyperlink{debug_8c_aa335b357cde1ba7eb6e8a71955079aab}{debug\_printf}}(\ \mbox{\hyperlink{debug_8h_a31067039d5f8f06bec3f2f94af168ed5}{DEBUG\_ARITH}},\ L\textcolor{stringliteral}{"{}\(\backslash\)nequal\ returning\ \%d\(\backslash\)n"{}},\ result\ );}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00333}00333\ }
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00334}00334\ \ \ \ \ \textcolor{keywordflow}{return}\ result;}
\DoxyCodeLine{\Hypertarget{equal_8c_source_l00335}00335\ \}}

\end{DoxyCode}
