\doxysection{dtoa.\+c}
\label{dtoa_8c_source}\index{src/libsphinxbase/util/dtoa.c@{src/libsphinxbase/util/dtoa.c}}

\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{comment}{/****************************************************************}}
\DoxyCodeLine{00002\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00003\ \textcolor{comment}{\ *\ The\ author\ of\ this\ software\ is\ David\ M.\ Gay.}}
\DoxyCodeLine{00004\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00005\ \textcolor{comment}{\ *\ Copyright\ (c)\ 1991,\ 2000,\ 2001\ by\ Lucent\ Technologies.}}
\DoxyCodeLine{00006\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00007\ \textcolor{comment}{\ *\ Permission\ to\ use,\ copy,\ modify,\ and\ distribute\ this\ software\ for\ any}}
\DoxyCodeLine{00008\ \textcolor{comment}{\ *\ purpose\ without\ fee\ is\ hereby\ granted,\ provided\ that\ this\ entire\ notice}}
\DoxyCodeLine{00009\ \textcolor{comment}{\ *\ is\ included\ in\ all\ copies\ of\ any\ software\ which\ is\ or\ includes\ a\ copy}}
\DoxyCodeLine{00010\ \textcolor{comment}{\ *\ or\ modification\ of\ this\ software\ and\ in\ all\ copies\ of\ the\ supporting}}
\DoxyCodeLine{00011\ \textcolor{comment}{\ *\ documentation\ for\ such\ software.}}
\DoxyCodeLine{00012\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00013\ \textcolor{comment}{\ *\ THIS\ SOFTWARE\ IS\ BEING\ PROVIDED\ "{}AS\ IS"{},\ WITHOUT\ ANY\ EXPRESS\ OR\ IMPLIED}}
\DoxyCodeLine{00014\ \textcolor{comment}{\ *\ WARRANTY.\ \ IN\ PARTICULAR,\ NEITHER\ THE\ AUTHOR\ NOR\ LUCENT\ MAKES\ ANY}}
\DoxyCodeLine{00015\ \textcolor{comment}{\ *\ REPRESENTATION\ OR\ WARRANTY\ OF\ ANY\ KIND\ CONCERNING\ THE\ MERCHANTABILITY}}
\DoxyCodeLine{00016\ \textcolor{comment}{\ *\ OF\ THIS\ SOFTWARE\ OR\ ITS\ FITNESS\ FOR\ ANY\ PARTICULAR\ PURPOSE.}}
\DoxyCodeLine{00017\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00018\ \textcolor{comment}{\ ***************************************************************/}}
\DoxyCodeLine{00019\ }
\DoxyCodeLine{00020\ \textcolor{comment}{/*\ Please\ send\ bug\ reports\ to\ David\ M.\ Gay\ (dmg\ at\ acm\ dot\ org,}}
\DoxyCodeLine{00021\ \textcolor{comment}{\ *\ with\ "{}\ at\ "{}\ changed\ at\ "{}@"{}\ and\ "{}\ dot\ "{}\ changed\ to\ "{}."{}).\ \ \ \ \ \ */}}
\DoxyCodeLine{00022\ }
\DoxyCodeLine{00023\ \textcolor{comment}{/*\ On\ a\ machine\ with\ IEEE\ extended-\/precision\ registers,\ it\ is}}
\DoxyCodeLine{00024\ \textcolor{comment}{\ *\ necessary\ to\ specify\ double-\/precision\ (53-\/bit)\ rounding\ precision}}
\DoxyCodeLine{00025\ \textcolor{comment}{\ *\ before\ invoking\ strtod\ or\ dtoa.\ \ If\ the\ machine\ uses\ (the\ equivalent}}
\DoxyCodeLine{00026\ \textcolor{comment}{\ *\ of)\ Intel\ 80x87\ arithmetic,\ the\ call}}
\DoxyCodeLine{00027\ \textcolor{comment}{\ *\ \ \ \ \ \ \_control87(PC\_53,\ MCW\_PC);}}
\DoxyCodeLine{00028\ \textcolor{comment}{\ *\ does\ this\ with\ many\ compilers.\ \ Whether\ this\ or\ another\ call\ is}}
\DoxyCodeLine{00029\ \textcolor{comment}{\ *\ appropriate\ depends\ on\ the\ compiler;\ for\ this\ to\ work,\ it\ may\ be}}
\DoxyCodeLine{00030\ \textcolor{comment}{\ *\ necessary\ to\ \#include\ "{}float.h"{}\ or\ another\ system-\/dependent\ header}}
\DoxyCodeLine{00031\ \textcolor{comment}{\ *\ file.}}
\DoxyCodeLine{00032\ \textcolor{comment}{\ */}}
\DoxyCodeLine{00033\ }
\DoxyCodeLine{00034\ \textcolor{comment}{/*\ strtod\ for\ IEEE-\/,\ VAX-\/,\ and\ IBM-\/arithmetic\ machines.}}
\DoxyCodeLine{00035\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00036\ \textcolor{comment}{\ *\ This\ strtod\ returns\ a\ nearest\ machine\ number\ to\ the\ input\ decimal}}
\DoxyCodeLine{00037\ \textcolor{comment}{\ *\ string\ (or\ sets\ errno\ to\ ERANGE).\ \ With\ IEEE\ arithmetic,\ ties\ are}}
\DoxyCodeLine{00038\ \textcolor{comment}{\ *\ broken\ by\ the\ IEEE\ round-\/even\ rule.\ \ Otherwise\ ties\ are\ broken\ by}}
\DoxyCodeLine{00039\ \textcolor{comment}{\ *\ biased\ rounding\ (add\ half\ and\ chop).}}
\DoxyCodeLine{00040\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00041\ \textcolor{comment}{\ *\ Inspired\ loosely\ by\ William\ D.\ Clinger's\ paper\ "{}How\ to\ Read\ Floating}}
\DoxyCodeLine{00042\ \textcolor{comment}{\ *\ Point\ Numbers\ Accurately"{}\ [Proc.\ ACM\ SIGPLAN\ '90,\ pp.\ 92-\/101].}}
\DoxyCodeLine{00043\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00044\ \textcolor{comment}{\ *\ Modifications:}}
\DoxyCodeLine{00045\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00046\ \textcolor{comment}{\ *\ \ \ \ \ \ 1.\ We\ only\ require\ IEEE,\ IBM,\ or\ VAX\ double-\/precision}}
\DoxyCodeLine{00047\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ \ \ \ \ arithmetic\ (not\ IEEE\ double-\/extended).}}
\DoxyCodeLine{00048\ \textcolor{comment}{\ *\ \ \ \ \ \ 2.\ We\ get\ by\ with\ floating-\/point\ arithmetic\ in\ a\ case\ that}}
\DoxyCodeLine{00049\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ \ \ \ \ Clinger\ missed\ -\/-\/\ when\ we're\ computing\ d\ *\ 10\string^n}}
\DoxyCodeLine{00050\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ \ \ \ \ for\ a\ small\ integer\ d\ and\ the\ integer\ n\ is\ not\ too}}
\DoxyCodeLine{00051\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ \ \ \ \ much\ larger\ than\ 22\ (the\ maximum\ integer\ k\ for\ which}}
\DoxyCodeLine{00052\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ \ \ \ \ we\ can\ represent\ 10\string^k\ exactly),\ we\ may\ be\ able\ to}}
\DoxyCodeLine{00053\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ \ \ \ \ compute\ (d*10\string^k)\ *\ 10\string^(e-\/k)\ with\ just\ one\ roundoff.}}
\DoxyCodeLine{00054\ \textcolor{comment}{\ *\ \ \ \ \ \ 3.\ Rather\ than\ a\ bit-\/at-\/a-\/time\ adjustment\ of\ the\ binary}}
\DoxyCodeLine{00055\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ \ \ \ \ result\ in\ the\ hard\ case,\ we\ use\ floating-\/point}}
\DoxyCodeLine{00056\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ \ \ \ \ arithmetic\ to\ determine\ the\ adjustment\ to\ within}}
\DoxyCodeLine{00057\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ \ \ \ \ one\ bit;\ only\ in\ really\ hard\ cases\ do\ we\ need\ to}}
\DoxyCodeLine{00058\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ \ \ \ \ compute\ a\ second\ residual.}}
\DoxyCodeLine{00059\ \textcolor{comment}{\ *\ \ \ \ \ \ 4.\ Because\ of\ 3.,\ we\ don't\ need\ a\ large\ table\ of\ powers\ of\ 10}}
\DoxyCodeLine{00060\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ \ \ \ \ for\ ten-\/to-\/e\ (just\ some\ small\ tables,\ e.g.\ of\ 10\string^k}}
\DoxyCodeLine{00061\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ \ \ \ \ for\ 0\ <=\ k\ <=\ 22).}}
\DoxyCodeLine{00062\ \textcolor{comment}{\ */}}
\DoxyCodeLine{00063\ }
\DoxyCodeLine{00064\ \textcolor{comment}{/*}}
\DoxyCodeLine{00065\ \textcolor{comment}{\ *\ This\ file\ has\ been\ modified\ to\ remove\ dtoa()\ and\ all}}
\DoxyCodeLine{00066\ \textcolor{comment}{\ *\ non-\/reentrancy.\ \ This\ makes\ it\ slower,\ but\ it\ also\ makes\ life\ a\ lot}}
\DoxyCodeLine{00067\ \textcolor{comment}{\ *\ easier\ on\ Windows\ and\ other\ platforms\ without\ static\ lock}}
\DoxyCodeLine{00068\ \textcolor{comment}{\ *\ initializers\ (grumble).}}
\DoxyCodeLine{00069\ \textcolor{comment}{\ */}}
\DoxyCodeLine{00070\ }
\DoxyCodeLine{00071\ \textcolor{comment}{/*\ Added\ by\ dhuggins@cs.cmu.edu\ to\ use\ autoconf\ results.\ */}}
\DoxyCodeLine{00072\ \textcolor{comment}{/*\ We\ do\ not\ care\ about\ the\ VAX.\ */}}
\DoxyCodeLine{00073\ \textcolor{preprocessor}{\#include\ "{}config.h"{}}}
\DoxyCodeLine{00074\ \textcolor{preprocessor}{\#ifdef\ WORDS\_BIGENDIAN}}
\DoxyCodeLine{00075\ \textcolor{preprocessor}{\#define\ IEEE\_MC68k}}
\DoxyCodeLine{00076\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00077\ \textcolor{preprocessor}{\#define\ IEEE\_8087}}
\DoxyCodeLine{00078\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00079\ \textcolor{preprocessor}{\#ifndef\ HAVE\_LONG\_LONG}}
\DoxyCodeLine{00080\ \textcolor{preprocessor}{\#define\ NO\_LONG\_LONG}}
\DoxyCodeLine{00081\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00082\ \textcolor{preprocessor}{\#define\ Omit\_Private\_Memory}}
\DoxyCodeLine{00083\ \textcolor{preprocessor}{\#include\ "{}sphinxbase/ckd\_alloc.h"{}}}
\DoxyCodeLine{00084\ \textcolor{preprocessor}{\#undef\ USE\_LOCALE}}
\DoxyCodeLine{00085\ }
\DoxyCodeLine{00086\ \textcolor{comment}{/*\ Correct\ totally\ bogus\ typedefs\ in\ this\ code.\ */}}
\DoxyCodeLine{00087\ \textcolor{preprocessor}{\#include\ "{}sphinxbase/prim\_type.h"{}}}
\DoxyCodeLine{00088\ \textcolor{preprocessor}{\#define\ Long\ int32\ \ \ }\textcolor{comment}{/*\ ZOMG\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{00089\ \textcolor{preprocessor}{\#define\ ULong\ uint32\ }\textcolor{comment}{/*\ WTF\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{00090\ }
\DoxyCodeLine{00091\ \textcolor{comment}{/*}}
\DoxyCodeLine{00092\ \textcolor{comment}{\ *\ \#define\ IEEE\_8087\ for\ IEEE-\/arithmetic\ machines\ where\ the\ least}}
\DoxyCodeLine{00093\ \textcolor{comment}{\ *\ \ \ \ \ \ significant\ byte\ has\ the\ lowest\ address.}}
\DoxyCodeLine{00094\ \textcolor{comment}{\ *\ \#define\ IEEE\_MC68k\ for\ IEEE-\/arithmetic\ machines\ where\ the\ most}}
\DoxyCodeLine{00095\ \textcolor{comment}{\ *\ \ \ \ \ \ significant\ byte\ has\ the\ lowest\ address.}}
\DoxyCodeLine{00096\ \textcolor{comment}{\ *\ \#define\ Long\ int\ on\ machines\ with\ 32-\/bit\ ints\ and\ 64-\/bit\ longs.}}
\DoxyCodeLine{00097\ \textcolor{comment}{\ *\ \#define\ IBM\ for\ IBM\ mainframe-\/style\ floating-\/point\ arithmetic.}}
\DoxyCodeLine{00098\ \textcolor{comment}{\ *\ \#define\ VAX\ for\ VAX-\/style\ floating-\/point\ arithmetic\ (D\_floating).}}
\DoxyCodeLine{00099\ \textcolor{comment}{\ *\ \#define\ No\_leftright\ to\ omit\ left-\/right\ logic\ in\ fast\ floating-\/point}}
\DoxyCodeLine{00100\ \textcolor{comment}{\ *\ \ \ \ \ \ computation\ of\ dtoa.}}
\DoxyCodeLine{00101\ \textcolor{comment}{\ *\ \#define\ Honor\_FLT\_ROUNDS\ if\ FLT\_ROUNDS\ can\ assume\ the\ values\ 2\ or\ 3}}
\DoxyCodeLine{00102\ \textcolor{comment}{\ *\ \ \ \ \ \ and\ strtod\ and\ dtoa\ should\ round\ accordingly.}}
\DoxyCodeLine{00103\ \textcolor{comment}{\ *\ \#define\ Check\_FLT\_ROUNDS\ if\ FLT\_ROUNDS\ can\ assume\ the\ values\ 2\ or\ 3}}
\DoxyCodeLine{00104\ \textcolor{comment}{\ *\ \ \ \ \ \ and\ Honor\_FLT\_ROUNDS\ is\ not\ \#defined.}}
\DoxyCodeLine{00105\ \textcolor{comment}{\ *\ \#define\ RND\_PRODQUOT\ to\ use\ rnd\_prod\ and\ rnd\_quot\ (assembly\ routines}}
\DoxyCodeLine{00106\ \textcolor{comment}{\ *\ \ \ \ \ \ that\ use\ extended-\/precision\ instructions\ to\ compute\ rounded}}
\DoxyCodeLine{00107\ \textcolor{comment}{\ *\ \ \ \ \ \ products\ and\ quotients)\ with\ IBM.}}
\DoxyCodeLine{00108\ \textcolor{comment}{\ *\ \#define\ ROUND\_BIASED\ for\ IEEE-\/format\ with\ biased\ rounding.}}
\DoxyCodeLine{00109\ \textcolor{comment}{\ *\ \#define\ Inaccurate\_Divide\ for\ IEEE-\/format\ with\ correctly\ rounded}}
\DoxyCodeLine{00110\ \textcolor{comment}{\ *\ \ \ \ \ \ products\ but\ inaccurate\ quotients,\ e.g.,\ for\ Intel\ i860.}}
\DoxyCodeLine{00111\ \textcolor{comment}{\ *\ \#define\ NO\_LONG\_LONG\ on\ machines\ that\ do\ not\ have\ a\ "{}long\ long"{}}}
\DoxyCodeLine{00112\ \textcolor{comment}{\ *\ \ \ \ \ \ integer\ type\ (of\ >=\ 64\ bits).\ \ On\ such\ machines,\ you\ can}}
\DoxyCodeLine{00113\ \textcolor{comment}{\ *\ \ \ \ \ \ \#define\ Just\_16\ to\ store\ 16\ bits\ per\ 32-\/bit\ Long\ when\ doing}}
\DoxyCodeLine{00114\ \textcolor{comment}{\ *\ \ \ \ \ \ high-\/precision\ integer\ arithmetic.\ \ Whether\ this\ speeds\ things}}
\DoxyCodeLine{00115\ \textcolor{comment}{\ *\ \ \ \ \ \ up\ or\ slows\ things\ down\ depends\ on\ the\ machine\ and\ the\ number}}
\DoxyCodeLine{00116\ \textcolor{comment}{\ *\ \ \ \ \ \ being\ converted.\ \ If\ long\ long\ is\ available\ and\ the\ name\ is}}
\DoxyCodeLine{00117\ \textcolor{comment}{\ *\ \ \ \ \ \ something\ other\ than\ "{}long\ long"{},\ \#define\ Llong\ to\ be\ the\ name,}}
\DoxyCodeLine{00118\ \textcolor{comment}{\ *\ \ \ \ \ \ and\ if\ "{}unsigned\ Llong"{}\ does\ not\ work\ as\ an\ unsigned\ version\ of}}
\DoxyCodeLine{00119\ \textcolor{comment}{\ *\ \ \ \ \ \ Llong,\ \#define\ \#ULLong\ to\ be\ the\ corresponding\ unsigned\ type.}}
\DoxyCodeLine{00120\ \textcolor{comment}{\ *\ \#define\ KR\_headers\ for\ old-\/style\ C\ function\ headers.}}
\DoxyCodeLine{00121\ \textcolor{comment}{\ *\ \#define\ Bad\_float\_h\ if\ your\ system\ lacks\ a\ float.h\ or\ if\ it\ does\ not}}
\DoxyCodeLine{00122\ \textcolor{comment}{\ *\ \ \ \ \ \ define\ some\ or\ all\ of\ DBL\_DIG,\ DBL\_MAX\_10\_EXP,\ DBL\_MAX\_EXP,}}
\DoxyCodeLine{00123\ \textcolor{comment}{\ *\ \ \ \ \ \ FLT\_RADIX,\ FLT\_ROUNDS,\ and\ DBL\_MAX.}}
\DoxyCodeLine{00124\ \textcolor{comment}{\ *\ \#define\ MALLOC\ your\_malloc,\ where\ your\_malloc(n)\ acts\ like\ malloc(n)}}
\DoxyCodeLine{00125\ \textcolor{comment}{\ *\ \ \ \ \ \ if\ memory\ is\ available\ and\ otherwise\ does\ something\ you\ deem}}
\DoxyCodeLine{00126\ \textcolor{comment}{\ *\ \ \ \ \ \ appropriate.\ \ If\ MALLOC\ is\ undefined,\ malloc\ will\ be\ invoked}}
\DoxyCodeLine{00127\ \textcolor{comment}{\ *\ \ \ \ \ \ directly\ -\/-\/\ and\ assumed\ always\ to\ succeed.}}
\DoxyCodeLine{00128\ \textcolor{comment}{\ *\ \#define\ Omit\_Private\_Memory\ to\ omit\ logic\ (added\ Jan.\ 1998)\ for\ making}}
\DoxyCodeLine{00129\ \textcolor{comment}{\ *\ \ \ \ \ \ memory\ allocations\ from\ a\ private\ pool\ of\ memory\ when\ possible.}}
\DoxyCodeLine{00130\ \textcolor{comment}{\ *\ \ \ \ \ \ When\ used,\ the\ private\ pool\ is\ PRIVATE\_MEM\ bytes\ long:\ \ 2304\ bytes,}}
\DoxyCodeLine{00131\ \textcolor{comment}{\ *\ \ \ \ \ \ unless\ \#defined\ to\ be\ a\ different\ length.\ \ This\ default\ length}}
\DoxyCodeLine{00132\ \textcolor{comment}{\ *\ \ \ \ \ \ suffices\ to\ get\ rid\ of\ MALLOC\ calls\ except\ for\ unusual\ cases,}}
\DoxyCodeLine{00133\ \textcolor{comment}{\ *\ \ \ \ \ \ such\ as\ decimal-\/to-\/binary\ conversion\ of\ a\ very\ long\ string\ of}}
\DoxyCodeLine{00134\ \textcolor{comment}{\ *\ \ \ \ \ \ digits.\ \ The\ longest\ string\ dtoa\ can\ return\ is\ about\ 751\ bytes}}
\DoxyCodeLine{00135\ \textcolor{comment}{\ *\ \ \ \ \ \ long.\ \ For\ conversions\ by\ strtod\ of\ strings\ of\ 800\ digits\ and}}
\DoxyCodeLine{00136\ \textcolor{comment}{\ *\ \ \ \ \ \ all\ dtoa\ conversions\ in\ single-\/threaded\ executions\ with\ 8-\/byte}}
\DoxyCodeLine{00137\ \textcolor{comment}{\ *\ \ \ \ \ \ pointers,\ PRIVATE\_MEM\ >=\ 7400\ appears\ to\ suffice;\ with\ 4-\/byte}}
\DoxyCodeLine{00138\ \textcolor{comment}{\ *\ \ \ \ \ \ pointers,\ PRIVATE\_MEM\ >=\ 7112\ appears\ adequate.}}
\DoxyCodeLine{00139\ \textcolor{comment}{\ *\ \#define\ NO\_INFNAN\_CHECK\ if\ you\ do\ not\ wish\ to\ have\ INFNAN\_CHECK}}
\DoxyCodeLine{00140\ \textcolor{comment}{\ *\ \ \ \ \ \ \#defined\ automatically\ on\ IEEE\ systems.\ \ On\ such\ systems,}}
\DoxyCodeLine{00141\ \textcolor{comment}{\ *\ \ \ \ \ \ when\ INFNAN\_CHECK\ is\ \#defined,\ strtod\ checks}}
\DoxyCodeLine{00142\ \textcolor{comment}{\ *\ \ \ \ \ \ for\ Infinity\ and\ NaN\ (case\ insensitively).\ \ On\ some\ systems}}
\DoxyCodeLine{00143\ \textcolor{comment}{\ *\ \ \ \ \ \ (e.g.,\ some\ HP\ systems),\ it\ may\ be\ necessary\ to\ \#define\ NAN\_WORD0}}
\DoxyCodeLine{00144\ \textcolor{comment}{\ *\ \ \ \ \ \ appropriately\ -\/-\/\ to\ the\ most\ significant\ word\ of\ a\ quiet\ NaN.}}
\DoxyCodeLine{00145\ \textcolor{comment}{\ *\ \ \ \ \ \ (On\ HP\ Series\ 700/800\ machines,\ -\/DNAN\_WORD0=0x7ff40000\ works.)}}
\DoxyCodeLine{00146\ \textcolor{comment}{\ *\ \ \ \ \ \ When\ INFNAN\_CHECK\ is\ \#defined\ and\ No\_Hex\_NaN\ is\ not\ \#defined,}}
\DoxyCodeLine{00147\ \textcolor{comment}{\ *\ \ \ \ \ \ strtod\ also\ accepts\ (case\ insensitively)\ strings\ of\ the\ form}}
\DoxyCodeLine{00148\ \textcolor{comment}{\ *\ \ \ \ \ \ NaN(x),\ where\ x\ is\ a\ string\ of\ hexadecimal\ digits\ and\ spaces;}}
\DoxyCodeLine{00149\ \textcolor{comment}{\ *\ \ \ \ \ \ if\ there\ is\ only\ one\ string\ of\ hexadecimal\ digits,\ it\ is\ taken}}
\DoxyCodeLine{00150\ \textcolor{comment}{\ *\ \ \ \ \ \ for\ the\ 52\ fraction\ bits\ of\ the\ resulting\ NaN;\ if\ there\ are\ two}}
\DoxyCodeLine{00151\ \textcolor{comment}{\ *\ \ \ \ \ \ or\ more\ strings\ of\ hex\ digits,\ the\ first\ is\ for\ the\ high\ 20\ bits,}}
\DoxyCodeLine{00152\ \textcolor{comment}{\ *\ \ \ \ \ \ the\ second\ and\ subsequent\ for\ the\ low\ 32\ bits,\ with\ intervening}}
\DoxyCodeLine{00153\ \textcolor{comment}{\ *\ \ \ \ \ \ white\ space\ ignored;\ but\ if\ this\ results\ in\ none\ of\ the\ 52}}
\DoxyCodeLine{00154\ \textcolor{comment}{\ *\ \ \ \ \ \ fraction\ bits\ being\ on\ (an\ IEEE\ Infinity\ symbol),\ then\ NAN\_WORD0}}
\DoxyCodeLine{00155\ \textcolor{comment}{\ *\ \ \ \ \ \ and\ NAN\_WORD1\ are\ used\ instead.}}
\DoxyCodeLine{00156\ \textcolor{comment}{\ *\ \#define\ MULTIPLE\_THREADS\ if\ the\ system\ offers\ preemptively\ scheduled}}
\DoxyCodeLine{00157\ \textcolor{comment}{\ *\ \ \ \ \ \ multiple\ threads.\ \ In\ this\ case,\ you\ must\ provide\ (or\ suitably}}
\DoxyCodeLine{00158\ \textcolor{comment}{\ *\ \ \ \ \ \ \#define)\ two\ locks,\ acquired\ by\ ACQUIRE\_DTOA\_LOCK(n)\ and\ freed}}
\DoxyCodeLine{00159\ \textcolor{comment}{\ *\ \ \ \ \ \ by\ FREE\_DTOA\_LOCK(n)\ for\ n\ =\ 0\ or\ 1.\ \ (The\ second\ lock,\ accessed}}
\DoxyCodeLine{00160\ \textcolor{comment}{\ *\ \ \ \ \ \ in\ pow5mult,\ ensures\ lazy\ evaluation\ of\ only\ one\ copy\ of\ high}}
\DoxyCodeLine{00161\ \textcolor{comment}{\ *\ \ \ \ \ \ powers\ of\ 5;\ omitting\ this\ lock\ would\ introduce\ a\ small}}
\DoxyCodeLine{00162\ \textcolor{comment}{\ *\ \ \ \ \ \ probability\ of\ wasting\ memory,\ but\ would\ otherwise\ be\ harmless.)}}
\DoxyCodeLine{00163\ \textcolor{comment}{\ *\ \ \ \ \ \ You\ must\ also\ invoke\ freedtoa(s)\ to\ free\ the\ value\ s\ returned\ by}}
\DoxyCodeLine{00164\ \textcolor{comment}{\ *\ \ \ \ \ \ dtoa.\ \ You\ may\ do\ so\ whether\ or\ not\ MULTIPLE\_THREADS\ is\ \#defined.}}
\DoxyCodeLine{00165\ \textcolor{comment}{\ *\ \#define\ NO\_IEEE\_Scale\ to\ disable\ new\ (Feb.\ 1997)\ logic\ in\ strtod\ that}}
\DoxyCodeLine{00166\ \textcolor{comment}{\ *\ \ \ \ \ \ avoids\ underflows\ on\ inputs\ whose\ result\ does\ not\ underflow.}}
\DoxyCodeLine{00167\ \textcolor{comment}{\ *\ \ \ \ \ \ If\ you\ \#define\ NO\_IEEE\_Scale\ on\ a\ machine\ that\ uses\ IEEE-\/format}}
\DoxyCodeLine{00168\ \textcolor{comment}{\ *\ \ \ \ \ \ floating-\/point\ numbers\ and\ flushes\ underflows\ to\ zero\ rather}}
\DoxyCodeLine{00169\ \textcolor{comment}{\ *\ \ \ \ \ \ than\ implementing\ gradual\ underflow,\ then\ you\ must\ also\ \#define}}
\DoxyCodeLine{00170\ \textcolor{comment}{\ *\ \ \ \ \ \ Sudden\_Underflow.}}
\DoxyCodeLine{00171\ \textcolor{comment}{\ *\ \#define\ YES\_ALIAS\ to\ permit\ aliasing\ certain\ double\ values\ with}}
\DoxyCodeLine{00172\ \textcolor{comment}{\ *\ \ \ \ \ \ arrays\ of\ ULongs.\ \ This\ leads\ to\ slightly\ better\ code\ with}}
\DoxyCodeLine{00173\ \textcolor{comment}{\ *\ \ \ \ \ \ some\ compilers\ and\ was\ always\ used\ prior\ to\ 19990916,\ but\ it}}
\DoxyCodeLine{00174\ \textcolor{comment}{\ *\ \ \ \ \ \ is\ not\ strictly\ legal\ and\ can\ cause\ trouble\ with\ aggressively}}
\DoxyCodeLine{00175\ \textcolor{comment}{\ *\ \ \ \ \ \ optimizing\ compilers\ (e.g.,\ gcc\ 2.95.1\ under\ -\/O2).}}
\DoxyCodeLine{00176\ \textcolor{comment}{\ *\ \#define\ USE\_LOCALE\ to\ use\ the\ current\ locale's\ decimal\_point\ value.}}
\DoxyCodeLine{00177\ \textcolor{comment}{\ *\ \#define\ SET\_INEXACT\ if\ IEEE\ arithmetic\ is\ being\ used\ and\ extra}}
\DoxyCodeLine{00178\ \textcolor{comment}{\ *\ \ \ \ \ \ computation\ should\ be\ done\ to\ set\ the\ inexact\ flag\ when\ the}}
\DoxyCodeLine{00179\ \textcolor{comment}{\ *\ \ \ \ \ \ result\ is\ inexact\ and\ avoid\ setting\ inexact\ when\ the\ result}}
\DoxyCodeLine{00180\ \textcolor{comment}{\ *\ \ \ \ \ \ is\ exact.\ \ In\ this\ case,\ dtoa.c\ must\ be\ compiled\ in}}
\DoxyCodeLine{00181\ \textcolor{comment}{\ *\ \ \ \ \ \ an\ environment,\ perhaps\ provided\ by\ \#include\ "{}dtoa.c"{}\ in\ a}}
\DoxyCodeLine{00182\ \textcolor{comment}{\ *\ \ \ \ \ \ suitable\ wrapper,\ that\ defines\ two\ functions,}}
\DoxyCodeLine{00183\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ \ \ \ \ int\ get\_inexact(void);}}
\DoxyCodeLine{00184\ \textcolor{comment}{\ *\ \ \ \ \ \ \ \ \ \ \ \ \ \ void\ clear\_inexact(void);}}
\DoxyCodeLine{00185\ \textcolor{comment}{\ *\ \ \ \ \ \ such\ that\ get\_inexact()\ returns\ a\ nonzero\ value\ if\ the}}
\DoxyCodeLine{00186\ \textcolor{comment}{\ *\ \ \ \ \ \ inexact\ bit\ is\ already\ set,\ and\ clear\_inexact()\ sets\ the}}
\DoxyCodeLine{00187\ \textcolor{comment}{\ *\ \ \ \ \ \ inexact\ bit\ to\ 0.\ \ When\ SET\_INEXACT\ is\ \#defined,\ strtod}}
\DoxyCodeLine{00188\ \textcolor{comment}{\ *\ \ \ \ \ \ also\ does\ extra\ computations\ to\ set\ the\ underflow\ and\ overflow}}
\DoxyCodeLine{00189\ \textcolor{comment}{\ *\ \ \ \ \ \ flags\ when\ appropriate\ (i.e.,\ when\ the\ result\ is\ tiny\ and}}
\DoxyCodeLine{00190\ \textcolor{comment}{\ *\ \ \ \ \ \ inexact\ or\ when\ it\ is\ a\ numeric\ value\ rounded\ to\ +-\/infinity).}}
\DoxyCodeLine{00191\ \textcolor{comment}{\ *\ \#define\ NO\_ERRNO\ if\ strtod\ should\ not\ assign\ errno\ =\ ERANGE\ when}}
\DoxyCodeLine{00192\ \textcolor{comment}{\ *\ \ \ \ \ \ the\ result\ overflows\ to\ +-\/Infinity\ or\ underflows\ to\ 0.}}
\DoxyCodeLine{00193\ \textcolor{comment}{\ */}}
\DoxyCodeLine{00194\ }
\DoxyCodeLine{00195\ \textcolor{preprocessor}{\#ifndef\ Long}}
\DoxyCodeLine{00196\ \textcolor{preprocessor}{\#define\ Long\ long}}
\DoxyCodeLine{00197\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00198\ \textcolor{preprocessor}{\#ifndef\ ULong}}
\DoxyCodeLine{00199\ \textcolor{keyword}{typedef}\ \textcolor{keywordtype}{unsigned}\ Long\ ULong;}
\DoxyCodeLine{00200\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00201\ }
\DoxyCodeLine{00202\ \textcolor{preprocessor}{\#ifdef\ DEBUG}}
\DoxyCodeLine{00203\ \textcolor{preprocessor}{\#include\ "{}stdio.h"{}}}
\DoxyCodeLine{00204\ \textcolor{preprocessor}{\#define\ Bug(x)\ \{fprintf(stderr,\ "{}\%s\(\backslash\)n"{},\ x);\ exit(1);\}}}
\DoxyCodeLine{00205\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00206\ }
\DoxyCodeLine{00207\ \textcolor{preprocessor}{\#include\ "{}stdlib.h"{}}}
\DoxyCodeLine{00208\ \textcolor{preprocessor}{\#include\ "{}string.h"{}}}
\DoxyCodeLine{00209\ }
\DoxyCodeLine{00210\ \textcolor{preprocessor}{\#ifdef\ USE\_LOCALE}}
\DoxyCodeLine{00211\ \textcolor{preprocessor}{\#include\ "{}locale.h"{}}}
\DoxyCodeLine{00212\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00213\ }
\DoxyCodeLine{00214\ \textcolor{comment}{/*\ Private\ memory\ and\ other\ non-\/reentrant\ stuff\ removed.\ */}}
\DoxyCodeLine{00215\ }
\DoxyCodeLine{00216\ \textcolor{preprocessor}{\#undef\ IEEE\_Arith}}
\DoxyCodeLine{00217\ \textcolor{preprocessor}{\#undef\ Avoid\_Underflow}}
\DoxyCodeLine{00218\ \textcolor{preprocessor}{\#ifdef\ IEEE\_MC68k}}
\DoxyCodeLine{00219\ \textcolor{preprocessor}{\#define\ IEEE\_Arith}}
\DoxyCodeLine{00220\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00221\ \textcolor{preprocessor}{\#ifdef\ IEEE\_8087}}
\DoxyCodeLine{00222\ \textcolor{preprocessor}{\#define\ IEEE\_Arith}}
\DoxyCodeLine{00223\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00224\ }
\DoxyCodeLine{00225\ \textcolor{preprocessor}{\#ifdef\ IEEE\_Arith}}
\DoxyCodeLine{00226\ \textcolor{preprocessor}{\#ifndef\ NO\_INFNAN\_CHECK}}
\DoxyCodeLine{00227\ \textcolor{preprocessor}{\#undef\ INFNAN\_CHECK}}
\DoxyCodeLine{00228\ \textcolor{preprocessor}{\#define\ INFNAN\_CHECK}}
\DoxyCodeLine{00229\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00230\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00231\ \textcolor{preprocessor}{\#undef\ INFNAN\_CHECK}}
\DoxyCodeLine{00232\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00233\ }
\DoxyCodeLine{00234\ \textcolor{preprocessor}{\#include\ "{}errno.h"{}}}
\DoxyCodeLine{00235\ }
\DoxyCodeLine{00236\ \textcolor{preprocessor}{\#ifdef\ Bad\_float\_h}}
\DoxyCodeLine{00237\ }
\DoxyCodeLine{00238\ \textcolor{preprocessor}{\#ifdef\ IEEE\_Arith}}
\DoxyCodeLine{00239\ \textcolor{preprocessor}{\#define\ DBL\_DIG\ 15}}
\DoxyCodeLine{00240\ \textcolor{preprocessor}{\#define\ DBL\_MAX\_10\_EXP\ 308}}
\DoxyCodeLine{00241\ \textcolor{preprocessor}{\#define\ DBL\_MAX\_EXP\ 1024}}
\DoxyCodeLine{00242\ \textcolor{preprocessor}{\#define\ FLT\_RADIX\ 2}}
\DoxyCodeLine{00243\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*IEEE\_Arith*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{00244\ }
\DoxyCodeLine{00245\ \textcolor{preprocessor}{\#ifdef\ IBM}}
\DoxyCodeLine{00246\ \textcolor{preprocessor}{\#define\ DBL\_DIG\ 16}}
\DoxyCodeLine{00247\ \textcolor{preprocessor}{\#define\ DBL\_MAX\_10\_EXP\ 75}}
\DoxyCodeLine{00248\ \textcolor{preprocessor}{\#define\ DBL\_MAX\_EXP\ 63}}
\DoxyCodeLine{00249\ \textcolor{preprocessor}{\#define\ FLT\_RADIX\ 16}}
\DoxyCodeLine{00250\ \textcolor{preprocessor}{\#define\ DBL\_MAX\ 7.2370055773322621e+75}}
\DoxyCodeLine{00251\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00252\ }
\DoxyCodeLine{00253\ \textcolor{preprocessor}{\#ifdef\ VAX}}
\DoxyCodeLine{00254\ \textcolor{preprocessor}{\#define\ DBL\_DIG\ 16}}
\DoxyCodeLine{00255\ \textcolor{preprocessor}{\#define\ DBL\_MAX\_10\_EXP\ 38}}
\DoxyCodeLine{00256\ \textcolor{preprocessor}{\#define\ DBL\_MAX\_EXP\ 127}}
\DoxyCodeLine{00257\ \textcolor{preprocessor}{\#define\ FLT\_RADIX\ 2}}
\DoxyCodeLine{00258\ \textcolor{preprocessor}{\#define\ DBL\_MAX\ 1.7014118346046923e+38}}
\DoxyCodeLine{00259\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00260\ }
\DoxyCodeLine{00261\ \textcolor{preprocessor}{\#ifndef\ LONG\_MAX}}
\DoxyCodeLine{00262\ \textcolor{preprocessor}{\#define\ LONG\_MAX\ 2147483647}}
\DoxyCodeLine{00263\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00264\ }
\DoxyCodeLine{00265\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{/*\ ifndef\ Bad\_float\_h\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{00266\ \textcolor{preprocessor}{\#include\ "{}float.h"{}}}
\DoxyCodeLine{00267\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*\ Bad\_float\_h\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{00268\ }
\DoxyCodeLine{00269\ \textcolor{preprocessor}{\#ifndef\ \_\_MATH\_H\_\_}}
\DoxyCodeLine{00270\ \textcolor{preprocessor}{\#include\ "{}math.h"{}}}
\DoxyCodeLine{00271\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00272\ }
\DoxyCodeLine{00273\ \textcolor{preprocessor}{\#ifdef\ \_\_cplusplus}}
\DoxyCodeLine{00274\ \textcolor{keyword}{extern}\ \textcolor{stringliteral}{"{}C"{}}\ \{}
\DoxyCodeLine{00275\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00276\ }
\DoxyCodeLine{00277\ \textcolor{preprocessor}{\#ifndef\ CONST}}
\DoxyCodeLine{00278\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{00279\ \textcolor{preprocessor}{\#define\ CONST\ }\textcolor{comment}{/*\ blank\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{00280\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00281\ \textcolor{preprocessor}{\#define\ CONST\ const}}
\DoxyCodeLine{00282\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00283\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00284\ }
\DoxyCodeLine{00285\ }
\DoxyCodeLine{00286\ \textcolor{preprocessor}{\#if\ defined(IEEE\_8087)\ +\ defined(IEEE\_MC68k)\ +\ defined(VAX)\ +\ defined(IBM)\ !=\ 1}}
\DoxyCodeLine{00287\ Exactly\ one\ of\ IEEE\_8087,\ IEEE\_MC68k,\ VAX,\ or\ IBM\ should\ be\ defined.}
\DoxyCodeLine{00288\ \#endif}
\DoxyCodeLine{00289\ }
\DoxyCodeLine{00291\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{union\ }\{\ \textcolor{keywordtype}{double}\ d;\ ULong\ L[2];\ \}\ U;}
\DoxyCodeLine{00292\ }
\DoxyCodeLine{00293\ \textcolor{preprocessor}{\#ifdef\ YES\_ALIAS}}
\DoxyCodeLine{00294\ \textcolor{preprocessor}{\#define\ dval(x)\ x}}
\DoxyCodeLine{00295\ \textcolor{preprocessor}{\#ifdef\ IEEE\_8087}}
\DoxyCodeLine{00296\ \textcolor{preprocessor}{\#define\ word0(x)\ ((ULong\ *)\&x)[1]}}
\DoxyCodeLine{00297\ \textcolor{preprocessor}{\#define\ word1(x)\ ((ULong\ *)\&x)[0]}}
\DoxyCodeLine{00298\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00299\ \textcolor{preprocessor}{\#define\ word0(x)\ ((ULong\ *)\&x)[0]}}
\DoxyCodeLine{00300\ \textcolor{preprocessor}{\#define\ word1(x)\ ((ULong\ *)\&x)[1]}}
\DoxyCodeLine{00301\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00302\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00303\ \textcolor{preprocessor}{\#ifdef\ IEEE\_8087}}
\DoxyCodeLine{00304\ \textcolor{preprocessor}{\#define\ word0(x)\ ((U*)\&x)-\/>L[1]}}
\DoxyCodeLine{00305\ \textcolor{preprocessor}{\#define\ word1(x)\ ((U*)\&x)-\/>L[0]}}
\DoxyCodeLine{00306\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00307\ \textcolor{preprocessor}{\#define\ word0(x)\ ((U*)\&x)-\/>L[0]}}
\DoxyCodeLine{00308\ \textcolor{preprocessor}{\#define\ word1(x)\ ((U*)\&x)-\/>L[1]}}
\DoxyCodeLine{00309\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00310\ \textcolor{preprocessor}{\#define\ dval(x)\ ((U*)\&x)-\/>d}}
\DoxyCodeLine{00311\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00312\ }
\DoxyCodeLine{00313\ \textcolor{comment}{/*\ The\ following\ definition\ of\ Storeinc\ is\ appropriate\ for\ MIPS\ processors.}}
\DoxyCodeLine{00314\ \textcolor{comment}{\ *\ An\ alternative\ that\ might\ be\ better\ on\ some\ machines\ is}}
\DoxyCodeLine{00315\ \textcolor{comment}{\ *\ \#define\ Storeinc(a,b,c)\ (*a++\ =\ b\ <<\ 16\ |\ c\ \&\ 0xffff)}}
\DoxyCodeLine{00316\ \textcolor{comment}{\ */}}
\DoxyCodeLine{00317\ \textcolor{preprocessor}{\#if\ defined(IEEE\_8087)\ +\ defined(VAX)}}
\DoxyCodeLine{00318\ \textcolor{preprocessor}{\#define\ Storeinc(a,b,c)\ (((unsigned\ short\ *)a)[1]\ =\ (unsigned\ short)b,\ \(\backslash\)}}
\DoxyCodeLine{00319\ \textcolor{preprocessor}{((unsigned\ short\ *)a)[0]\ =\ (unsigned\ short)c,\ a++)}}
\DoxyCodeLine{00320\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00321\ \textcolor{preprocessor}{\#define\ Storeinc(a,b,c)\ (((unsigned\ short\ *)a)[0]\ =\ (unsigned\ short)b,\ \(\backslash\)}}
\DoxyCodeLine{00322\ \textcolor{preprocessor}{((unsigned\ short\ *)a)[1]\ =\ (unsigned\ short)c,\ a++)}}
\DoxyCodeLine{00323\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00324\ }
\DoxyCodeLine{00325\ \textcolor{comment}{/*\ \#define\ P\ DBL\_MANT\_DIG\ */}}
\DoxyCodeLine{00326\ \textcolor{comment}{/*\ Ten\_pmax\ =\ floor(P*log(2)/log(5))\ */}}
\DoxyCodeLine{00327\ \textcolor{comment}{/*\ Bletch\ =\ (highest\ power\ of\ 2\ <\ DBL\_MAX\_10\_EXP)\ /\ 16\ */}}
\DoxyCodeLine{00328\ \textcolor{comment}{/*\ Quick\_max\ =\ floor((P-\/1)*log(FLT\_RADIX)/log(10)\ -\/\ 1)\ */}}
\DoxyCodeLine{00329\ \textcolor{comment}{/*\ Int\_max\ =\ floor(P*log(FLT\_RADIX)/log(10)\ -\/\ 1)\ */}}
\DoxyCodeLine{00330\ }
\DoxyCodeLine{00331\ \textcolor{preprocessor}{\#ifdef\ IEEE\_Arith}}
\DoxyCodeLine{00332\ \textcolor{preprocessor}{\#define\ Exp\_shift\ \ 20}}
\DoxyCodeLine{00333\ \textcolor{preprocessor}{\#define\ Exp\_shift1\ 20}}
\DoxyCodeLine{00334\ \textcolor{preprocessor}{\#define\ Exp\_msk1\ \ \ \ 0x100000}}
\DoxyCodeLine{00335\ \textcolor{preprocessor}{\#define\ Exp\_msk11\ \ \ 0x100000}}
\DoxyCodeLine{00336\ \textcolor{preprocessor}{\#define\ Exp\_mask\ \ 0x7ff00000}}
\DoxyCodeLine{00337\ \textcolor{preprocessor}{\#define\ P\ 53}}
\DoxyCodeLine{00338\ \textcolor{preprocessor}{\#define\ Bias\ 1023}}
\DoxyCodeLine{00339\ \textcolor{preprocessor}{\#define\ Emin\ (-\/1022)}}
\DoxyCodeLine{00340\ \textcolor{preprocessor}{\#define\ Exp\_1\ \ 0x3ff00000}}
\DoxyCodeLine{00341\ \textcolor{preprocessor}{\#define\ Exp\_11\ 0x3ff00000}}
\DoxyCodeLine{00342\ \textcolor{preprocessor}{\#define\ Ebits\ 11}}
\DoxyCodeLine{00343\ \textcolor{preprocessor}{\#define\ Frac\_mask\ \ 0xfffff}}
\DoxyCodeLine{00344\ \textcolor{preprocessor}{\#define\ Frac\_mask1\ 0xfffff}}
\DoxyCodeLine{00345\ \textcolor{preprocessor}{\#define\ Ten\_pmax\ 22}}
\DoxyCodeLine{00346\ \textcolor{preprocessor}{\#define\ Bletch\ 0x10}}
\DoxyCodeLine{00347\ \textcolor{preprocessor}{\#define\ Bndry\_mask\ \ 0xfffff}}
\DoxyCodeLine{00348\ \textcolor{preprocessor}{\#define\ Bndry\_mask1\ 0xfffff}}
\DoxyCodeLine{00349\ \textcolor{preprocessor}{\#define\ LSB\ 1}}
\DoxyCodeLine{00350\ \textcolor{preprocessor}{\#define\ Sign\_bit\ 0x80000000}}
\DoxyCodeLine{00351\ \textcolor{preprocessor}{\#define\ Log2P\ 1}}
\DoxyCodeLine{00352\ \textcolor{preprocessor}{\#define\ Tiny0\ 0}}
\DoxyCodeLine{00353\ \textcolor{preprocessor}{\#define\ Tiny1\ 1}}
\DoxyCodeLine{00354\ \textcolor{preprocessor}{\#define\ Quick\_max\ 14}}
\DoxyCodeLine{00355\ \textcolor{preprocessor}{\#define\ Int\_max\ 14}}
\DoxyCodeLine{00356\ \textcolor{preprocessor}{\#ifndef\ NO\_IEEE\_Scale}}
\DoxyCodeLine{00357\ \textcolor{preprocessor}{\#define\ Avoid\_Underflow}}
\DoxyCodeLine{00358\ \textcolor{preprocessor}{\#ifdef\ Flush\_Denorm\ \ \ \ \ }\textcolor{comment}{/*\ debugging\ option\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{00359\ \textcolor{preprocessor}{\#undef\ Sudden\_Underflow}}
\DoxyCodeLine{00360\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00361\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00362\ }
\DoxyCodeLine{00363\ \textcolor{preprocessor}{\#ifndef\ Flt\_Rounds}}
\DoxyCodeLine{00364\ \textcolor{preprocessor}{\#ifdef\ FLT\_ROUNDS}}
\DoxyCodeLine{00365\ \textcolor{preprocessor}{\#define\ Flt\_Rounds\ FLT\_ROUNDS}}
\DoxyCodeLine{00366\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00367\ \textcolor{preprocessor}{\#define\ Flt\_Rounds\ 1}}
\DoxyCodeLine{00368\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00369\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*Flt\_Rounds*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{00370\ }
\DoxyCodeLine{00371\ \textcolor{preprocessor}{\#ifdef\ Honor\_FLT\_ROUNDS}}
\DoxyCodeLine{00372\ \textcolor{preprocessor}{\#define\ Rounding\ rounding}}
\DoxyCodeLine{00373\ \textcolor{preprocessor}{\#undef\ Check\_FLT\_ROUNDS}}
\DoxyCodeLine{00374\ \textcolor{preprocessor}{\#define\ Check\_FLT\_ROUNDS}}
\DoxyCodeLine{00375\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00376\ \textcolor{preprocessor}{\#define\ Rounding\ Flt\_Rounds}}
\DoxyCodeLine{00377\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00378\ }
\DoxyCodeLine{00379\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{/*\ ifndef\ IEEE\_Arith\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{00380\ \textcolor{preprocessor}{\#undef\ Check\_FLT\_ROUNDS}}
\DoxyCodeLine{00381\ \textcolor{preprocessor}{\#undef\ Honor\_FLT\_ROUNDS}}
\DoxyCodeLine{00382\ \textcolor{preprocessor}{\#undef\ SET\_INEXACT}}
\DoxyCodeLine{00383\ \textcolor{preprocessor}{\#undef\ \ Sudden\_Underflow}}
\DoxyCodeLine{00384\ \textcolor{preprocessor}{\#define\ Sudden\_Underflow}}
\DoxyCodeLine{00385\ \textcolor{preprocessor}{\#ifdef\ IBM}}
\DoxyCodeLine{00386\ \textcolor{preprocessor}{\#undef\ Flt\_Rounds}}
\DoxyCodeLine{00387\ \textcolor{preprocessor}{\#define\ Flt\_Rounds\ 0}}
\DoxyCodeLine{00388\ \textcolor{preprocessor}{\#define\ Exp\_shift\ \ 24}}
\DoxyCodeLine{00389\ \textcolor{preprocessor}{\#define\ Exp\_shift1\ 24}}
\DoxyCodeLine{00390\ \textcolor{preprocessor}{\#define\ Exp\_msk1\ \ \ 0x1000000}}
\DoxyCodeLine{00391\ \textcolor{preprocessor}{\#define\ Exp\_msk11\ \ 0x1000000}}
\DoxyCodeLine{00392\ \textcolor{preprocessor}{\#define\ Exp\_mask\ \ 0x7f000000}}
\DoxyCodeLine{00393\ \textcolor{preprocessor}{\#define\ P\ 14}}
\DoxyCodeLine{00394\ \textcolor{preprocessor}{\#define\ Bias\ 65}}
\DoxyCodeLine{00395\ \textcolor{preprocessor}{\#define\ Exp\_1\ \ 0x41000000}}
\DoxyCodeLine{00396\ \textcolor{preprocessor}{\#define\ Exp\_11\ 0x41000000}}
\DoxyCodeLine{00397\ \textcolor{preprocessor}{\#define\ Ebits\ 8\ }\textcolor{comment}{/*\ exponent\ has\ 7\ bits,\ but\ 8\ is\ the\ right\ value\ in\ b2d\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{00398\ \textcolor{preprocessor}{\#define\ Frac\_mask\ \ 0xffffff}}
\DoxyCodeLine{00399\ \textcolor{preprocessor}{\#define\ Frac\_mask1\ 0xffffff}}
\DoxyCodeLine{00400\ \textcolor{preprocessor}{\#define\ Bletch\ 4}}
\DoxyCodeLine{00401\ \textcolor{preprocessor}{\#define\ Ten\_pmax\ 22}}
\DoxyCodeLine{00402\ \textcolor{preprocessor}{\#define\ Bndry\_mask\ \ 0xefffff}}
\DoxyCodeLine{00403\ \textcolor{preprocessor}{\#define\ Bndry\_mask1\ 0xffffff}}
\DoxyCodeLine{00404\ \textcolor{preprocessor}{\#define\ LSB\ 1}}
\DoxyCodeLine{00405\ \textcolor{preprocessor}{\#define\ Sign\_bit\ 0x80000000}}
\DoxyCodeLine{00406\ \textcolor{preprocessor}{\#define\ Log2P\ 4}}
\DoxyCodeLine{00407\ \textcolor{preprocessor}{\#define\ Tiny0\ 0x100000}}
\DoxyCodeLine{00408\ \textcolor{preprocessor}{\#define\ Tiny1\ 0}}
\DoxyCodeLine{00409\ \textcolor{preprocessor}{\#define\ Quick\_max\ 14}}
\DoxyCodeLine{00410\ \textcolor{preprocessor}{\#define\ Int\_max\ 15}}
\DoxyCodeLine{00411\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{/*\ VAX\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{00412\ \textcolor{preprocessor}{\#undef\ Flt\_Rounds}}
\DoxyCodeLine{00413\ \textcolor{preprocessor}{\#define\ Flt\_Rounds\ 1}}
\DoxyCodeLine{00414\ \textcolor{preprocessor}{\#define\ Exp\_shift\ \ 23}}
\DoxyCodeLine{00415\ \textcolor{preprocessor}{\#define\ Exp\_shift1\ 7}}
\DoxyCodeLine{00416\ \textcolor{preprocessor}{\#define\ Exp\_msk1\ \ \ \ 0x80}}
\DoxyCodeLine{00417\ \textcolor{preprocessor}{\#define\ Exp\_msk11\ \ \ 0x800000}}
\DoxyCodeLine{00418\ \textcolor{preprocessor}{\#define\ Exp\_mask\ \ 0x7f80}}
\DoxyCodeLine{00419\ \textcolor{preprocessor}{\#define\ P\ 56}}
\DoxyCodeLine{00420\ \textcolor{preprocessor}{\#define\ Bias\ 129}}
\DoxyCodeLine{00421\ \textcolor{preprocessor}{\#define\ Exp\_1\ \ 0x40800000}}
\DoxyCodeLine{00422\ \textcolor{preprocessor}{\#define\ Exp\_11\ 0x4080}}
\DoxyCodeLine{00423\ \textcolor{preprocessor}{\#define\ Ebits\ 8}}
\DoxyCodeLine{00424\ \textcolor{preprocessor}{\#define\ Frac\_mask\ \ 0x7fffff}}
\DoxyCodeLine{00425\ \textcolor{preprocessor}{\#define\ Frac\_mask1\ 0xffff007f}}
\DoxyCodeLine{00426\ \textcolor{preprocessor}{\#define\ Ten\_pmax\ 24}}
\DoxyCodeLine{00427\ \textcolor{preprocessor}{\#define\ Bletch\ 2}}
\DoxyCodeLine{00428\ \textcolor{preprocessor}{\#define\ Bndry\_mask\ \ 0xffff007f}}
\DoxyCodeLine{00429\ \textcolor{preprocessor}{\#define\ Bndry\_mask1\ 0xffff007f}}
\DoxyCodeLine{00430\ \textcolor{preprocessor}{\#define\ LSB\ 0x10000}}
\DoxyCodeLine{00431\ \textcolor{preprocessor}{\#define\ Sign\_bit\ 0x8000}}
\DoxyCodeLine{00432\ \textcolor{preprocessor}{\#define\ Log2P\ 1}}
\DoxyCodeLine{00433\ \textcolor{preprocessor}{\#define\ Tiny0\ 0x80}}
\DoxyCodeLine{00434\ \textcolor{preprocessor}{\#define\ Tiny1\ 0}}
\DoxyCodeLine{00435\ \textcolor{preprocessor}{\#define\ Quick\_max\ 15}}
\DoxyCodeLine{00436\ \textcolor{preprocessor}{\#define\ Int\_max\ 15}}
\DoxyCodeLine{00437\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*\ IBM,\ VAX\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{00438\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*\ IEEE\_Arith\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{00439\ }
\DoxyCodeLine{00440\ \textcolor{preprocessor}{\#ifndef\ IEEE\_Arith}}
\DoxyCodeLine{00441\ \textcolor{preprocessor}{\#define\ ROUND\_BIASED}}
\DoxyCodeLine{00442\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00443\ }
\DoxyCodeLine{00444\ \textcolor{preprocessor}{\#ifdef\ RND\_PRODQUOT}}
\DoxyCodeLine{00445\ \textcolor{preprocessor}{\#define\ rounded\_product(a,b)\ a\ =\ rnd\_prod(a,\ b)}}
\DoxyCodeLine{00446\ \textcolor{preprocessor}{\#define\ rounded\_quotient(a,b)\ a\ =\ rnd\_quot(a,\ b)}}
\DoxyCodeLine{00447\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{00448\ \textcolor{keyword}{extern}\ \textcolor{keywordtype}{double}\ rnd\_prod(),\ rnd\_quot();}
\DoxyCodeLine{00449\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00450\ \textcolor{keyword}{extern}\ \textcolor{keywordtype}{double}\ rnd\_prod(\textcolor{keywordtype}{double},\ \textcolor{keywordtype}{double}),\ rnd\_quot(\textcolor{keywordtype}{double},\ \textcolor{keywordtype}{double});}
\DoxyCodeLine{00451\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00452\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00453\ \textcolor{preprocessor}{\#define\ rounded\_product(a,b)\ a\ *=\ b}}
\DoxyCodeLine{00454\ \textcolor{preprocessor}{\#define\ rounded\_quotient(a,b)\ a\ /=\ b}}
\DoxyCodeLine{00455\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00456\ }
\DoxyCodeLine{00457\ \textcolor{preprocessor}{\#define\ Big0\ (Frac\_mask1\ |\ Exp\_msk1*(DBL\_MAX\_EXP+Bias-\/1))}}
\DoxyCodeLine{00458\ \textcolor{preprocessor}{\#define\ Big1\ 0xffffffff}}
\DoxyCodeLine{00459\ }
\DoxyCodeLine{00460\ \textcolor{preprocessor}{\#ifndef\ Pack\_32}}
\DoxyCodeLine{00461\ \textcolor{preprocessor}{\#define\ Pack\_32}}
\DoxyCodeLine{00462\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00463\ }
\DoxyCodeLine{00464\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{00465\ \textcolor{preprocessor}{\#define\ FFFFFFFF\ ((((unsigned\ long)0xffff)<<16)|(unsigned\ long)0xffff)}}
\DoxyCodeLine{00466\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00467\ \textcolor{preprocessor}{\#define\ FFFFFFFF\ 0xffffffffUL}}
\DoxyCodeLine{00468\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00469\ }
\DoxyCodeLine{00470\ \textcolor{preprocessor}{\#ifdef\ NO\_LONG\_LONG}}
\DoxyCodeLine{00471\ \textcolor{preprocessor}{\#undef\ ULLong}}
\DoxyCodeLine{00472\ \textcolor{preprocessor}{\#ifdef\ Just\_16}}
\DoxyCodeLine{00473\ \textcolor{preprocessor}{\#undef\ Pack\_32}}
\DoxyCodeLine{00474\ \textcolor{comment}{/*\ When\ Pack\_32\ is\ not\ defined,\ we\ store\ 16\ bits\ per\ 32-\/bit\ Long.}}
\DoxyCodeLine{00475\ \textcolor{comment}{\ *\ This\ makes\ some\ inner\ loops\ simpler\ and\ sometimes\ saves\ work}}
\DoxyCodeLine{00476\ \textcolor{comment}{\ *\ during\ multiplications,\ but\ it\ often\ seems\ to\ make\ things\ slightly}}
\DoxyCodeLine{00477\ \textcolor{comment}{\ *\ slower.\ \ Hence\ the\ default\ is\ now\ to\ store\ 32\ bits\ per\ Long.}}
\DoxyCodeLine{00478\ \textcolor{comment}{\ */}}
\DoxyCodeLine{00479\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00480\ \textcolor{preprocessor}{\#else\ \ \ }\textcolor{comment}{/*\ long\ long\ available\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{00481\ \textcolor{preprocessor}{\#ifndef\ Llong}}
\DoxyCodeLine{00482\ \textcolor{preprocessor}{\#define\ Llong\ long\ long}}
\DoxyCodeLine{00483\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00484\ \textcolor{preprocessor}{\#ifndef\ ULLong}}
\DoxyCodeLine{00485\ \textcolor{preprocessor}{\#define\ ULLong\ unsigned\ Llong}}
\DoxyCodeLine{00486\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00487\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*\ NO\_LONG\_LONG\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{00488\ }
\DoxyCodeLine{00489\ \textcolor{preprocessor}{\#ifndef\ MULTIPLE\_THREADS}}
\DoxyCodeLine{00490\ \textcolor{preprocessor}{\#define\ ACQUIRE\_DTOA\_LOCK(n)\ \ \ \ }\textcolor{comment}{/*nothing*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{00491\ \textcolor{preprocessor}{\#define\ FREE\_DTOA\_LOCK(n)\ \ \ \ \ \ \ }\textcolor{comment}{/*nothing*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{00492\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00493\ }
\DoxyCodeLine{00494\ \textcolor{preprocessor}{\#define\ Kmax\ 15}}
\DoxyCodeLine{00495\ }
\DoxyCodeLine{00496\ \textcolor{preprocessor}{\#ifdef\ \_\_cplusplus}}
\DoxyCodeLine{00497\ \textcolor{keyword}{extern}\ \textcolor{stringliteral}{"{}C"{}}\ \textcolor{keywordtype}{double}\ sb\_strtod(\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *s00,\ \textcolor{keywordtype}{char}\ **se);}
\DoxyCodeLine{00498\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00499\ }
\DoxyCodeLine{00500\ \ \textcolor{keyword}{struct}}
\DoxyCodeLine{00501\ Bigint\ \{}
\DoxyCodeLine{00502\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }Bigint\ *next;}
\DoxyCodeLine{00503\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ k,\ maxwds,\ sign,\ wds;}
\DoxyCodeLine{00504\ \ \ \ \ \ \ \ \ ULong\ x[1];}
\DoxyCodeLine{00505\ \ \ \ \ \ \ \ \ \};}
\DoxyCodeLine{00506\ }
\DoxyCodeLine{00507\ \ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }Bigint\ Bigint;}
\DoxyCodeLine{00508\ }
\DoxyCodeLine{00509\ \ \textcolor{keyword}{static}\ Bigint\ *}
\DoxyCodeLine{00510\ Balloc}
\DoxyCodeLine{00511\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{00512\ \ \ \ \ \ \ \ \ (k)\ \textcolor{keywordtype}{int}\ k;}
\DoxyCodeLine{00513\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00514\ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{int}\ k)}
\DoxyCodeLine{00515\ \#endif}
\DoxyCodeLine{00516\ \{}
\DoxyCodeLine{00517\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ x;}
\DoxyCodeLine{00518\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{size\_t}\ len;}
\DoxyCodeLine{00519\ \ \ \ \ \ \ \ \ Bigint\ *rv;}
\DoxyCodeLine{00520\ }
\DoxyCodeLine{00521\ \ \ \ \ \ \ \ \ x\ =\ 1\ <<\ k;}
\DoxyCodeLine{00522\ \ \ \ \ \ \ \ \ len\ =\ (\textcolor{keyword}{sizeof}(Bigint)\ +\ (x-\/1)*\textcolor{keyword}{sizeof}(ULong)\ +\ \textcolor{keyword}{sizeof}(\textcolor{keywordtype}{double})\ -\/\ 1)}
\DoxyCodeLine{00523\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ /\textcolor{keyword}{sizeof}(\textcolor{keywordtype}{double});}
\DoxyCodeLine{00524\ \ \ \ \ \ \ \ \ rv\ =\ ckd\_malloc(len*\textcolor{keyword}{sizeof}(\textcolor{keywordtype}{double}));}
\DoxyCodeLine{00525\ \ \ \ \ \ \ \ \ rv-\/>k\ =\ k;}
\DoxyCodeLine{00526\ \ \ \ \ \ \ \ \ rv-\/>maxwds\ =\ x;}
\DoxyCodeLine{00527\ \ \ \ \ \ \ \ \ rv-\/>sign\ =\ rv-\/>wds\ =\ 0;}
\DoxyCodeLine{00528\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ rv;}
\DoxyCodeLine{00529\ \}}
\DoxyCodeLine{00530\ }
\DoxyCodeLine{00531\ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}}
\DoxyCodeLine{00532\ Bfree}
\DoxyCodeLine{00533\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{00534\ \ \ \ \ \ \ \ \ (v)\ Bigint\ *v;}
\DoxyCodeLine{00535\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00536\ \ \ \ \ \ \ \ \ (Bigint\ *v)}
\DoxyCodeLine{00537\ \#endif}
\DoxyCodeLine{00538\ \{}
\DoxyCodeLine{00539\ \ \ \ \ \ \ \ \ ckd\_free(v);}
\DoxyCodeLine{00540\ \}}
\DoxyCodeLine{00541\ }
\DoxyCodeLine{00542\ \textcolor{preprocessor}{\#define\ Bcopy(x,y)\ memcpy((char\ *)\&x-\/>sign,\ (char\ *)\&y-\/>sign,\ \(\backslash\)}}
\DoxyCodeLine{00543\ \textcolor{preprocessor}{y-\/>wds*sizeof(Long)\ +\ 2*sizeof(int))}}
\DoxyCodeLine{00544\ }
\DoxyCodeLine{00545\ \ \textcolor{keyword}{static}\ Bigint\ *}
\DoxyCodeLine{00546\ multadd}
\DoxyCodeLine{00547\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{00548\ \ \ \ \ \ \ \ \ (b,\ m,\ a)\ Bigint\ *b;\ \textcolor{keywordtype}{int}\ m,\ a;}
\DoxyCodeLine{00549\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00550\ \ \ \ \ \ \ \ \ (Bigint\ *b,\ \textcolor{keywordtype}{int}\ m,\ \textcolor{keywordtype}{int}\ a)\ \textcolor{comment}{/*\ multiply\ by\ m\ and\ add\ a\ */}}
\DoxyCodeLine{00551\ \#endif}
\DoxyCodeLine{00552\ \{}
\DoxyCodeLine{00553\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ i,\ wds;}
\DoxyCodeLine{00554\ \textcolor{preprocessor}{\#ifdef\ ULLong}}
\DoxyCodeLine{00555\ \ \ \ \ \ \ \ \ ULong\ *x;}
\DoxyCodeLine{00556\ \ \ \ \ \ \ \ \ ULLong\ carry,\ y;}
\DoxyCodeLine{00557\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00558\ \ \ \ \ \ \ \ \ ULong\ carry,\ *x,\ y;}
\DoxyCodeLine{00559\ \textcolor{preprocessor}{\#ifdef\ Pack\_32}}
\DoxyCodeLine{00560\ \ \ \ \ \ \ \ \ ULong\ xi,\ z;}
\DoxyCodeLine{00561\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00562\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00563\ \ \ \ \ \ \ \ \ Bigint\ *b1;}
\DoxyCodeLine{00564\ }
\DoxyCodeLine{00565\ \ \ \ \ \ \ \ \ wds\ =\ b-\/>wds;}
\DoxyCodeLine{00566\ \ \ \ \ \ \ \ \ x\ =\ b-\/>x;}
\DoxyCodeLine{00567\ \ \ \ \ \ \ \ \ i\ =\ 0;}
\DoxyCodeLine{00568\ \ \ \ \ \ \ \ \ carry\ =\ a;}
\DoxyCodeLine{00569\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{00570\ \textcolor{preprocessor}{\#ifdef\ ULLong}}
\DoxyCodeLine{00571\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ *x\ *\ (ULLong)m\ +\ carry;}
\DoxyCodeLine{00572\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ carry\ =\ y\ >>\ 32;}
\DoxyCodeLine{00573\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *x++\ =\ y\ \&\ FFFFFFFF;}
\DoxyCodeLine{00574\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00575\ \textcolor{preprocessor}{\#ifdef\ Pack\_32}}
\DoxyCodeLine{00576\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ xi\ =\ *x;}
\DoxyCodeLine{00577\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ (xi\ \&\ 0xffff)\ *\ m\ +\ carry;}
\DoxyCodeLine{00578\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ (xi\ >>\ 16)\ *\ m\ +\ (y\ >>\ 16);}
\DoxyCodeLine{00579\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ carry\ =\ z\ >>\ 16;}
\DoxyCodeLine{00580\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *x++\ =\ (z\ <<\ 16)\ +\ (y\ \&\ 0xffff);}
\DoxyCodeLine{00581\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00582\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ *x\ *\ m\ +\ carry;}
\DoxyCodeLine{00583\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ carry\ =\ y\ >>\ 16;}
\DoxyCodeLine{00584\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *x++\ =\ y\ \&\ 0xffff;}
\DoxyCodeLine{00585\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00586\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00587\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00588\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(++i\ <\ wds);}
\DoxyCodeLine{00589\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (carry)\ \{}
\DoxyCodeLine{00590\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (wds\ >=\ b-\/>maxwds)\ \{}
\DoxyCodeLine{00591\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b1\ =\ Balloc(b-\/>k+1);}
\DoxyCodeLine{00592\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Bcopy(b1,\ b);}
\DoxyCodeLine{00593\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Bfree(b);}
\DoxyCodeLine{00594\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ =\ b1;}
\DoxyCodeLine{00595\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00596\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b-\/>x[wds++]\ =\ carry;}
\DoxyCodeLine{00597\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b-\/>wds\ =\ wds;}
\DoxyCodeLine{00598\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00599\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ b;}
\DoxyCodeLine{00600\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00601\ }
\DoxyCodeLine{00602\ \ \textcolor{keyword}{static}\ Bigint\ *}
\DoxyCodeLine{00603\ s2b}
\DoxyCodeLine{00604\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{00605\ \ \ \ \ \ \ \ \ (s,\ nd0,\ nd,\ y9)\ CONST\ \textcolor{keywordtype}{char}\ *s;\ \textcolor{keywordtype}{int}\ nd0,\ nd;\ ULong\ y9;}
\DoxyCodeLine{00606\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00607\ \ \ \ \ \ \ \ \ (CONST\ \textcolor{keywordtype}{char}\ *s,\ \textcolor{keywordtype}{int}\ nd0,\ \textcolor{keywordtype}{int}\ nd,\ ULong\ y9)}
\DoxyCodeLine{00608\ \#endif}
\DoxyCodeLine{00609\ \{}
\DoxyCodeLine{00610\ \ \ \ \ \ \ \ \ Bigint\ *b;}
\DoxyCodeLine{00611\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ i,\ k;}
\DoxyCodeLine{00612\ \ \ \ \ \ \ \ \ Long\ x,\ y;}
\DoxyCodeLine{00613\ }
\DoxyCodeLine{00614\ \ \ \ \ \ \ \ \ x\ =\ (nd\ +\ 8)\ /\ 9;}
\DoxyCodeLine{00615\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(k\ =\ 0,\ y\ =\ 1;\ x\ >\ y;\ y\ <<=\ 1,\ k++)\ ;}
\DoxyCodeLine{00616\ \textcolor{preprocessor}{\#ifdef\ Pack\_32}}
\DoxyCodeLine{00617\ \ \ \ \ \ \ \ \ b\ =\ Balloc(k);}
\DoxyCodeLine{00618\ \ \ \ \ \ \ \ \ b-\/>x[0]\ =\ y9;}
\DoxyCodeLine{00619\ \ \ \ \ \ \ \ \ b-\/>wds\ =\ 1;}
\DoxyCodeLine{00620\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00621\ \ \ \ \ \ \ \ \ b\ =\ Balloc(k+1);}
\DoxyCodeLine{00622\ \ \ \ \ \ \ \ \ b-\/>x[0]\ =\ y9\ \&\ 0xffff;}
\DoxyCodeLine{00623\ \ \ \ \ \ \ \ \ b-\/>wds\ =\ (b-\/>x[1]\ =\ y9\ >>\ 16)\ ?\ 2\ :\ 1;}
\DoxyCodeLine{00624\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00625\ }
\DoxyCodeLine{00626\ \ \ \ \ \ \ \ \ i\ =\ 9;}
\DoxyCodeLine{00627\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (9\ <\ nd0)\ \{}
\DoxyCodeLine{00628\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ s\ +=\ 9;}
\DoxyCodeLine{00629\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ b\ =\ multadd(b,\ 10,\ *s++\ -\/\ \textcolor{charliteral}{'0'});}
\DoxyCodeLine{00630\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(++i\ <\ nd0);}
\DoxyCodeLine{00631\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ s++;}
\DoxyCodeLine{00632\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00633\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{00634\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ s\ +=\ 10;}
\DoxyCodeLine{00635\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(;\ i\ <\ nd;\ i++)}
\DoxyCodeLine{00636\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ =\ multadd(b,\ 10,\ *s++\ -\/\ \textcolor{charliteral}{'0'});}
\DoxyCodeLine{00637\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ b;}
\DoxyCodeLine{00638\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00639\ }
\DoxyCodeLine{00640\ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{int}}
\DoxyCodeLine{00641\ hi0bits}
\DoxyCodeLine{00642\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{00643\ \ \ \ \ \ \ \ \ (x)\ \textcolor{keyword}{register}\ ULong\ x;}
\DoxyCodeLine{00644\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00645\ \ \ \ \ \ \ \ \ (\textcolor{keyword}{register}\ ULong\ x)}
\DoxyCodeLine{00646\ \#endif}
\DoxyCodeLine{00647\ \{}
\DoxyCodeLine{00648\ \ \ \ \ \ \ \ \ \textcolor{keyword}{register}\ \textcolor{keywordtype}{int}\ k\ =\ 0;}
\DoxyCodeLine{00649\ }
\DoxyCodeLine{00650\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!(x\ \&\ 0xffff0000))\ \{}
\DoxyCodeLine{00651\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k\ =\ 16;}
\DoxyCodeLine{00652\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x\ <<=\ 16;}
\DoxyCodeLine{00653\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00654\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!(x\ \&\ 0xff000000))\ \{}
\DoxyCodeLine{00655\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 8;}
\DoxyCodeLine{00656\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x\ <<=\ 8;}
\DoxyCodeLine{00657\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00658\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!(x\ \&\ 0xf0000000))\ \{}
\DoxyCodeLine{00659\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 4;}
\DoxyCodeLine{00660\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x\ <<=\ 4;}
\DoxyCodeLine{00661\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00662\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!(x\ \&\ 0xc0000000))\ \{}
\DoxyCodeLine{00663\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 2;}
\DoxyCodeLine{00664\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x\ <<=\ 2;}
\DoxyCodeLine{00665\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00666\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!(x\ \&\ 0x80000000))\ \{}
\DoxyCodeLine{00667\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k++;}
\DoxyCodeLine{00668\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!(x\ \&\ 0x40000000))}
\DoxyCodeLine{00669\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 32;}
\DoxyCodeLine{00670\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00671\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ k;}
\DoxyCodeLine{00672\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00673\ }
\DoxyCodeLine{00674\ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{int}}
\DoxyCodeLine{00675\ lo0bits}
\DoxyCodeLine{00676\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{00677\ \ \ \ \ \ \ \ \ (y)\ ULong\ *y;}
\DoxyCodeLine{00678\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00679\ \ \ \ \ \ \ \ \ (ULong\ *y)}
\DoxyCodeLine{00680\ \#endif}
\DoxyCodeLine{00681\ \{}
\DoxyCodeLine{00682\ \ \ \ \ \ \ \ \ \textcolor{keyword}{register}\ \textcolor{keywordtype}{int}\ k;}
\DoxyCodeLine{00683\ \ \ \ \ \ \ \ \ \textcolor{keyword}{register}\ ULong\ x\ =\ *y;}
\DoxyCodeLine{00684\ }
\DoxyCodeLine{00685\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (x\ \&\ 7)\ \{}
\DoxyCodeLine{00686\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (x\ \&\ 1)}
\DoxyCodeLine{00687\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{00688\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (x\ \&\ 2)\ \{}
\DoxyCodeLine{00689\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *y\ =\ x\ >>\ 1;}
\DoxyCodeLine{00690\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 1;}
\DoxyCodeLine{00691\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00692\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *y\ =\ x\ >>\ 2;}
\DoxyCodeLine{00693\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 2;}
\DoxyCodeLine{00694\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00695\ \ \ \ \ \ \ \ \ k\ =\ 0;}
\DoxyCodeLine{00696\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!(x\ \&\ 0xffff))\ \{}
\DoxyCodeLine{00697\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k\ =\ 16;}
\DoxyCodeLine{00698\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x\ >>=\ 16;}
\DoxyCodeLine{00699\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00700\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!(x\ \&\ 0xff))\ \{}
\DoxyCodeLine{00701\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 8;}
\DoxyCodeLine{00702\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x\ >>=\ 8;}
\DoxyCodeLine{00703\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00704\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!(x\ \&\ 0xf))\ \{}
\DoxyCodeLine{00705\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 4;}
\DoxyCodeLine{00706\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x\ >>=\ 4;}
\DoxyCodeLine{00707\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00708\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!(x\ \&\ 0x3))\ \{}
\DoxyCodeLine{00709\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 2;}
\DoxyCodeLine{00710\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x\ >>=\ 2;}
\DoxyCodeLine{00711\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00712\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!(x\ \&\ 1))\ \{}
\DoxyCodeLine{00713\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k++;}
\DoxyCodeLine{00714\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x\ >>=\ 1;}
\DoxyCodeLine{00715\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!x)}
\DoxyCodeLine{00716\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 32;}
\DoxyCodeLine{00717\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00718\ \ \ \ \ \ \ \ \ *y\ =\ x;}
\DoxyCodeLine{00719\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ k;}
\DoxyCodeLine{00720\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00721\ }
\DoxyCodeLine{00722\ \ \textcolor{keyword}{static}\ Bigint\ *}
\DoxyCodeLine{00723\ i2b}
\DoxyCodeLine{00724\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{00725\ \ \ \ \ \ \ \ \ (i)\ \textcolor{keywordtype}{int}\ i;}
\DoxyCodeLine{00726\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00727\ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{int}\ i)}
\DoxyCodeLine{00728\ \#endif}
\DoxyCodeLine{00729\ \{}
\DoxyCodeLine{00730\ \ \ \ \ \ \ \ \ Bigint\ *b;}
\DoxyCodeLine{00731\ }
\DoxyCodeLine{00732\ \ \ \ \ \ \ \ \ b\ =\ Balloc(1);}
\DoxyCodeLine{00733\ \ \ \ \ \ \ \ \ b-\/>x[0]\ =\ i;}
\DoxyCodeLine{00734\ \ \ \ \ \ \ \ \ b-\/>wds\ =\ 1;}
\DoxyCodeLine{00735\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ b;}
\DoxyCodeLine{00736\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00737\ }
\DoxyCodeLine{00738\ \ \textcolor{keyword}{static}\ Bigint\ *}
\DoxyCodeLine{00739\ mult}
\DoxyCodeLine{00740\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{00741\ \ \ \ \ \ \ \ \ (a,\ b)\ Bigint\ *a,\ *b;}
\DoxyCodeLine{00742\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00743\ \ \ \ \ \ \ \ \ (Bigint\ *a,\ Bigint\ *b)}
\DoxyCodeLine{00744\ \#endif}
\DoxyCodeLine{00745\ \{}
\DoxyCodeLine{00746\ \ \ \ \ \ \ \ \ Bigint\ *c;}
\DoxyCodeLine{00747\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ k,\ wa,\ wb,\ wc;}
\DoxyCodeLine{00748\ \ \ \ \ \ \ \ \ ULong\ *x,\ *xa,\ *xae,\ *xb,\ *xbe,\ *xc,\ *xc0;}
\DoxyCodeLine{00749\ \ \ \ \ \ \ \ \ ULong\ y;}
\DoxyCodeLine{00750\ \textcolor{preprocessor}{\#ifdef\ ULLong}}
\DoxyCodeLine{00751\ \ \ \ \ \ \ \ \ ULLong\ carry,\ z;}
\DoxyCodeLine{00752\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00753\ \ \ \ \ \ \ \ \ ULong\ carry,\ z;}
\DoxyCodeLine{00754\ \textcolor{preprocessor}{\#ifdef\ Pack\_32}}
\DoxyCodeLine{00755\ \ \ \ \ \ \ \ \ ULong\ z2;}
\DoxyCodeLine{00756\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00757\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00758\ }
\DoxyCodeLine{00759\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (a-\/>wds\ <\ b-\/>wds)\ \{}
\DoxyCodeLine{00760\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ =\ a;}
\DoxyCodeLine{00761\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ =\ b;}
\DoxyCodeLine{00762\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ =\ c;}
\DoxyCodeLine{00763\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00764\ \ \ \ \ \ \ \ \ k\ =\ a-\/>k;}
\DoxyCodeLine{00765\ \ \ \ \ \ \ \ \ wa\ =\ a-\/>wds;}
\DoxyCodeLine{00766\ \ \ \ \ \ \ \ \ wb\ =\ b-\/>wds;}
\DoxyCodeLine{00767\ \ \ \ \ \ \ \ \ wc\ =\ wa\ +\ wb;}
\DoxyCodeLine{00768\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (wc\ >\ a-\/>maxwds)}
\DoxyCodeLine{00769\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k++;}
\DoxyCodeLine{00770\ \ \ \ \ \ \ \ \ c\ =\ Balloc(k);}
\DoxyCodeLine{00771\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(x\ =\ c-\/>x,\ xa\ =\ x\ +\ wc;\ x\ <\ xa;\ x++)}
\DoxyCodeLine{00772\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *x\ =\ 0;}
\DoxyCodeLine{00773\ \ \ \ \ \ \ \ \ xa\ =\ a-\/>x;}
\DoxyCodeLine{00774\ \ \ \ \ \ \ \ \ xae\ =\ xa\ +\ wa;}
\DoxyCodeLine{00775\ \ \ \ \ \ \ \ \ xb\ =\ b-\/>x;}
\DoxyCodeLine{00776\ \ \ \ \ \ \ \ \ xbe\ =\ xb\ +\ wb;}
\DoxyCodeLine{00777\ \ \ \ \ \ \ \ \ xc0\ =\ c-\/>x;}
\DoxyCodeLine{00778\ \textcolor{preprocessor}{\#ifdef\ ULLong}}
\DoxyCodeLine{00779\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(;\ xb\ <\ xbe;\ xc0++)\ \{}
\DoxyCodeLine{00780\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((y\ =\ *xb++))\ \{}
\DoxyCodeLine{00781\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x\ =\ xa;}
\DoxyCodeLine{00782\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ xc\ =\ xc0;}
\DoxyCodeLine{00783\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ carry\ =\ 0;}
\DoxyCodeLine{00784\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{00785\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ *x++\ *\ (ULLong)y\ +\ *xc\ +\ carry;}
\DoxyCodeLine{00786\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ carry\ =\ z\ >>\ 32;}
\DoxyCodeLine{00787\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *xc++\ =\ z\ \&\ FFFFFFFF;}
\DoxyCodeLine{00788\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00789\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(x\ <\ xae);}
\DoxyCodeLine{00790\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *xc\ =\ carry;}
\DoxyCodeLine{00791\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00792\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00793\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00794\ \textcolor{preprocessor}{\#ifdef\ Pack\_32}}
\DoxyCodeLine{00795\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(;\ xb\ <\ xbe;\ xb++,\ xc0++)\ \{}
\DoxyCodeLine{00796\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (y\ =\ *xb\ \&\ 0xffff)\ \{}
\DoxyCodeLine{00797\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x\ =\ xa;}
\DoxyCodeLine{00798\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ xc\ =\ xc0;}
\DoxyCodeLine{00799\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ carry\ =\ 0;}
\DoxyCodeLine{00800\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{00801\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ (*x\ \&\ 0xffff)\ *\ y\ +\ (*xc\ \&\ 0xffff)\ +\ carry;}
\DoxyCodeLine{00802\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ carry\ =\ z\ >>\ 16;}
\DoxyCodeLine{00803\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z2\ =\ (*x++\ >>\ 16)\ *\ y\ +\ (*xc\ >>\ 16)\ +\ carry;}
\DoxyCodeLine{00804\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ carry\ =\ z2\ >>\ 16;}
\DoxyCodeLine{00805\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Storeinc(xc,\ z2,\ z);}
\DoxyCodeLine{00806\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00807\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(x\ <\ xae);}
\DoxyCodeLine{00808\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *xc\ =\ carry;}
\DoxyCodeLine{00809\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00810\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (y\ =\ *xb\ >>\ 16)\ \{}
\DoxyCodeLine{00811\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x\ =\ xa;}
\DoxyCodeLine{00812\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ xc\ =\ xc0;}
\DoxyCodeLine{00813\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ carry\ =\ 0;}
\DoxyCodeLine{00814\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z2\ =\ *xc;}
\DoxyCodeLine{00815\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{00816\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ (*x\ \&\ 0xffff)\ *\ y\ +\ (*xc\ >>\ 16)\ +\ carry;}
\DoxyCodeLine{00817\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ carry\ =\ z\ >>\ 16;}
\DoxyCodeLine{00818\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Storeinc(xc,\ z,\ z2);}
\DoxyCodeLine{00819\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z2\ =\ (*x++\ >>\ 16)\ *\ y\ +\ (*xc\ \&\ 0xffff)\ +\ carry;}
\DoxyCodeLine{00820\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ carry\ =\ z2\ >>\ 16;}
\DoxyCodeLine{00821\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00822\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(x\ <\ xae);}
\DoxyCodeLine{00823\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *xc\ =\ z2;}
\DoxyCodeLine{00824\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00825\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00826\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00827\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(;\ xb\ <\ xbe;\ xc0++)\ \{}
\DoxyCodeLine{00828\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (y\ =\ *xb++)\ \{}
\DoxyCodeLine{00829\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x\ =\ xa;}
\DoxyCodeLine{00830\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ xc\ =\ xc0;}
\DoxyCodeLine{00831\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ carry\ =\ 0;}
\DoxyCodeLine{00832\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{00833\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ *x++\ *\ y\ +\ *xc\ +\ carry;}
\DoxyCodeLine{00834\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ carry\ =\ z\ >>\ 16;}
\DoxyCodeLine{00835\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *xc++\ =\ z\ \&\ 0xffff;}
\DoxyCodeLine{00836\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00837\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(x\ <\ xae);}
\DoxyCodeLine{00838\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *xc\ =\ carry;}
\DoxyCodeLine{00839\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00840\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00841\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00842\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00843\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(xc0\ =\ c-\/>x,\ xc\ =\ xc0\ +\ wc;\ wc\ >\ 0\ \&\&\ !*-\/-\/xc;\ -\/-\/wc)\ ;}
\DoxyCodeLine{00844\ \ \ \ \ \ \ \ \ c-\/>wds\ =\ wc;}
\DoxyCodeLine{00845\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ c;}
\DoxyCodeLine{00846\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00847\ }
\DoxyCodeLine{00848\ \ \textcolor{keyword}{static}\ Bigint\ *}
\DoxyCodeLine{00849\ pow5mult}
\DoxyCodeLine{00850\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{00851\ \ \ \ \ \ \ \ \ (b,\ k)\ Bigint\ *b;\ \textcolor{keywordtype}{int}\ k;}
\DoxyCodeLine{00852\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00853\ \ \ \ \ \ \ \ \ (Bigint\ *b,\ \textcolor{keywordtype}{int}\ k)}
\DoxyCodeLine{00854\ \#endif}
\DoxyCodeLine{00855\ \{}
\DoxyCodeLine{00856\ \ \ \ \ \ \ \ \ Bigint\ *b1,\ *p5,\ *p51;}
\DoxyCodeLine{00857\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ i;}
\DoxyCodeLine{00858\ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{int}\ CONST\ p05[3]\ =\ \{\ 5,\ 25,\ 125\ \};}
\DoxyCodeLine{00859\ }
\DoxyCodeLine{00860\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((i\ =\ k\ \&\ 3))}
\DoxyCodeLine{00861\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ =\ multadd(b,\ p05[i-\/1],\ 0);}
\DoxyCodeLine{00862\ }
\DoxyCodeLine{00863\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!(k\ >>=\ 2))}
\DoxyCodeLine{00864\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ b;}
\DoxyCodeLine{00865\ }
\DoxyCodeLine{00866\ \ \ \ \ \ \ \ \ p5\ =\ i2b(625);}
\DoxyCodeLine{00867\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(;;)\ \{}
\DoxyCodeLine{00868\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ \&\ 1)\ \{}
\DoxyCodeLine{00869\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b1\ =\ mult(b,\ p5);}
\DoxyCodeLine{00870\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Bfree(b);}
\DoxyCodeLine{00871\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ =\ b1;}
\DoxyCodeLine{00872\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00873\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!(k\ >>=\ 1))}
\DoxyCodeLine{00874\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{00875\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ p51\ =\ mult(p5,p5);}
\DoxyCodeLine{00876\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Bfree(p5);}
\DoxyCodeLine{00877\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ p5\ =\ p51;}
\DoxyCodeLine{00878\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00879\ \ \ \ \ \ \ \ \ Bfree(p5);}
\DoxyCodeLine{00880\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ b;}
\DoxyCodeLine{00881\ \}}
\DoxyCodeLine{00882\ }
\DoxyCodeLine{00883\ \ \textcolor{keyword}{static}\ Bigint\ *}
\DoxyCodeLine{00884\ lshift}
\DoxyCodeLine{00885\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{00886\ \ \ \ \ \ \ \ \ (b,\ k)\ Bigint\ *b;\ \textcolor{keywordtype}{int}\ k;}
\DoxyCodeLine{00887\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00888\ \ \ \ \ \ \ \ \ (Bigint\ *b,\ \textcolor{keywordtype}{int}\ k)}
\DoxyCodeLine{00889\ \#endif}
\DoxyCodeLine{00890\ \{}
\DoxyCodeLine{00891\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ i,\ k1,\ n,\ n1;}
\DoxyCodeLine{00892\ \ \ \ \ \ \ \ \ Bigint\ *b1;}
\DoxyCodeLine{00893\ \ \ \ \ \ \ \ \ ULong\ *x,\ *x1,\ *xe,\ z;}
\DoxyCodeLine{00894\ }
\DoxyCodeLine{00895\ \textcolor{preprocessor}{\#ifdef\ Pack\_32}}
\DoxyCodeLine{00896\ \ \ \ \ \ \ \ \ n\ =\ k\ >>\ 5;}
\DoxyCodeLine{00897\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00898\ \ \ \ \ \ \ \ \ n\ =\ k\ >>\ 4;}
\DoxyCodeLine{00899\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00900\ \ \ \ \ \ \ \ \ k1\ =\ b-\/>k;}
\DoxyCodeLine{00901\ \ \ \ \ \ \ \ \ n1\ =\ n\ +\ b-\/>wds\ +\ 1;}
\DoxyCodeLine{00902\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(i\ =\ b-\/>maxwds;\ n1\ >\ i;\ i\ <<=\ 1)}
\DoxyCodeLine{00903\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k1++;}
\DoxyCodeLine{00904\ \ \ \ \ \ \ \ \ b1\ =\ Balloc(k1);}
\DoxyCodeLine{00905\ \ \ \ \ \ \ \ \ x1\ =\ b1-\/>x;}
\DoxyCodeLine{00906\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(i\ =\ 0;\ i\ <\ n;\ i++)}
\DoxyCodeLine{00907\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *x1++\ =\ 0;}
\DoxyCodeLine{00908\ \ \ \ \ \ \ \ \ x\ =\ b-\/>x;}
\DoxyCodeLine{00909\ \ \ \ \ \ \ \ \ xe\ =\ x\ +\ b-\/>wds;}
\DoxyCodeLine{00910\ \textcolor{preprocessor}{\#ifdef\ Pack\_32}}
\DoxyCodeLine{00911\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ \&=\ 0x1f)\ \{}
\DoxyCodeLine{00912\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k1\ =\ 32\ -\/\ k;}
\DoxyCodeLine{00913\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ 0;}
\DoxyCodeLine{00914\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{00915\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *x1++\ =\ *x\ <<\ k\ |\ z;}
\DoxyCodeLine{00916\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ *x++\ >>\ k1;}
\DoxyCodeLine{00917\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00918\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(x\ <\ xe);}
\DoxyCodeLine{00919\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((*x1\ =\ z))}
\DoxyCodeLine{00920\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ++n1;}
\DoxyCodeLine{00921\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00922\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00923\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ \&=\ 0xf)\ \{}
\DoxyCodeLine{00924\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k1\ =\ 16\ -\/\ k;}
\DoxyCodeLine{00925\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ 0;}
\DoxyCodeLine{00926\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{00927\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *x1++\ =\ *x\ <<\ k\ \ \&\ 0xffff\ |\ z;}
\DoxyCodeLine{00928\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ *x++\ >>\ k1;}
\DoxyCodeLine{00929\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00930\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(x\ <\ xe);}
\DoxyCodeLine{00931\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*x1\ =\ z)}
\DoxyCodeLine{00932\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ++n1;}
\DoxyCodeLine{00933\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00934\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00935\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{do}}
\DoxyCodeLine{00936\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *x1++\ =\ *x++;}
\DoxyCodeLine{00937\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(x\ <\ xe);}
\DoxyCodeLine{00938\ \ \ \ \ \ \ \ \ b1-\/>wds\ =\ n1\ -\/\ 1;}
\DoxyCodeLine{00939\ \ \ \ \ \ \ \ \ Bfree(b);}
\DoxyCodeLine{00940\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ b1;}
\DoxyCodeLine{00941\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00942\ }
\DoxyCodeLine{00943\ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{int}}
\DoxyCodeLine{00944\ cmp}
\DoxyCodeLine{00945\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{00946\ \ \ \ \ \ \ \ \ (a,\ b)\ Bigint\ *a,\ *b;}
\DoxyCodeLine{00947\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00948\ \ \ \ \ \ \ \ \ (Bigint\ *a,\ Bigint\ *b)}
\DoxyCodeLine{00949\ \#endif}
\DoxyCodeLine{00950\ \{}
\DoxyCodeLine{00951\ \ \ \ \ \ \ \ \ ULong\ *xa,\ *xa0,\ *xb,\ *xb0;}
\DoxyCodeLine{00952\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ i,\ j;}
\DoxyCodeLine{00953\ }
\DoxyCodeLine{00954\ \ \ \ \ \ \ \ \ i\ =\ a-\/>wds;}
\DoxyCodeLine{00955\ \ \ \ \ \ \ \ \ j\ =\ b-\/>wds;}
\DoxyCodeLine{00956\ \textcolor{preprocessor}{\#ifdef\ DEBUG}}
\DoxyCodeLine{00957\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (i\ >\ 1\ \&\&\ !a-\/>x[i-\/1])}
\DoxyCodeLine{00958\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Bug(\textcolor{stringliteral}{"{}cmp\ called\ with\ a-\/>x[a-\/>wds-\/1]\ ==\ 0"{}});}
\DoxyCodeLine{00959\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (j\ >\ 1\ \&\&\ !b-\/>x[j-\/1])}
\DoxyCodeLine{00960\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Bug(\textcolor{stringliteral}{"{}cmp\ called\ with\ b-\/>x[b-\/>wds-\/1]\ ==\ 0"{}});}
\DoxyCodeLine{00961\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00962\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (i\ -\/=\ j)}
\DoxyCodeLine{00963\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ i;}
\DoxyCodeLine{00964\ \ \ \ \ \ \ \ \ xa0\ =\ a-\/>x;}
\DoxyCodeLine{00965\ \ \ \ \ \ \ \ \ xa\ =\ xa0\ +\ j;}
\DoxyCodeLine{00966\ \ \ \ \ \ \ \ \ xb0\ =\ b-\/>x;}
\DoxyCodeLine{00967\ \ \ \ \ \ \ \ \ xb\ =\ xb0\ +\ j;}
\DoxyCodeLine{00968\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(;;)\ \{}
\DoxyCodeLine{00969\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*-\/-\/xa\ !=\ *-\/-\/xb)}
\DoxyCodeLine{00970\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ *xa\ <\ *xb\ ?\ -\/1\ :\ 1;}
\DoxyCodeLine{00971\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (xa\ <=\ xa0)}
\DoxyCodeLine{00972\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{00973\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00974\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{00975\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00976\ }
\DoxyCodeLine{00977\ \ \textcolor{keyword}{static}\ Bigint\ *}
\DoxyCodeLine{00978\ diff}
\DoxyCodeLine{00979\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{00980\ \ \ \ \ \ \ \ \ (a,\ b)\ Bigint\ *a,\ *b;}
\DoxyCodeLine{00981\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00982\ \ \ \ \ \ \ \ \ (Bigint\ *a,\ Bigint\ *b)}
\DoxyCodeLine{00983\ \#endif}
\DoxyCodeLine{00984\ \{}
\DoxyCodeLine{00985\ \ \ \ \ \ \ \ \ Bigint\ *c;}
\DoxyCodeLine{00986\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ i,\ wa,\ wb;}
\DoxyCodeLine{00987\ \ \ \ \ \ \ \ \ ULong\ *xa,\ *xae,\ *xb,\ *xbe,\ *xc;}
\DoxyCodeLine{00988\ \textcolor{preprocessor}{\#ifdef\ ULLong}}
\DoxyCodeLine{00989\ \ \ \ \ \ \ \ \ ULLong\ borrow,\ y;}
\DoxyCodeLine{00990\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00991\ \ \ \ \ \ \ \ \ ULong\ borrow,\ y;}
\DoxyCodeLine{00992\ \textcolor{preprocessor}{\#ifdef\ Pack\_32}}
\DoxyCodeLine{00993\ \ \ \ \ \ \ \ \ ULong\ z;}
\DoxyCodeLine{00994\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00995\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00996\ }
\DoxyCodeLine{00997\ \ \ \ \ \ \ \ \ i\ =\ cmp(a,b);}
\DoxyCodeLine{00998\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!i)\ \{}
\DoxyCodeLine{00999\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ =\ Balloc(0);}
\DoxyCodeLine{01000\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c-\/>wds\ =\ 1;}
\DoxyCodeLine{01001\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c-\/>x[0]\ =\ 0;}
\DoxyCodeLine{01002\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ c;}
\DoxyCodeLine{01003\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01004\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (i\ <\ 0)\ \{}
\DoxyCodeLine{01005\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ =\ a;}
\DoxyCodeLine{01006\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ =\ b;}
\DoxyCodeLine{01007\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ =\ c;}
\DoxyCodeLine{01008\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\ =\ 1;}
\DoxyCodeLine{01009\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01010\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{01011\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\ =\ 0;}
\DoxyCodeLine{01012\ \ \ \ \ \ \ \ \ c\ =\ Balloc(a-\/>k);}
\DoxyCodeLine{01013\ \ \ \ \ \ \ \ \ c-\/>sign\ =\ i;}
\DoxyCodeLine{01014\ \ \ \ \ \ \ \ \ wa\ =\ a-\/>wds;}
\DoxyCodeLine{01015\ \ \ \ \ \ \ \ \ xa\ =\ a-\/>x;}
\DoxyCodeLine{01016\ \ \ \ \ \ \ \ \ xae\ =\ xa\ +\ wa;}
\DoxyCodeLine{01017\ \ \ \ \ \ \ \ \ wb\ =\ b-\/>wds;}
\DoxyCodeLine{01018\ \ \ \ \ \ \ \ \ xb\ =\ b-\/>x;}
\DoxyCodeLine{01019\ \ \ \ \ \ \ \ \ xbe\ =\ xb\ +\ wb;}
\DoxyCodeLine{01020\ \ \ \ \ \ \ \ \ xc\ =\ c-\/>x;}
\DoxyCodeLine{01021\ \ \ \ \ \ \ \ \ borrow\ =\ 0;}
\DoxyCodeLine{01022\ \textcolor{preprocessor}{\#ifdef\ ULLong}}
\DoxyCodeLine{01023\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{01024\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ (ULLong)*xa++\ -\/\ *xb++\ -\/\ borrow;}
\DoxyCodeLine{01025\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ borrow\ =\ y\ >>\ 32\ \&\ (ULong)1;}
\DoxyCodeLine{01026\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *xc++\ =\ y\ \&\ FFFFFFFF;}
\DoxyCodeLine{01027\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01028\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(xb\ <\ xbe);}
\DoxyCodeLine{01029\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(xa\ <\ xae)\ \{}
\DoxyCodeLine{01030\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ *xa++\ -\/\ borrow;}
\DoxyCodeLine{01031\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ borrow\ =\ y\ >>\ 32\ \&\ (ULong)1;}
\DoxyCodeLine{01032\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *xc++\ =\ y\ \&\ FFFFFFFF;}
\DoxyCodeLine{01033\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01034\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01035\ \textcolor{preprocessor}{\#ifdef\ Pack\_32}}
\DoxyCodeLine{01036\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{01037\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ (*xa\ \&\ 0xffff)\ -\/\ (*xb\ \&\ 0xffff)\ -\/\ borrow;}
\DoxyCodeLine{01038\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ borrow\ =\ (y\ \&\ 0x10000)\ >>\ 16;}
\DoxyCodeLine{01039\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ (*xa++\ >>\ 16)\ -\/\ (*xb++\ >>\ 16)\ -\/\ borrow;}
\DoxyCodeLine{01040\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ borrow\ =\ (z\ \&\ 0x10000)\ >>\ 16;}
\DoxyCodeLine{01041\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Storeinc(xc,\ z,\ y);}
\DoxyCodeLine{01042\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01043\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(xb\ <\ xbe);}
\DoxyCodeLine{01044\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(xa\ <\ xae)\ \{}
\DoxyCodeLine{01045\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ (*xa\ \&\ 0xffff)\ -\/\ borrow;}
\DoxyCodeLine{01046\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ borrow\ =\ (y\ \&\ 0x10000)\ >>\ 16;}
\DoxyCodeLine{01047\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ (*xa++\ >>\ 16)\ -\/\ borrow;}
\DoxyCodeLine{01048\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ borrow\ =\ (z\ \&\ 0x10000)\ >>\ 16;}
\DoxyCodeLine{01049\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Storeinc(xc,\ z,\ y);}
\DoxyCodeLine{01050\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01051\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01052\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{01053\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ *xa++\ -\/\ *xb++\ -\/\ borrow;}
\DoxyCodeLine{01054\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ borrow\ =\ (y\ \&\ 0x10000)\ >>\ 16;}
\DoxyCodeLine{01055\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *xc++\ =\ y\ \&\ 0xffff;}
\DoxyCodeLine{01056\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01057\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(xb\ <\ xbe);}
\DoxyCodeLine{01058\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(xa\ <\ xae)\ \{}
\DoxyCodeLine{01059\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ *xa++\ -\/\ borrow;}
\DoxyCodeLine{01060\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ borrow\ =\ (y\ \&\ 0x10000)\ >>\ 16;}
\DoxyCodeLine{01061\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *xc++\ =\ y\ \&\ 0xffff;}
\DoxyCodeLine{01062\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01063\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01064\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01065\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(!*-\/-\/xc)}
\DoxyCodeLine{01066\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ wa-\/-\/;}
\DoxyCodeLine{01067\ \ \ \ \ \ \ \ \ c-\/>wds\ =\ wa;}
\DoxyCodeLine{01068\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ c;}
\DoxyCodeLine{01069\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01070\ }
\DoxyCodeLine{01071\ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{double}}
\DoxyCodeLine{01072\ ulp}
\DoxyCodeLine{01073\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{01074\ \ \ \ \ \ \ \ \ (x)\ \textcolor{keywordtype}{double}\ x;}
\DoxyCodeLine{01075\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01076\ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{double}\ x)}
\DoxyCodeLine{01077\ \#endif}
\DoxyCodeLine{01078\ \{}
\DoxyCodeLine{01079\ \ \ \ \ \ \ \ \ \textcolor{keyword}{register}\ Long\ L;}
\DoxyCodeLine{01080\ \ \ \ \ \ \ \ \ U\ a;}
\DoxyCodeLine{01081\ }
\DoxyCodeLine{01082\ \ \ \ \ \ \ \ \ L\ =\ (word0(x)\ \&\ Exp\_mask)\ -\/\ (P-\/1)*Exp\_msk1;}
\DoxyCodeLine{01083\ \textcolor{preprocessor}{\#ifndef\ Avoid\_Underflow}}
\DoxyCodeLine{01084\ \textcolor{preprocessor}{\#ifndef\ Sudden\_Underflow}}
\DoxyCodeLine{01085\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (L\ >\ 0)\ \{}
\DoxyCodeLine{01086\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01087\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01088\ \textcolor{preprocessor}{\#ifdef\ IBM}}
\DoxyCodeLine{01089\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\ |=\ Exp\_msk1\ >>\ 4;}
\DoxyCodeLine{01090\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01091\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(a)\ =\ L;}
\DoxyCodeLine{01092\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(a)\ =\ 0;}
\DoxyCodeLine{01093\ \textcolor{preprocessor}{\#ifndef\ Avoid\_Underflow}}
\DoxyCodeLine{01094\ \textcolor{preprocessor}{\#ifndef\ Sudden\_Underflow}}
\DoxyCodeLine{01095\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01096\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01097\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\ =\ -\/L\ >>\ Exp\_shift;}
\DoxyCodeLine{01098\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (L\ <\ Exp\_shift)\ \{}
\DoxyCodeLine{01099\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(a)\ =\ 0x80000\ >>\ L;}
\DoxyCodeLine{01100\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(a)\ =\ 0;}
\DoxyCodeLine{01101\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01102\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01103\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(a)\ =\ 0;}
\DoxyCodeLine{01104\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\ -\/=\ Exp\_shift;}
\DoxyCodeLine{01105\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(a)\ =\ L\ >=\ 31\ ?\ 1\ :\ 1\ <<\ 31\ -\/\ L;}
\DoxyCodeLine{01106\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01107\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01108\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01109\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01110\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ dval(a);}
\DoxyCodeLine{01111\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01112\ }
\DoxyCodeLine{01113\ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{double}}
\DoxyCodeLine{01114\ b2d}
\DoxyCodeLine{01115\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{01116\ \ \ \ \ \ \ \ \ (a,\ e)\ Bigint\ *a;\ \textcolor{keywordtype}{int}\ *e;}
\DoxyCodeLine{01117\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01118\ \ \ \ \ \ \ \ \ (Bigint\ *a,\ \textcolor{keywordtype}{int}\ *e)}
\DoxyCodeLine{01119\ \#endif}
\DoxyCodeLine{01120\ \{}
\DoxyCodeLine{01121\ \ \ \ \ \ \ \ \ ULong\ *xa,\ *xa0,\ w,\ y,\ z;}
\DoxyCodeLine{01122\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ k;}
\DoxyCodeLine{01123\ \ \ \ \ \ \ \ \ U\ d;}
\DoxyCodeLine{01124\ \textcolor{preprocessor}{\#ifdef\ VAX}}
\DoxyCodeLine{01125\ \ \ \ \ \ \ \ \ ULong\ d0,\ d1;}
\DoxyCodeLine{01126\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01127\ \textcolor{preprocessor}{\#define\ d0\ word0(d)}}
\DoxyCodeLine{01128\ \textcolor{preprocessor}{\#define\ d1\ word1(d)}}
\DoxyCodeLine{01129\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01130\ }
\DoxyCodeLine{01131\ \ \ \ \ \ \ \ \ xa0\ =\ a-\/>x;}
\DoxyCodeLine{01132\ \ \ \ \ \ \ \ \ xa\ =\ xa0\ +\ a-\/>wds;}
\DoxyCodeLine{01133\ \ \ \ \ \ \ \ \ y\ =\ *-\/-\/xa;}
\DoxyCodeLine{01134\ \textcolor{preprocessor}{\#ifdef\ DEBUG}}
\DoxyCodeLine{01135\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!y)\ Bug(\textcolor{stringliteral}{"{}zero\ y\ in\ b2d"{}});}
\DoxyCodeLine{01136\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01137\ \ \ \ \ \ \ \ \ k\ =\ hi0bits(y);}
\DoxyCodeLine{01138\ \ \ \ \ \ \ \ \ *e\ =\ 32\ -\/\ k;}
\DoxyCodeLine{01139\ \textcolor{preprocessor}{\#ifdef\ Pack\_32}}
\DoxyCodeLine{01140\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ <\ Ebits)\ \{}
\DoxyCodeLine{01141\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ d0\ =\ Exp\_1\ |\ y\ >>\ (Ebits\ -\/\ k);}
\DoxyCodeLine{01142\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ w\ =\ xa\ >\ xa0\ ?\ *-\/-\/xa\ :\ 0;}
\DoxyCodeLine{01143\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ d1\ =\ y\ <<\ ((32-\/Ebits)\ +\ k)\ |\ w\ >>\ (Ebits\ -\/\ k);}
\DoxyCodeLine{01144\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ret\_d;}
\DoxyCodeLine{01145\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01146\ \ \ \ \ \ \ \ \ z\ =\ xa\ >\ xa0\ ?\ *-\/-\/xa\ :\ 0;}
\DoxyCodeLine{01147\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ -\/=\ Ebits)\ \{}
\DoxyCodeLine{01148\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ d0\ =\ Exp\_1\ |\ y\ <<\ k\ |\ z\ >>\ (32\ -\/\ k);}
\DoxyCodeLine{01149\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ xa\ >\ xa0\ ?\ *-\/-\/xa\ :\ 0;}
\DoxyCodeLine{01150\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ d1\ =\ z\ <<\ k\ |\ y\ >>\ (32\ -\/\ k);}
\DoxyCodeLine{01151\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01152\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01153\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ d0\ =\ Exp\_1\ |\ y;}
\DoxyCodeLine{01154\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ d1\ =\ z;}
\DoxyCodeLine{01155\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01156\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01157\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ <\ Ebits\ +\ 16)\ \{}
\DoxyCodeLine{01158\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ xa\ >\ xa0\ ?\ *-\/-\/xa\ :\ 0;}
\DoxyCodeLine{01159\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ d0\ =\ Exp\_1\ |\ y\ <<\ k\ -\/\ Ebits\ |\ z\ >>\ Ebits\ +\ 16\ -\/\ k;}
\DoxyCodeLine{01160\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ w\ =\ xa\ >\ xa0\ ?\ *-\/-\/xa\ :\ 0;}
\DoxyCodeLine{01161\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ xa\ >\ xa0\ ?\ *-\/-\/xa\ :\ 0;}
\DoxyCodeLine{01162\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ d1\ =\ z\ <<\ k\ +\ 16\ -\/\ Ebits\ |\ w\ <<\ k\ -\/\ Ebits\ |\ y\ >>\ 16\ +\ Ebits\ -\/\ k;}
\DoxyCodeLine{01163\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ret\_d;}
\DoxyCodeLine{01164\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01165\ \ \ \ \ \ \ \ \ z\ =\ xa\ >\ xa0\ ?\ *-\/-\/xa\ :\ 0;}
\DoxyCodeLine{01166\ \ \ \ \ \ \ \ \ w\ =\ xa\ >\ xa0\ ?\ *-\/-\/xa\ :\ 0;}
\DoxyCodeLine{01167\ \ \ \ \ \ \ \ \ k\ -\/=\ Ebits\ +\ 16;}
\DoxyCodeLine{01168\ \ \ \ \ \ \ \ \ d0\ =\ Exp\_1\ |\ y\ <<\ k\ +\ 16\ |\ z\ <<\ k\ |\ w\ >>\ 16\ -\/\ k;}
\DoxyCodeLine{01169\ \ \ \ \ \ \ \ \ y\ =\ xa\ >\ xa0\ ?\ *-\/-\/xa\ :\ 0;}
\DoxyCodeLine{01170\ \ \ \ \ \ \ \ \ d1\ =\ w\ <<\ k\ +\ 16\ |\ y\ <<\ k;}
\DoxyCodeLine{01171\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01172\ \ ret\_d:}
\DoxyCodeLine{01173\ \textcolor{preprocessor}{\#ifdef\ VAX}}
\DoxyCodeLine{01174\ \ \ \ \ \ \ \ \ word0(d)\ =\ d0\ >>\ 16\ |\ d0\ <<\ 16;}
\DoxyCodeLine{01175\ \ \ \ \ \ \ \ \ word1(d)\ =\ d1\ >>\ 16\ |\ d1\ <<\ 16;}
\DoxyCodeLine{01176\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01177\ \textcolor{preprocessor}{\#undef\ d0}}
\DoxyCodeLine{01178\ \textcolor{preprocessor}{\#undef\ d1}}
\DoxyCodeLine{01179\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01180\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ dval(d);}
\DoxyCodeLine{01181\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01182\ }
\DoxyCodeLine{01183\ \ \textcolor{keyword}{static}\ Bigint\ *}
\DoxyCodeLine{01184\ d2b}
\DoxyCodeLine{01185\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{01186\ \ \ \ \ \ \ \ \ (d,\ e,\ bits)\ \textcolor{keywordtype}{double}\ d;\ \textcolor{keywordtype}{int}\ *e,\ *bits;}
\DoxyCodeLine{01187\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01188\ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{double}\ \_d,\ \textcolor{keywordtype}{int}\ *e,\ \textcolor{keywordtype}{int}\ *bits)}
\DoxyCodeLine{01189\ \#endif}
\DoxyCodeLine{01190\ \{}
\DoxyCodeLine{01191\ \ \ \ \ \ \ \ \ Bigint\ *b;}
\DoxyCodeLine{01192\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ de,\ k;}
\DoxyCodeLine{01193\ \ \ \ \ \ \ \ \ ULong\ *x,\ y,\ z;}
\DoxyCodeLine{01194\ \ \ \ \ \ \ \ \ U\ d;}
\DoxyCodeLine{01195\ \textcolor{preprocessor}{\#ifndef\ Sudden\_Underflow}}
\DoxyCodeLine{01196\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ i;}
\DoxyCodeLine{01197\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01198\ \textcolor{preprocessor}{\#ifdef\ VAX}}
\DoxyCodeLine{01199\ \ \ \ \ \ \ \ \ ULong\ d0,\ d1;}
\DoxyCodeLine{01200\ \ \ \ \ \ \ \ \ d0\ =\ word0(d)\ >>\ 16\ |\ word0(d)\ <<\ 16;}
\DoxyCodeLine{01201\ \ \ \ \ \ \ \ \ d1\ =\ word1(d)\ >>\ 16\ |\ word1(d)\ <<\ 16;}
\DoxyCodeLine{01202\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01203\ \textcolor{preprocessor}{\#define\ d0\ word0(d)}}
\DoxyCodeLine{01204\ \textcolor{preprocessor}{\#define\ d1\ word1(d)}}
\DoxyCodeLine{01205\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01206\ \ \ \ \ \ \ \ \ dval(d)\ =\ \_d;}
\DoxyCodeLine{01207\ }
\DoxyCodeLine{01208\ \textcolor{preprocessor}{\#ifdef\ Pack\_32}}
\DoxyCodeLine{01209\ \ \ \ \ \ \ \ \ b\ =\ Balloc(1);}
\DoxyCodeLine{01210\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01211\ \ \ \ \ \ \ \ \ b\ =\ Balloc(2);}
\DoxyCodeLine{01212\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01213\ \ \ \ \ \ \ \ \ x\ =\ b-\/>x;}
\DoxyCodeLine{01214\ }
\DoxyCodeLine{01215\ \ \ \ \ \ \ \ \ z\ =\ d0\ \&\ Frac\_mask;}
\DoxyCodeLine{01216\ \ \ \ \ \ \ \ \ d0\ \&=\ 0x7fffffff;\ \ \ \ \ \ \ \textcolor{comment}{/*\ clear\ sign\ bit,\ which\ we\ ignore\ */}}
\DoxyCodeLine{01217\ \textcolor{preprocessor}{\#ifdef\ Sudden\_Underflow}}
\DoxyCodeLine{01218\ \ \ \ \ \ \ \ \ de\ =\ (int)(d0\ >>\ Exp\_shift);}
\DoxyCodeLine{01219\ \textcolor{preprocessor}{\#ifndef\ IBM}}
\DoxyCodeLine{01220\ \ \ \ \ \ \ \ \ z\ |=\ Exp\_msk11;}
\DoxyCodeLine{01221\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01222\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01223\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((de\ =\ (\textcolor{keywordtype}{int})(d0\ >>\ Exp\_shift)))}
\DoxyCodeLine{01224\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ |=\ Exp\_msk1;}
\DoxyCodeLine{01225\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01226\ \textcolor{preprocessor}{\#ifdef\ Pack\_32}}
\DoxyCodeLine{01227\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((y\ =\ d1))\ \{}
\DoxyCodeLine{01228\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((k\ =\ lo0bits(\&y)))\ \{}
\DoxyCodeLine{01229\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[0]\ =\ y\ |\ z\ <<\ (32\ -\/\ k);}
\DoxyCodeLine{01230\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ >>=\ k;}
\DoxyCodeLine{01231\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01232\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{01233\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[0]\ =\ y;}
\DoxyCodeLine{01234\ \textcolor{preprocessor}{\#ifndef\ Sudden\_Underflow}}
\DoxyCodeLine{01235\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\ =}
\DoxyCodeLine{01236\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01237\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b-\/>wds\ =\ (x[1]\ =\ z)\ ?\ 2\ :\ 1;}
\DoxyCodeLine{01238\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01239\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01240\ \textcolor{preprocessor}{\#ifdef\ DEBUG}}
\DoxyCodeLine{01241\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!z)}
\DoxyCodeLine{01242\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Bug(\textcolor{stringliteral}{"{}Zero\ passed\ to\ d2b"{}});}
\DoxyCodeLine{01243\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01244\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k\ =\ lo0bits(\&z);}
\DoxyCodeLine{01245\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[0]\ =\ z;}
\DoxyCodeLine{01246\ \textcolor{preprocessor}{\#ifndef\ Sudden\_Underflow}}
\DoxyCodeLine{01247\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\ =}
\DoxyCodeLine{01248\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01249\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b-\/>wds\ =\ 1;}
\DoxyCodeLine{01250\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 32;}
\DoxyCodeLine{01251\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01252\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01253\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (y\ =\ d1)\ \{}
\DoxyCodeLine{01254\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ =\ lo0bits(\&y))}
\DoxyCodeLine{01255\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ >=\ 16)\ \{}
\DoxyCodeLine{01256\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[0]\ =\ y\ |\ z\ <<\ 32\ -\/\ k\ \&\ 0xffff;}
\DoxyCodeLine{01257\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[1]\ =\ z\ >>\ k\ -\/\ 16\ \&\ 0xffff;}
\DoxyCodeLine{01258\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[2]\ =\ z\ >>\ k;}
\DoxyCodeLine{01259\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\ =\ 2;}
\DoxyCodeLine{01260\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01261\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01262\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[0]\ =\ y\ \&\ 0xffff;}
\DoxyCodeLine{01263\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[1]\ =\ y\ >>\ 16\ |\ z\ <<\ 16\ -\/\ k\ \&\ 0xffff;}
\DoxyCodeLine{01264\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[2]\ =\ z\ >>\ k\ \&\ 0xffff;}
\DoxyCodeLine{01265\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[3]\ =\ z\ >>\ k+16;}
\DoxyCodeLine{01266\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\ =\ 3;}
\DoxyCodeLine{01267\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01268\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01269\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[0]\ =\ y\ \&\ 0xffff;}
\DoxyCodeLine{01270\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[1]\ =\ y\ >>\ 16;}
\DoxyCodeLine{01271\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[2]\ =\ z\ \&\ 0xffff;}
\DoxyCodeLine{01272\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[3]\ =\ z\ >>\ 16;}
\DoxyCodeLine{01273\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\ =\ 3;}
\DoxyCodeLine{01274\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01275\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01276\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01277\ \textcolor{preprocessor}{\#ifdef\ DEBUG}}
\DoxyCodeLine{01278\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!z)}
\DoxyCodeLine{01279\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Bug(\textcolor{stringliteral}{"{}Zero\ passed\ to\ d2b"{}});}
\DoxyCodeLine{01280\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01281\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k\ =\ lo0bits(\&z);}
\DoxyCodeLine{01282\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ >=\ 16)\ \{}
\DoxyCodeLine{01283\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[0]\ =\ z;}
\DoxyCodeLine{01284\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\ =\ 0;}
\DoxyCodeLine{01285\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01286\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01287\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[0]\ =\ z\ \&\ 0xffff;}
\DoxyCodeLine{01288\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[1]\ =\ z\ >>\ 16;}
\DoxyCodeLine{01289\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\ =\ 1;}
\DoxyCodeLine{01290\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01291\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 32;}
\DoxyCodeLine{01292\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01293\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(!x[i])}
\DoxyCodeLine{01294\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -\/-\/i;}
\DoxyCodeLine{01295\ \ \ \ \ \ \ \ \ b-\/>wds\ =\ i\ +\ 1;}
\DoxyCodeLine{01296\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01297\ \textcolor{preprocessor}{\#ifndef\ Sudden\_Underflow}}
\DoxyCodeLine{01298\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (de)\ \{}
\DoxyCodeLine{01299\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01300\ \textcolor{preprocessor}{\#ifdef\ IBM}}
\DoxyCodeLine{01301\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *e\ =\ (de\ -\/\ Bias\ -\/\ (P-\/1)\ <<\ 2)\ +\ k;}
\DoxyCodeLine{01302\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *bits\ =\ 4*P\ +\ 8\ -\/\ k\ -\/\ hi0bits(word0(d)\ \&\ Frac\_mask);}
\DoxyCodeLine{01303\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01304\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *e\ =\ de\ -\/\ Bias\ -\/\ (P-\/1)\ +\ k;}
\DoxyCodeLine{01305\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *bits\ =\ P\ -\/\ k;}
\DoxyCodeLine{01306\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01307\ \textcolor{preprocessor}{\#ifndef\ Sudden\_Underflow}}
\DoxyCodeLine{01308\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01309\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01310\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *e\ =\ de\ -\/\ Bias\ -\/\ (P-\/1)\ +\ 1\ +\ k;}
\DoxyCodeLine{01311\ \textcolor{preprocessor}{\#ifdef\ Pack\_32}}
\DoxyCodeLine{01312\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *bits\ =\ 32*i\ -\/\ hi0bits(x[i-\/1]);}
\DoxyCodeLine{01313\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01314\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *bits\ =\ (i+2)*16\ -\/\ hi0bits(x[i]);}
\DoxyCodeLine{01315\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01316\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01317\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01318\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ b;}
\DoxyCodeLine{01319\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01320\ \textcolor{preprocessor}{\#undef\ d0}}
\DoxyCodeLine{01321\ \textcolor{preprocessor}{\#undef\ d1}}
\DoxyCodeLine{01322\ }
\DoxyCodeLine{01323\ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{double}}
\DoxyCodeLine{01324\ ratio}
\DoxyCodeLine{01325\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{01326\ \ \ \ \ \ \ \ \ (a,\ b)\ Bigint\ *a,\ *b;}
\DoxyCodeLine{01327\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01328\ \ \ \ \ \ \ \ \ (Bigint\ *a,\ Bigint\ *b)}
\DoxyCodeLine{01329\ \#endif}
\DoxyCodeLine{01330\ \{}
\DoxyCodeLine{01331\ \ \ \ \ \ \ \ \ U\ da,\ db;}
\DoxyCodeLine{01332\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ k,\ ka,\ kb;}
\DoxyCodeLine{01333\ }
\DoxyCodeLine{01334\ \ \ \ \ \ \ \ \ dval(da)\ =\ b2d(a,\ \&ka);}
\DoxyCodeLine{01335\ \ \ \ \ \ \ \ \ dval(db)\ =\ b2d(b,\ \&kb);}
\DoxyCodeLine{01336\ \textcolor{preprocessor}{\#ifdef\ Pack\_32}}
\DoxyCodeLine{01337\ \ \ \ \ \ \ \ \ k\ =\ ka\ -\/\ kb\ +\ 32*(a-\/>wds\ -\/\ b-\/>wds);}
\DoxyCodeLine{01338\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01339\ \ \ \ \ \ \ \ \ k\ =\ ka\ -\/\ kb\ +\ 16*(a-\/>wds\ -\/\ b-\/>wds);}
\DoxyCodeLine{01340\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01341\ \textcolor{preprocessor}{\#ifdef\ IBM}}
\DoxyCodeLine{01342\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ >\ 0)\ \{}
\DoxyCodeLine{01343\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(da)\ +=\ (k\ >>\ 2)*Exp\_msk1;}
\DoxyCodeLine{01344\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ \&=\ 3)}
\DoxyCodeLine{01345\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(da)\ *=\ 1\ <<\ k;}
\DoxyCodeLine{01346\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01347\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01348\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k\ =\ -\/k;}
\DoxyCodeLine{01349\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(db)\ +=\ (k\ >>\ 2)*Exp\_msk1;}
\DoxyCodeLine{01350\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ \&=\ 3)}
\DoxyCodeLine{01351\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(db)\ *=\ 1\ <<\ k;}
\DoxyCodeLine{01352\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01353\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01354\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ >\ 0)}
\DoxyCodeLine{01355\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(da)\ +=\ k*Exp\_msk1;}
\DoxyCodeLine{01356\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01357\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k\ =\ -\/k;}
\DoxyCodeLine{01358\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(db)\ +=\ k*Exp\_msk1;}
\DoxyCodeLine{01359\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01360\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01361\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ dval(da)\ /\ dval(db);}
\DoxyCodeLine{01362\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01363\ }
\DoxyCodeLine{01364\ \ \textcolor{keyword}{static}\ CONST\ \textcolor{keywordtype}{double}}
\DoxyCodeLine{01365\ tens[]\ =\ \{}
\DoxyCodeLine{01366\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 1e0,\ 1e1,\ 1e2,\ 1e3,\ 1e4,\ 1e5,\ 1e6,\ 1e7,\ 1e8,\ 1e9,}
\DoxyCodeLine{01367\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 1e10,\ 1e11,\ 1e12,\ 1e13,\ 1e14,\ 1e15,\ 1e16,\ 1e17,\ 1e18,\ 1e19,}
\DoxyCodeLine{01368\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 1e20,\ 1e21,\ 1e22}
\DoxyCodeLine{01369\ \textcolor{preprocessor}{\#ifdef\ VAX}}
\DoxyCodeLine{01370\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ,\ 1e23,\ 1e24}
\DoxyCodeLine{01371\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01372\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \};}
\DoxyCodeLine{01373\ }
\DoxyCodeLine{01374\ \ \textcolor{keyword}{static}\ CONST\ \textcolor{keywordtype}{double}}
\DoxyCodeLine{01375\ \textcolor{preprocessor}{\#ifdef\ IEEE\_Arith}}
\DoxyCodeLine{01376\ bigtens[]\ =\ \{\ 1e16,\ 1e32,\ 1e64,\ 1e128,\ 1e256\ \};}
\DoxyCodeLine{01377\ \textcolor{keyword}{static}\ CONST\ \textcolor{keywordtype}{double}\ tinytens[]\ =\ \{\ 1e-\/16,\ 1e-\/32,\ 1e-\/64,\ 1e-\/128,}
\DoxyCodeLine{01378\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{01379\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 9007199254740992.*9007199254740992.e-\/256}
\DoxyCodeLine{01380\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ =\ 2\string^106\ *\ 1e-\/53\ */}}
\DoxyCodeLine{01381\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01382\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 1e-\/256}
\DoxyCodeLine{01383\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01384\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \};}
\DoxyCodeLine{01385\ \textcolor{comment}{/*\ The\ factor\ of\ 2\string^53\ in\ tinytens[4]\ helps\ us\ avoid\ setting\ the\ underflow\ */}}
\DoxyCodeLine{01386\ \textcolor{comment}{/*\ flag\ unnecessarily.\ \ It\ leads\ to\ a\ song\ and\ dance\ at\ the\ end\ of\ strtod.\ */}}
\DoxyCodeLine{01387\ \textcolor{preprocessor}{\#define\ Scale\_Bit\ 0x10}}
\DoxyCodeLine{01388\ \textcolor{preprocessor}{\#define\ n\_bigtens\ 5}}
\DoxyCodeLine{01389\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01390\ \textcolor{preprocessor}{\#ifdef\ IBM}}
\DoxyCodeLine{01391\ bigtens[]\ =\ \{\ 1e16,\ 1e32,\ 1e64\ \};}
\DoxyCodeLine{01392\ \textcolor{keyword}{static}\ CONST\ \textcolor{keywordtype}{double}\ tinytens[]\ =\ \{\ 1e-\/16,\ 1e-\/32,\ 1e-\/64\ \};}
\DoxyCodeLine{01393\ \textcolor{preprocessor}{\#define\ n\_bigtens\ 3}}
\DoxyCodeLine{01394\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01395\ bigtens[]\ =\ \{\ 1e16,\ 1e32\ \};}
\DoxyCodeLine{01396\ \textcolor{keyword}{static}\ CONST\ \textcolor{keywordtype}{double}\ tinytens[]\ =\ \{\ 1e-\/16,\ 1e-\/32\ \};}
\DoxyCodeLine{01397\ \textcolor{preprocessor}{\#define\ n\_bigtens\ 2}}
\DoxyCodeLine{01398\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01399\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01400\ }
\DoxyCodeLine{01401\ \textcolor{preprocessor}{\#ifdef\ INFNAN\_CHECK}}
\DoxyCodeLine{01402\ }
\DoxyCodeLine{01403\ \textcolor{preprocessor}{\#ifndef\ NAN\_WORD0}}
\DoxyCodeLine{01404\ \textcolor{preprocessor}{\#define\ NAN\_WORD0\ 0x7ff80000}}
\DoxyCodeLine{01405\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01406\ }
\DoxyCodeLine{01407\ \textcolor{preprocessor}{\#ifndef\ NAN\_WORD1}}
\DoxyCodeLine{01408\ \textcolor{preprocessor}{\#define\ NAN\_WORD1\ 0}}
\DoxyCodeLine{01409\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01410\ }
\DoxyCodeLine{01411\ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{int}}
\DoxyCodeLine{01412\ match}
\DoxyCodeLine{01413\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{01414\ \ \ \ \ \ \ \ \ (sp,\ t)\ \textcolor{keywordtype}{char}\ **sp,\ *t;}
\DoxyCodeLine{01415\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01416\ \ \ \ \ \ \ \ \ (CONST\ \textcolor{keywordtype}{char}\ **sp,\ \textcolor{keywordtype}{char}\ *t)}
\DoxyCodeLine{01417\ \#endif}
\DoxyCodeLine{01418\ \{}
\DoxyCodeLine{01419\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ c,\ d;}
\DoxyCodeLine{01420\ \ \ \ \ \ \ \ \ CONST\ \textcolor{keywordtype}{char}\ *s\ =\ *sp;}
\DoxyCodeLine{01421\ }
\DoxyCodeLine{01422\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}((d\ =\ *t++))\ \{}
\DoxyCodeLine{01423\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((c\ =\ *++s)\ >=\ \textcolor{charliteral}{'A'}\ \&\&\ c\ <=\ \textcolor{charliteral}{'Z'})}
\DoxyCodeLine{01424\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ \textcolor{charliteral}{'a'}\ -\/\ \textcolor{charliteral}{'A'};}
\DoxyCodeLine{01425\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ !=\ d)}
\DoxyCodeLine{01426\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{01427\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01428\ \ \ \ \ \ \ \ \ *sp\ =\ s\ +\ 1;}
\DoxyCodeLine{01429\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 1;}
\DoxyCodeLine{01430\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01431\ }
\DoxyCodeLine{01432\ \textcolor{preprocessor}{\#ifndef\ No\_Hex\_NaN}}
\DoxyCodeLine{01433\ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}}
\DoxyCodeLine{01434\ hexnan}
\DoxyCodeLine{01435\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{01436\ \ \ \ \ \ \ \ \ (rvp,\ sp)\ \textcolor{keywordtype}{double}\ *rvp;\ CONST\ \textcolor{keywordtype}{char}\ **sp;}
\DoxyCodeLine{01437\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01438\ \ \ \ \ \ \ \ \ (U\ *rvp,\ CONST\ \textcolor{keywordtype}{char}\ **sp)}
\DoxyCodeLine{01439\ \#endif}
\DoxyCodeLine{01440\ \{}
\DoxyCodeLine{01441\ \ \ \ \ \ \ \ \ ULong\ c,\ x[2];}
\DoxyCodeLine{01442\ \ \ \ \ \ \ \ \ CONST\ \textcolor{keywordtype}{char}\ *s;}
\DoxyCodeLine{01443\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ havedig,\ udx0,\ xshift;}
\DoxyCodeLine{01444\ }
\DoxyCodeLine{01445\ \ \ \ \ \ \ \ \ x[0]\ =\ x[1]\ =\ 0;}
\DoxyCodeLine{01446\ \ \ \ \ \ \ \ \ havedig\ =\ xshift\ =\ 0;}
\DoxyCodeLine{01447\ \ \ \ \ \ \ \ \ udx0\ =\ 1;}
\DoxyCodeLine{01448\ \ \ \ \ \ \ \ \ s\ =\ *sp;}
\DoxyCodeLine{01449\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ allow\ optional\ initial\ 0x\ or\ 0X\ */}}
\DoxyCodeLine{01450\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}((c\ =\ *(CONST\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}*)(s+1))\ \&\&\ c\ <=\ \textcolor{charliteral}{'\ '})}
\DoxyCodeLine{01451\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ++s;}
\DoxyCodeLine{01452\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s[1]\ ==\ \textcolor{charliteral}{'0'}\ \&\&\ (s[2]\ ==\ \textcolor{charliteral}{'x'}\ ||\ s[2]\ ==\ \textcolor{charliteral}{'X'}))}
\DoxyCodeLine{01453\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ s\ +=\ 2;}
\DoxyCodeLine{01454\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}((c\ =\ *(CONST\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}*)++s))\ \{}
\DoxyCodeLine{01455\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ >=\ \textcolor{charliteral}{'0'}\ \&\&\ c\ <=\ \textcolor{charliteral}{'9'})}
\DoxyCodeLine{01456\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ -\/=\ \textcolor{charliteral}{'0'};}
\DoxyCodeLine{01457\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (c\ >=\ \textcolor{charliteral}{'a'}\ \&\&\ c\ <=\ \textcolor{charliteral}{'f'})}
\DoxyCodeLine{01458\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ 10\ -\/\ \textcolor{charliteral}{'a'};}
\DoxyCodeLine{01459\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (c\ >=\ \textcolor{charliteral}{'A'}\ \&\&\ c\ <=\ \textcolor{charliteral}{'F'})}
\DoxyCodeLine{01460\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ 10\ -\/\ \textcolor{charliteral}{'A'};}
\DoxyCodeLine{01461\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (c\ <=\ \textcolor{charliteral}{'\ '})\ \{}
\DoxyCodeLine{01462\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (udx0\ \&\&\ havedig)\ \{}
\DoxyCodeLine{01463\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ udx0\ =\ 0;}
\DoxyCodeLine{01464\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ xshift\ =\ 1;}
\DoxyCodeLine{01465\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01466\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{continue};}
\DoxyCodeLine{01467\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01468\ \textcolor{preprocessor}{\#ifdef\ GDTOA\_NON\_PEDANTIC\_NANCHECK}}
\DoxyCodeLine{01469\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (\textcolor{comment}{/*(*/}\ c\ ==\ \textcolor{charliteral}{')'}\ \&\&\ havedig)\ \{}
\DoxyCodeLine{01470\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *sp\ =\ s\ +\ 1;}
\DoxyCodeLine{01471\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{01472\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01473\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{01474\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return};\ \textcolor{comment}{/*\ invalid\ form:\ don't\ change\ *sp\ */}}
\DoxyCodeLine{01475\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01476\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01477\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{01478\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\textcolor{comment}{/*(*/}\ c\ ==\ \textcolor{charliteral}{')'})\ \{}
\DoxyCodeLine{01479\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *sp\ =\ s\ +\ 1;}
\DoxyCodeLine{01480\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{01481\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01482\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{while}((c\ =\ *++s));}
\DoxyCodeLine{01483\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{01484\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01485\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01486\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ havedig\ =\ 1;}
\DoxyCodeLine{01487\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (xshift)\ \{}
\DoxyCodeLine{01488\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ xshift\ =\ 0;}
\DoxyCodeLine{01489\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[0]\ =\ x[1];}
\DoxyCodeLine{01490\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[1]\ =\ 0;}
\DoxyCodeLine{01491\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01492\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (udx0)}
\DoxyCodeLine{01493\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[0]\ =\ (x[0]\ <<\ 4)\ |\ (x[1]\ >>\ 28);}
\DoxyCodeLine{01494\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[1]\ =\ (x[1]\ <<\ 4)\ |\ c;}
\DoxyCodeLine{01495\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01496\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((x[0]\ \&=\ 0xfffff)\ ||\ x[1])\ \{}
\DoxyCodeLine{01497\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(*rvp)\ =\ Exp\_mask\ |\ x[0];}
\DoxyCodeLine{01498\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(*rvp)\ =\ x[1];}
\DoxyCodeLine{01499\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01500\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01501\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*No\_Hex\_NaN*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{01502\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*\ INFNAN\_CHECK\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{01503\ }
\DoxyCodeLine{01504\ \ \textcolor{keywordtype}{double}}
\DoxyCodeLine{01505\ sb\_strtod}
\DoxyCodeLine{01506\ \textcolor{preprocessor}{\#ifdef\ KR\_headers}}
\DoxyCodeLine{01507\ \ \ \ \ \ \ \ \ (s00,\ se)\ CONST\ \textcolor{keywordtype}{char}\ *s00;\ \textcolor{keywordtype}{char}\ **se;}
\DoxyCodeLine{01508\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01509\ \ \ \ \ \ \ \ \ (CONST\ \textcolor{keywordtype}{char}\ *s00,\ \textcolor{keywordtype}{char}\ **se)}
\DoxyCodeLine{01510\ \#endif}
\DoxyCodeLine{01511\ \{}
\DoxyCodeLine{01512\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{01513\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ scale;}
\DoxyCodeLine{01514\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01515\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ bb2,\ bb5,\ bbe,\ bd2,\ bd5,\ bbbits,\ bs2,\ c,\ dsign,}
\DoxyCodeLine{01516\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ e,\ e1,\ esign,\ i,\ j,\ k,\ nd,\ nd0,\ nf,\ nz,\ nz0,\ sign;}
\DoxyCodeLine{01517\ \ \ \ \ \ \ \ \ CONST\ \textcolor{keywordtype}{char}\ *s,\ *s0,\ *s1;}
\DoxyCodeLine{01518\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ aadj,\ adj;}
\DoxyCodeLine{01519\ \ \ \ \ \ \ \ \ U\ rv,\ rv0,\ aadj1;}
\DoxyCodeLine{01520\ \ \ \ \ \ \ \ \ Long\ L;}
\DoxyCodeLine{01521\ \ \ \ \ \ \ \ \ ULong\ y,\ z;}
\DoxyCodeLine{01522\ \ \ \ \ \ \ \ \ Bigint\ *bb,\ *bb1,\ *bd,\ *bd0,\ *bs,\ *delta;}
\DoxyCodeLine{01523\ \textcolor{preprocessor}{\#ifdef\ SET\_INEXACT}}
\DoxyCodeLine{01524\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ inexact,\ oldinexact;}
\DoxyCodeLine{01525\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01526\ \textcolor{preprocessor}{\#ifdef\ Honor\_FLT\_ROUNDS}}
\DoxyCodeLine{01527\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ rounding;}
\DoxyCodeLine{01528\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01529\ \textcolor{preprocessor}{\#ifdef\ USE\_LOCALE}}
\DoxyCodeLine{01530\ \ \ \ \ \ \ \ \ CONST\ \textcolor{keywordtype}{char}\ *s2;}
\DoxyCodeLine{01531\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01532\ }
\DoxyCodeLine{01533\ \ \ \ \ \ \ \ \ sign\ =\ nz0\ =\ nz\ =\ 0;}
\DoxyCodeLine{01534\ \ \ \ \ \ \ \ \ dval(rv)\ =\ 0.;}
\DoxyCodeLine{01535\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(s\ =\ s00;;s++)\ \textcolor{keywordflow}{switch}(*s)\ \{}
\DoxyCodeLine{01536\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'-\/'}:}
\DoxyCodeLine{01537\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sign\ =\ 1;}
\DoxyCodeLine{01538\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ no\ break\ */}}
\DoxyCodeLine{01539\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'+'}:}
\DoxyCodeLine{01540\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*++s)}
\DoxyCodeLine{01541\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ break2;}
\DoxyCodeLine{01542\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ no\ break\ */}}
\DoxyCodeLine{01543\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:}
\DoxyCodeLine{01544\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ret0;}
\DoxyCodeLine{01545\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'\(\backslash\)t'}:}
\DoxyCodeLine{01546\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'\(\backslash\)n'}:}
\DoxyCodeLine{01547\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'\(\backslash\)v'}:}
\DoxyCodeLine{01548\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'\(\backslash\)f'}:}
\DoxyCodeLine{01549\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'\(\backslash\)r'}:}
\DoxyCodeLine{01550\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'\ '}:}
\DoxyCodeLine{01551\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{continue};}
\DoxyCodeLine{01552\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:}
\DoxyCodeLine{01553\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ break2;}
\DoxyCodeLine{01554\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01555\ \ break2:}
\DoxyCodeLine{01556\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*s\ ==\ \textcolor{charliteral}{'0'})\ \{}
\DoxyCodeLine{01557\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nz0\ =\ 1;}
\DoxyCodeLine{01558\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(*++s\ ==\ \textcolor{charliteral}{'0'})\ ;}
\DoxyCodeLine{01559\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!*s)}
\DoxyCodeLine{01560\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ret;}
\DoxyCodeLine{01561\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01562\ \ \ \ \ \ \ \ \ s0\ =\ s;}
\DoxyCodeLine{01563\ \ \ \ \ \ \ \ \ y\ =\ z\ =\ 0;}
\DoxyCodeLine{01564\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(nd\ =\ nf\ =\ 0;\ (c\ =\ *s)\ >=\ \textcolor{charliteral}{'0'}\ \&\&\ c\ <=\ \textcolor{charliteral}{'9'};\ nd++,\ s++)}
\DoxyCodeLine{01565\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (nd\ <\ 9)}
\DoxyCodeLine{01566\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ 10*y\ +\ c\ -\/\ \textcolor{charliteral}{'0'};}
\DoxyCodeLine{01567\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (nd\ <\ 16)}
\DoxyCodeLine{01568\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ 10*z\ +\ c\ -\/\ \textcolor{charliteral}{'0'};}
\DoxyCodeLine{01569\ \ \ \ \ \ \ \ \ nd0\ =\ nd;}
\DoxyCodeLine{01570\ \textcolor{preprocessor}{\#ifdef\ USE\_LOCALE}}
\DoxyCodeLine{01571\ \ \ \ \ \ \ \ \ s1\ =\ localeconv()-\/>decimal\_point;}
\DoxyCodeLine{01572\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ ==\ *s1)\ \{}
\DoxyCodeLine{01573\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ =\ \textcolor{charliteral}{'.'};}
\DoxyCodeLine{01574\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*++s1)\ \{}
\DoxyCodeLine{01575\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ s2\ =\ s;}
\DoxyCodeLine{01576\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(;;)\ \{}
\DoxyCodeLine{01577\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*++s2\ !=\ *s1)\ \{}
\DoxyCodeLine{01578\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ =\ 0;}
\DoxyCodeLine{01579\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{01580\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01581\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!*++s1)\ \{}
\DoxyCodeLine{01582\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ s\ =\ s2;}
\DoxyCodeLine{01583\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{01584\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01585\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01586\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01587\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01588\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01589\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ ==\ \textcolor{charliteral}{'.'})\ \{}
\DoxyCodeLine{01590\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ =\ *++s;}
\DoxyCodeLine{01591\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!nd)\ \{}
\DoxyCodeLine{01592\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(;\ c\ ==\ \textcolor{charliteral}{'0'};\ c\ =\ *++s)}
\DoxyCodeLine{01593\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nz++;}
\DoxyCodeLine{01594\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ >\ \textcolor{charliteral}{'0'}\ \&\&\ c\ <=\ \textcolor{charliteral}{'9'})\ \{}
\DoxyCodeLine{01595\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ s0\ =\ s;}
\DoxyCodeLine{01596\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nf\ +=\ nz;}
\DoxyCodeLine{01597\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nz\ =\ 0;}
\DoxyCodeLine{01598\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ have\_dig;}
\DoxyCodeLine{01599\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01600\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ dig\_done;}
\DoxyCodeLine{01601\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01602\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(;\ c\ >=\ \textcolor{charliteral}{'0'}\ \&\&\ c\ <=\ \textcolor{charliteral}{'9'};\ c\ =\ *++s)\ \{}
\DoxyCodeLine{01603\ \ have\_dig:}
\DoxyCodeLine{01604\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nz++;}
\DoxyCodeLine{01605\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ -\/=\ \textcolor{charliteral}{'0'})\ \{}
\DoxyCodeLine{01606\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nf\ +=\ nz;}
\DoxyCodeLine{01607\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(i\ =\ 1;\ i\ <\ nz;\ i++)}
\DoxyCodeLine{01608\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (nd++\ <\ 9)}
\DoxyCodeLine{01609\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ *=\ 10;}
\DoxyCodeLine{01610\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (nd\ <=\ DBL\_DIG\ +\ 1)}
\DoxyCodeLine{01611\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ *=\ 10;}
\DoxyCodeLine{01612\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (nd++\ <\ 9)}
\DoxyCodeLine{01613\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ 10*y\ +\ c;}
\DoxyCodeLine{01614\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (nd\ <=\ DBL\_DIG\ +\ 1)}
\DoxyCodeLine{01615\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ 10*z\ +\ c;}
\DoxyCodeLine{01616\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nz\ =\ 0;}
\DoxyCodeLine{01617\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01618\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01619\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01620\ \ dig\_done:}
\DoxyCodeLine{01621\ \ \ \ \ \ \ \ \ e\ =\ 0;}
\DoxyCodeLine{01622\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ ==\ \textcolor{charliteral}{'e'}\ ||\ c\ ==\ \textcolor{charliteral}{'E'})\ \{}
\DoxyCodeLine{01623\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!nd\ \&\&\ !nz\ \&\&\ !nz0)\ \{}
\DoxyCodeLine{01624\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ret0;}
\DoxyCodeLine{01625\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01626\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ s00\ =\ s;}
\DoxyCodeLine{01627\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ esign\ =\ 0;}
\DoxyCodeLine{01628\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}(c\ =\ *++s)\ \{}
\DoxyCodeLine{01629\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'-\/'}:}
\DoxyCodeLine{01630\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ esign\ =\ 1;}
\DoxyCodeLine{01631\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'+'}:}
\DoxyCodeLine{01632\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ =\ *++s;}
\DoxyCodeLine{01633\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01634\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ >=\ \textcolor{charliteral}{'0'}\ \&\&\ c\ <=\ \textcolor{charliteral}{'9'})\ \{}
\DoxyCodeLine{01635\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}(c\ ==\ \textcolor{charliteral}{'0'})}
\DoxyCodeLine{01636\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ =\ *++s;}
\DoxyCodeLine{01637\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ >\ \textcolor{charliteral}{'0'}\ \&\&\ c\ <=\ \textcolor{charliteral}{'9'})\ \{}
\DoxyCodeLine{01638\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\ =\ c\ -\/\ \textcolor{charliteral}{'0'};}
\DoxyCodeLine{01639\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ s1\ =\ s;}
\DoxyCodeLine{01640\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}((c\ =\ *++s)\ >=\ \textcolor{charliteral}{'0'}\ \&\&\ c\ <=\ \textcolor{charliteral}{'9'})}
\DoxyCodeLine{01641\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\ =\ 10*L\ +\ c\ -\/\ \textcolor{charliteral}{'0'};}
\DoxyCodeLine{01642\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\ -\/\ s1\ >\ 8\ ||\ L\ >\ 19999)}
\DoxyCodeLine{01643\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Avoid\ confusion\ from\ exponents}}
\DoxyCodeLine{01644\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ so\ large\ that\ e\ might\ overflow.}}
\DoxyCodeLine{01645\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{01646\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ e\ =\ 19999;\ \textcolor{comment}{/*\ safe\ for\ 16\ bit\ ints\ */}}
\DoxyCodeLine{01647\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{01648\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ e\ =\ (int)L;}
\DoxyCodeLine{01649\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (esign)}
\DoxyCodeLine{01650\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ e\ =\ -\/e;}
\DoxyCodeLine{01651\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01652\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{01653\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ e\ =\ 0;}
\DoxyCodeLine{01654\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01655\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{01656\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ s\ =\ s00;}
\DoxyCodeLine{01657\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01658\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!nd)\ \{}
\DoxyCodeLine{01659\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!nz\ \&\&\ !nz0)\ \{}
\DoxyCodeLine{01660\ \textcolor{preprocessor}{\#ifdef\ INFNAN\_CHECK}}
\DoxyCodeLine{01661\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Check\ for\ Nan\ and\ Infinity\ */}}
\DoxyCodeLine{01662\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}(c)\ \{}
\DoxyCodeLine{01663\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'i'}:}
\DoxyCodeLine{01664\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'I'}:}
\DoxyCodeLine{01665\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (match(\&s,\textcolor{stringliteral}{"{}nf"{}}))\ \{}
\DoxyCodeLine{01666\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -\/-\/s;}
\DoxyCodeLine{01667\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!match(\&s,\textcolor{stringliteral}{"{}inity"{}}))}
\DoxyCodeLine{01668\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ++s;}
\DoxyCodeLine{01669\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ =\ 0x7ff00000;}
\DoxyCodeLine{01670\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv)\ =\ 0;}
\DoxyCodeLine{01671\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ret;}
\DoxyCodeLine{01672\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01673\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{01674\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'n'}:}
\DoxyCodeLine{01675\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'N'}:}
\DoxyCodeLine{01676\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (match(\&s,\ \textcolor{stringliteral}{"{}an"{}}))\ \{}
\DoxyCodeLine{01677\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ =\ NAN\_WORD0;}
\DoxyCodeLine{01678\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv)\ =\ NAN\_WORD1;}
\DoxyCodeLine{01679\ \textcolor{preprocessor}{\#ifndef\ No\_Hex\_NaN}}
\DoxyCodeLine{01680\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*s\ ==\ \textcolor{charliteral}{'('})\ \textcolor{comment}{/*)*/}}
\DoxyCodeLine{01681\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ hexnan(\&rv,\ \&s);}
\DoxyCodeLine{01682\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01683\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ret;}
\DoxyCodeLine{01684\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01685\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01686\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*\ INFNAN\_CHECK\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{01687\ \ ret0:}
\DoxyCodeLine{01688\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ s\ =\ s00;}
\DoxyCodeLine{01689\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sign\ =\ 0;}
\DoxyCodeLine{01690\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01691\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ret;}
\DoxyCodeLine{01692\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01693\ \ \ \ \ \ \ \ \ e1\ =\ e\ -\/=\ nf;}
\DoxyCodeLine{01694\ }
\DoxyCodeLine{01695\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Now\ we\ have\ nd0\ digits,\ starting\ at\ s0,\ followed\ by\ a}}
\DoxyCodeLine{01696\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ decimal\ point,\ followed\ by\ nd-\/nd0\ digits.\ \ The\ number\ we're}}
\DoxyCodeLine{01697\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ after\ is\ the\ integer\ represented\ by\ those\ digits\ times}}
\DoxyCodeLine{01698\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ 10**e\ */}}
\DoxyCodeLine{01699\ }
\DoxyCodeLine{01700\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!nd0)}
\DoxyCodeLine{01701\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nd0\ =\ nd;}
\DoxyCodeLine{01702\ \ \ \ \ \ \ \ \ k\ =\ nd\ <\ DBL\_DIG\ +\ 1\ ?\ nd\ :\ DBL\_DIG\ +\ 1;}
\DoxyCodeLine{01703\ \ \ \ \ \ \ \ \ dval(rv)\ =\ y;}
\DoxyCodeLine{01704\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ >\ 9)\ \{}
\DoxyCodeLine{01705\ \textcolor{preprocessor}{\#ifdef\ SET\_INEXACT}}
\DoxyCodeLine{01706\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ >\ DBL\_DIG)}
\DoxyCodeLine{01707\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ oldinexact\ =\ get\_inexact();}
\DoxyCodeLine{01708\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01709\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ =\ tens[k\ -\/\ 9]\ *\ dval(rv)\ +\ z;}
\DoxyCodeLine{01710\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01711\ \ \ \ \ \ \ \ \ bd0\ =\ 0;}
\DoxyCodeLine{01712\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (nd\ <=\ DBL\_DIG}
\DoxyCodeLine{01713\ \#ifndef\ RND\_PRODQUOT}
\DoxyCodeLine{01714\ \#ifndef\ Honor\_FLT\_ROUNDS}
\DoxyCodeLine{01715\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \&\&\ Flt\_Rounds\ ==\ 1}
\DoxyCodeLine{01716\ \#endif}
\DoxyCodeLine{01717\ \#endif}
\DoxyCodeLine{01718\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ )\ \{}
\DoxyCodeLine{01719\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!e)}
\DoxyCodeLine{01720\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ret;}
\DoxyCodeLine{01721\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (e\ >\ 0)\ \{}
\DoxyCodeLine{01722\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (e\ <=\ Ten\_pmax)\ \{}
\DoxyCodeLine{01723\ \textcolor{preprocessor}{\#ifdef\ VAX}}
\DoxyCodeLine{01724\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ vax\_ovfl\_check;}
\DoxyCodeLine{01725\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01726\ \textcolor{preprocessor}{\#ifdef\ Honor\_FLT\_ROUNDS}}
\DoxyCodeLine{01727\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ round\ correctly\ FLT\_ROUNDS\ =\ 2\ or\ 3\ */}}
\DoxyCodeLine{01728\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sign)\ \{}
\DoxyCodeLine{01729\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ rv\ =\ -\/rv;}
\DoxyCodeLine{01730\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sign\ =\ 0;}
\DoxyCodeLine{01731\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01732\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01733\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ rv\ =\ */}\ rounded\_product(dval(rv),\ tens[e]);}
\DoxyCodeLine{01734\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ret;}
\DoxyCodeLine{01735\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01736\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01737\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\ =\ DBL\_DIG\ -\/\ nd;}
\DoxyCodeLine{01738\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (e\ <=\ Ten\_pmax\ +\ i)\ \{}
\DoxyCodeLine{01739\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ A\ fancier\ test\ would\ sometimes\ let\ us\ do}}
\DoxyCodeLine{01740\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ this\ for\ larger\ i\ values.}}
\DoxyCodeLine{01741\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{01742\ \textcolor{preprocessor}{\#ifdef\ Honor\_FLT\_ROUNDS}}
\DoxyCodeLine{01743\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ round\ correctly\ FLT\_ROUNDS\ =\ 2\ or\ 3\ */}}
\DoxyCodeLine{01744\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sign)\ \{}
\DoxyCodeLine{01745\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ rv\ =\ -\/rv;}
\DoxyCodeLine{01746\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sign\ =\ 0;}
\DoxyCodeLine{01747\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01748\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01749\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ e\ -\/=\ i;}
\DoxyCodeLine{01750\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ *=\ tens[i];}
\DoxyCodeLine{01751\ \textcolor{preprocessor}{\#ifdef\ VAX}}
\DoxyCodeLine{01752\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ VAX\ exponent\ range\ is\ so\ narrow\ we\ must}}
\DoxyCodeLine{01753\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ worry\ about\ overflow\ here...}}
\DoxyCodeLine{01754\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{01755\ \ vax\_ovfl\_check:}
\DoxyCodeLine{01756\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ -\/=\ P*Exp\_msk1;}
\DoxyCodeLine{01757\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ rv\ =\ */}\ rounded\_product(dval(rv),\ tens[e]);}
\DoxyCodeLine{01758\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((word0(rv)\ \&\ Exp\_mask)}
\DoxyCodeLine{01759\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ >\ Exp\_msk1*(DBL\_MAX\_EXP+Bias-\/1-\/P))}
\DoxyCodeLine{01760\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ovfl;}
\DoxyCodeLine{01761\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ +=\ P*Exp\_msk1;}
\DoxyCodeLine{01762\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01763\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ rv\ =\ */}\ rounded\_product(dval(rv),\ tens[e]);}
\DoxyCodeLine{01764\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01765\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ret;}
\DoxyCodeLine{01766\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01767\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01768\ \textcolor{preprocessor}{\#ifndef\ Inaccurate\_Divide}}
\DoxyCodeLine{01769\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (e\ >=\ -\/Ten\_pmax)\ \{}
\DoxyCodeLine{01770\ \textcolor{preprocessor}{\#ifdef\ Honor\_FLT\_ROUNDS}}
\DoxyCodeLine{01771\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ round\ correctly\ FLT\_ROUNDS\ =\ 2\ or\ 3\ */}}
\DoxyCodeLine{01772\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sign)\ \{}
\DoxyCodeLine{01773\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ rv\ =\ -\/rv;}
\DoxyCodeLine{01774\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sign\ =\ 0;}
\DoxyCodeLine{01775\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01776\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01777\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ rv\ =\ */}\ rounded\_quotient(dval(rv),\ tens[-\/e]);}
\DoxyCodeLine{01778\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ret;}
\DoxyCodeLine{01779\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01780\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01781\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01782\ \ \ \ \ \ \ \ \ e1\ +=\ nd\ -\/\ k;}
\DoxyCodeLine{01783\ }
\DoxyCodeLine{01784\ \textcolor{preprocessor}{\#ifdef\ IEEE\_Arith}}
\DoxyCodeLine{01785\ \textcolor{preprocessor}{\#ifdef\ SET\_INEXACT}}
\DoxyCodeLine{01786\ \ \ \ \ \ \ \ \ inexact\ =\ 1;}
\DoxyCodeLine{01787\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (k\ <=\ DBL\_DIG)}
\DoxyCodeLine{01788\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ oldinexact\ =\ get\_inexact();}
\DoxyCodeLine{01789\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01790\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{01791\ \ \ \ \ \ \ \ \ scale\ =\ 0;}
\DoxyCodeLine{01792\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01793\ \textcolor{preprocessor}{\#ifdef\ Honor\_FLT\_ROUNDS}}
\DoxyCodeLine{01794\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((rounding\ =\ Flt\_Rounds)\ >=\ 2)\ \{}
\DoxyCodeLine{01795\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sign)}
\DoxyCodeLine{01796\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ rounding\ =\ rounding\ ==\ 2\ ?\ 0\ :\ 2;}
\DoxyCodeLine{01797\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{01798\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (rounding\ !=\ 2)}
\DoxyCodeLine{01799\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ rounding\ =\ 0;}
\DoxyCodeLine{01800\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01801\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01802\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*IEEE\_Arith*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{01803\ }
\DoxyCodeLine{01804\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Get\ starting\ approximation\ =\ rv\ *\ 10**e1\ */}}
\DoxyCodeLine{01805\ }
\DoxyCodeLine{01806\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (e1\ >\ 0)\ \{}
\DoxyCodeLine{01807\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((i\ =\ e1\ \&\ 15))}
\DoxyCodeLine{01808\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ *=\ tens[i];}
\DoxyCodeLine{01809\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (e1\ \&=\ \string~15)\ \{}
\DoxyCodeLine{01810\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (e1\ >\ DBL\_MAX\_10\_EXP)\ \{}
\DoxyCodeLine{01811\ \ ovfl:}
\DoxyCodeLine{01812\ \textcolor{preprocessor}{\#ifndef\ NO\_ERRNO}}
\DoxyCodeLine{01813\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ errno\ =\ ERANGE;}
\DoxyCodeLine{01814\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01815\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Can't\ trust\ HUGE\_VAL\ */}}
\DoxyCodeLine{01816\ \textcolor{preprocessor}{\#ifdef\ IEEE\_Arith}}
\DoxyCodeLine{01817\ \textcolor{preprocessor}{\#ifdef\ Honor\_FLT\_ROUNDS}}
\DoxyCodeLine{01818\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}(rounding)\ \{}
\DoxyCodeLine{01819\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:\ \textcolor{comment}{/*\ toward\ 0\ */}}
\DoxyCodeLine{01820\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:\ \textcolor{comment}{/*\ toward\ -\/infinity\ */}}
\DoxyCodeLine{01821\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ =\ Big0;}
\DoxyCodeLine{01822\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv)\ =\ Big1;}
\DoxyCodeLine{01823\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{01824\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:}
\DoxyCodeLine{01825\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ =\ Exp\_mask;}
\DoxyCodeLine{01826\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv)\ =\ 0;}
\DoxyCodeLine{01827\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01828\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{/*Honor\_FLT\_ROUNDS*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{01829\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ =\ Exp\_mask;}
\DoxyCodeLine{01830\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv)\ =\ 0;}
\DoxyCodeLine{01831\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*Honor\_FLT\_ROUNDS*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{01832\ \textcolor{preprocessor}{\#ifdef\ SET\_INEXACT}}
\DoxyCodeLine{01833\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ set\ overflow\ bit\ */}}
\DoxyCodeLine{01834\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv0)\ =\ 1e300;}
\DoxyCodeLine{01835\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv0)\ *=\ dval(rv0);}
\DoxyCodeLine{01836\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01837\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{/*IEEE\_Arith*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{01838\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ =\ Big0;}
\DoxyCodeLine{01839\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv)\ =\ Big1;}
\DoxyCodeLine{01840\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*IEEE\_Arith*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{01841\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (bd0)}
\DoxyCodeLine{01842\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ retfree;}
\DoxyCodeLine{01843\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ret;}
\DoxyCodeLine{01844\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01845\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ e1\ >>=\ 4;}
\DoxyCodeLine{01846\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(j\ =\ 0;\ e1\ >\ 1;\ j++,\ e1\ >>=\ 1)}
\DoxyCodeLine{01847\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (e1\ \&\ 1)}
\DoxyCodeLine{01848\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ *=\ bigtens[j];}
\DoxyCodeLine{01849\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ The\ last\ multiplication\ could\ overflow.\ */}}
\DoxyCodeLine{01850\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ -\/=\ P*Exp\_msk1;}
\DoxyCodeLine{01851\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ *=\ bigtens[j];}
\DoxyCodeLine{01852\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((z\ =\ word0(rv)\ \&\ Exp\_mask)}
\DoxyCodeLine{01853\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ >\ Exp\_msk1*(DBL\_MAX\_EXP+Bias-\/P))}
\DoxyCodeLine{01854\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ovfl;}
\DoxyCodeLine{01855\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (z\ >\ Exp\_msk1*(DBL\_MAX\_EXP+Bias-\/1-\/P))\ \{}
\DoxyCodeLine{01856\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ set\ to\ largest\ number\ */}}
\DoxyCodeLine{01857\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ (Can't\ trust\ DBL\_MAX)\ */}}
\DoxyCodeLine{01858\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ =\ Big0;}
\DoxyCodeLine{01859\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv)\ =\ Big1;}
\DoxyCodeLine{01860\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01861\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{01862\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ +=\ P*Exp\_msk1;}
\DoxyCodeLine{01863\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01864\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01865\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (e1\ <\ 0)\ \{}
\DoxyCodeLine{01866\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ e1\ =\ -\/e1;}
\DoxyCodeLine{01867\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((i\ =\ e1\ \&\ 15))}
\DoxyCodeLine{01868\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ /=\ tens[i];}
\DoxyCodeLine{01869\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (e1\ >>=\ 4)\ \{}
\DoxyCodeLine{01870\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (e1\ >=\ 1\ <<\ n\_bigtens)}
\DoxyCodeLine{01871\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ undfl;}
\DoxyCodeLine{01872\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{01873\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (e1\ \&\ Scale\_Bit)}
\DoxyCodeLine{01874\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ scale\ =\ 2*P;}
\DoxyCodeLine{01875\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(j\ =\ 0;\ e1\ >\ 0;\ j++,\ e1\ >>=\ 1)}
\DoxyCodeLine{01876\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (e1\ \&\ 1)}
\DoxyCodeLine{01877\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ *=\ tinytens[j];}
\DoxyCodeLine{01878\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (scale\ \&\&\ (j\ =\ 2*P\ +\ 1\ -\/\ ((word0(rv)\ \&\ Exp\_mask)}
\DoxyCodeLine{01879\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ >>\ Exp\_shift))\ >\ 0)\ \{}
\DoxyCodeLine{01880\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ scaled\ rv\ is\ denormal;\ zap\ j\ low\ bits\ */}}
\DoxyCodeLine{01881\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (j\ >=\ 32)\ \{}
\DoxyCodeLine{01882\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv)\ =\ 0;}
\DoxyCodeLine{01883\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (j\ >=\ 53)}
\DoxyCodeLine{01884\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ =\ (P+2)*Exp\_msk1;}
\DoxyCodeLine{01885\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{01886\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ \&=\ 0xffffffff\ <<\ (j-\/32);}
\DoxyCodeLine{01887\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01888\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{01889\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv)\ \&=\ 0xffffffff\ <<\ j;}
\DoxyCodeLine{01890\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01891\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01892\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(j\ =\ 0;\ e1\ >\ 1;\ j++,\ e1\ >>=\ 1)}
\DoxyCodeLine{01893\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (e1\ \&\ 1)}
\DoxyCodeLine{01894\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ *=\ tinytens[j];}
\DoxyCodeLine{01895\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ The\ last\ multiplication\ could\ underflow.\ */}}
\DoxyCodeLine{01896\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv0)\ =\ dval(rv);}
\DoxyCodeLine{01897\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ *=\ tinytens[j];}
\DoxyCodeLine{01898\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!dval(rv))\ \{}
\DoxyCodeLine{01899\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ =\ 2.*dval(rv0);}
\DoxyCodeLine{01900\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ *=\ tinytens[j];}
\DoxyCodeLine{01901\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01902\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!dval(rv))\ \{}
\DoxyCodeLine{01903\ \ undfl:}
\DoxyCodeLine{01904\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ =\ 0.;}
\DoxyCodeLine{01905\ \textcolor{preprocessor}{\#ifndef\ NO\_ERRNO}}
\DoxyCodeLine{01906\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ errno\ =\ ERANGE;}
\DoxyCodeLine{01907\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01908\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (bd0)}
\DoxyCodeLine{01909\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ retfree;}
\DoxyCodeLine{01910\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ret;}
\DoxyCodeLine{01911\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01912\ \textcolor{preprocessor}{\#ifndef\ Avoid\_Underflow}}
\DoxyCodeLine{01913\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ =\ Tiny0;}
\DoxyCodeLine{01914\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv)\ =\ Tiny1;}
\DoxyCodeLine{01915\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ The\ refinement\ below\ will\ clean}}
\DoxyCodeLine{01916\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ this\ approximation\ up.}}
\DoxyCodeLine{01917\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{01918\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01919\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01920\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01921\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01922\ }
\DoxyCodeLine{01923\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Now\ the\ hard\ part\ -\/-\/\ adjusting\ rv\ to\ the\ correct\ value.*/}}
\DoxyCodeLine{01924\ }
\DoxyCodeLine{01925\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Put\ digits\ into\ bd:\ true\ value\ =\ bd\ *\ 10\string^e\ */}}
\DoxyCodeLine{01926\ }
\DoxyCodeLine{01927\ \ \ \ \ \ \ \ \ bd0\ =\ s2b(s0,\ nd0,\ nd,\ y);}
\DoxyCodeLine{01928\ }
\DoxyCodeLine{01929\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(;;)\ \{}
\DoxyCodeLine{01930\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bd\ =\ Balloc(bd0-\/>k);}
\DoxyCodeLine{01931\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Bcopy(bd,\ bd0);}
\DoxyCodeLine{01932\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bb\ =\ d2b(dval(rv),\ \&bbe,\ \&bbbits);\ \ \ \ \ \ \textcolor{comment}{/*\ rv\ =\ bb\ *\ 2\string^bbe\ */}}
\DoxyCodeLine{01933\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bs\ =\ i2b(1);}
\DoxyCodeLine{01934\ }
\DoxyCodeLine{01935\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (e\ >=\ 0)\ \{}
\DoxyCodeLine{01936\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bb2\ =\ bb5\ =\ 0;}
\DoxyCodeLine{01937\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bd2\ =\ bd5\ =\ e;}
\DoxyCodeLine{01938\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01939\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01940\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bb2\ =\ bb5\ =\ -\/e;}
\DoxyCodeLine{01941\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bd2\ =\ bd5\ =\ 0;}
\DoxyCodeLine{01942\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01943\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (bbe\ >=\ 0)}
\DoxyCodeLine{01944\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bb2\ +=\ bbe;}
\DoxyCodeLine{01945\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{01946\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bd2\ -\/=\ bbe;}
\DoxyCodeLine{01947\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bs2\ =\ bb2;}
\DoxyCodeLine{01948\ \textcolor{preprocessor}{\#ifdef\ Honor\_FLT\_ROUNDS}}
\DoxyCodeLine{01949\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (rounding\ !=\ 1)}
\DoxyCodeLine{01950\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bs2++;}
\DoxyCodeLine{01951\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01952\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{01953\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ j\ =\ bbe\ -\/\ scale;}
\DoxyCodeLine{01954\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\ =\ j\ +\ bbbits\ -\/\ 1;\ \ \ \ \ \textcolor{comment}{/*\ logb(rv)\ */}}
\DoxyCodeLine{01955\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (i\ <\ Emin)\ \ \ \textcolor{comment}{/*\ denormal\ */}}
\DoxyCodeLine{01956\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ j\ +=\ P\ -\/\ Emin;}
\DoxyCodeLine{01957\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{01958\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ j\ =\ P\ +\ 1\ -\/\ bbbits;}
\DoxyCodeLine{01959\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{/*Avoid\_Underflow*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{01960\ \textcolor{preprocessor}{\#ifdef\ Sudden\_Underflow}}
\DoxyCodeLine{01961\ \textcolor{preprocessor}{\#ifdef\ IBM}}
\DoxyCodeLine{01962\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ j\ =\ 1\ +\ 4*P\ -\/\ 3\ -\/\ bbbits\ +\ ((bbe\ +\ bbbits\ -\/\ 1)\ \&\ 3);}
\DoxyCodeLine{01963\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{01964\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ j\ =\ P\ +\ 1\ -\/\ bbbits;}
\DoxyCodeLine{01965\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01966\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{/*Sudden\_Underflow*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{01967\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ j\ =\ bbe;}
\DoxyCodeLine{01968\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\ =\ j\ +\ bbbits\ -\/\ 1;\ \ \ \ \ \textcolor{comment}{/*\ logb(rv)\ */}}
\DoxyCodeLine{01969\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (i\ <\ Emin)\ \ \ \textcolor{comment}{/*\ denormal\ */}}
\DoxyCodeLine{01970\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ j\ +=\ P\ -\/\ Emin;}
\DoxyCodeLine{01971\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{01972\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ j\ =\ P\ +\ 1\ -\/\ bbbits;}
\DoxyCodeLine{01973\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*Sudden\_Underflow*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{01974\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*Avoid\_Underflow*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{01975\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bb2\ +=\ j;}
\DoxyCodeLine{01976\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bd2\ +=\ j;}
\DoxyCodeLine{01977\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{01978\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bd2\ +=\ scale;}
\DoxyCodeLine{01979\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{01980\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\ =\ bb2\ <\ bd2\ ?\ bb2\ :\ bd2;}
\DoxyCodeLine{01981\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (i\ >\ bs2)}
\DoxyCodeLine{01982\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\ =\ bs2;}
\DoxyCodeLine{01983\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (i\ >\ 0)\ \{}
\DoxyCodeLine{01984\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bb2\ -\/=\ i;}
\DoxyCodeLine{01985\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bd2\ -\/=\ i;}
\DoxyCodeLine{01986\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bs2\ -\/=\ i;}
\DoxyCodeLine{01987\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01988\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (bb5\ >\ 0)\ \{}
\DoxyCodeLine{01989\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bs\ =\ pow5mult(bs,\ bb5);}
\DoxyCodeLine{01990\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bb1\ =\ mult(bs,\ bb);}
\DoxyCodeLine{01991\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Bfree(bb);}
\DoxyCodeLine{01992\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bb\ =\ bb1;}
\DoxyCodeLine{01993\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01994\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (bb2\ >\ 0)}
\DoxyCodeLine{01995\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bb\ =\ lshift(bb,\ bb2);}
\DoxyCodeLine{01996\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (bd5\ >\ 0)}
\DoxyCodeLine{01997\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bd\ =\ pow5mult(bd,\ bd5);}
\DoxyCodeLine{01998\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (bd2\ >\ 0)}
\DoxyCodeLine{01999\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bd\ =\ lshift(bd,\ bd2);}
\DoxyCodeLine{02000\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (bs2\ >\ 0)}
\DoxyCodeLine{02001\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ bs\ =\ lshift(bs,\ bs2);}
\DoxyCodeLine{02002\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ delta\ =\ diff(bb,\ bd);}
\DoxyCodeLine{02003\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dsign\ =\ delta-\/>sign;}
\DoxyCodeLine{02004\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ delta-\/>sign\ =\ 0;}
\DoxyCodeLine{02005\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\ =\ cmp(delta,\ bs);}
\DoxyCodeLine{02006\ \textcolor{preprocessor}{\#ifdef\ Honor\_FLT\_ROUNDS}}
\DoxyCodeLine{02007\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (rounding\ !=\ 1)\ \{}
\DoxyCodeLine{02008\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (i\ <\ 0)\ \{}
\DoxyCodeLine{02009\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Error\ is\ less\ than\ an\ ulp\ */}}
\DoxyCodeLine{02010\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!delta-\/>x[0]\ \&\&\ delta-\/>wds\ <=\ 1)\ \{}
\DoxyCodeLine{02011\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ exact\ */}}
\DoxyCodeLine{02012\ \textcolor{preprocessor}{\#ifdef\ SET\_INEXACT}}
\DoxyCodeLine{02013\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ inexact\ =\ 0;}
\DoxyCodeLine{02014\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02015\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{02016\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02017\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (rounding)\ \{}
\DoxyCodeLine{02018\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (dsign)\ \{}
\DoxyCodeLine{02019\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ adj\ =\ 1.;}
\DoxyCodeLine{02020\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ apply\_adj;}
\DoxyCodeLine{02021\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02022\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02023\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (!dsign)\ \{}
\DoxyCodeLine{02024\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ adj\ =\ -\/1.;}
\DoxyCodeLine{02025\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!word1(rv)}
\DoxyCodeLine{02026\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \&\&\ !(word0(rv)\ \&\ Frac\_mask))\ \{}
\DoxyCodeLine{02027\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ word0(rv)\ \&\ Exp\_mask;}
\DoxyCodeLine{02028\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{02029\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!scale\ ||\ y\ >\ 2*P*Exp\_msk1)}
\DoxyCodeLine{02030\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{02031\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (y)}
\DoxyCodeLine{02032\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02033\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{02034\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ delta\ =\ lshift(delta,Log2P);}
\DoxyCodeLine{02035\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (cmp(delta,\ bs)\ <=\ 0)}
\DoxyCodeLine{02036\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ adj\ =\ -\/0.5;}
\DoxyCodeLine{02037\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02038\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02039\ \ apply\_adj:}
\DoxyCodeLine{02040\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{02041\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (scale\ \&\&\ (y\ =\ word0(rv)\ \&\ Exp\_mask)}
\DoxyCodeLine{02042\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <=\ 2*P*Exp\_msk1)}
\DoxyCodeLine{02043\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(adj)\ +=\ (2*P+1)*Exp\_msk1\ -\/\ y;}
\DoxyCodeLine{02044\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{02045\ \textcolor{preprocessor}{\#ifdef\ Sudden\_Underflow}}
\DoxyCodeLine{02046\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((word0(rv)\ \&\ Exp\_mask)\ <=}
\DoxyCodeLine{02047\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ P*Exp\_msk1)\ \{}
\DoxyCodeLine{02048\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ +=\ P*Exp\_msk1;}
\DoxyCodeLine{02049\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ +=\ adj*ulp(dval(rv));}
\DoxyCodeLine{02050\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ -\/=\ P*Exp\_msk1;}
\DoxyCodeLine{02051\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02052\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{02053\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*Sudden\_Underflow*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{02054\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*Avoid\_Underflow*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{02055\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ +=\ adj*ulp(dval(rv));}
\DoxyCodeLine{02056\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02057\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{02058\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02059\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ adj\ =\ ratio(delta,\ bs);}
\DoxyCodeLine{02060\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (adj\ <\ 1.)}
\DoxyCodeLine{02061\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ adj\ =\ 1.;}
\DoxyCodeLine{02062\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (adj\ <=\ 0x7ffffffe)\ \{}
\DoxyCodeLine{02063\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ adj\ =\ rounding\ ?\ ceil(adj)\ :\ floor(adj);\ */}}
\DoxyCodeLine{02064\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ adj;}
\DoxyCodeLine{02065\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (y\ !=\ adj)\ \{}
\DoxyCodeLine{02066\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!((rounding>>1)\ \string^\ dsign))}
\DoxyCodeLine{02067\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y++;}
\DoxyCodeLine{02068\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ adj\ =\ y;}
\DoxyCodeLine{02069\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02070\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02071\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{02072\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (scale\ \&\&\ (y\ =\ word0(rv)\ \&\ Exp\_mask)\ <=\ 2*P*Exp\_msk1)}
\DoxyCodeLine{02073\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(adj)\ +=\ (2*P+1)*Exp\_msk1\ -\/\ y;}
\DoxyCodeLine{02074\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{02075\ \textcolor{preprocessor}{\#ifdef\ Sudden\_Underflow}}
\DoxyCodeLine{02076\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((word0(rv)\ \&\ Exp\_mask)\ <=\ P*Exp\_msk1)\ \{}
\DoxyCodeLine{02077\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ +=\ P*Exp\_msk1;}
\DoxyCodeLine{02078\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ adj\ *=\ ulp(dval(rv));}
\DoxyCodeLine{02079\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (dsign)}
\DoxyCodeLine{02080\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ +=\ adj;}
\DoxyCodeLine{02081\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{02082\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ -\/=\ adj;}
\DoxyCodeLine{02083\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ -\/=\ P*Exp\_msk1;}
\DoxyCodeLine{02084\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ cont;}
\DoxyCodeLine{02085\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02086\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*Sudden\_Underflow*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{02087\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*Avoid\_Underflow*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{02088\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ adj\ *=\ ulp(dval(rv));}
\DoxyCodeLine{02089\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (dsign)}
\DoxyCodeLine{02090\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ +=\ adj;}
\DoxyCodeLine{02091\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{02092\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ -\/=\ adj;}
\DoxyCodeLine{02093\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ cont;}
\DoxyCodeLine{02094\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02095\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*Honor\_FLT\_ROUNDS*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{02096\ }
\DoxyCodeLine{02097\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (i\ <\ 0)\ \{}
\DoxyCodeLine{02098\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Error\ is\ less\ than\ half\ an\ ulp\ -\/-\/\ check\ for}}
\DoxyCodeLine{02099\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ special\ case\ of\ mantissa\ a\ power\ of\ two.}}
\DoxyCodeLine{02100\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{02101\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (dsign\ ||\ word1(rv)\ ||\ word0(rv)\ \&\ Bndry\_mask}
\DoxyCodeLine{02102\ \#ifdef\ IEEE\_Arith}
\DoxyCodeLine{02103\ \#ifdef\ Avoid\_Underflow}
\DoxyCodeLine{02104\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ (word0(rv)\ \&\ Exp\_mask)\ <=\ (2*P+1)*Exp\_msk1}
\DoxyCodeLine{02105\ \#\textcolor{keywordflow}{else}}
\DoxyCodeLine{02106\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ (word0(rv)\ \&\ Exp\_mask)\ <=\ Exp\_msk1}
\DoxyCodeLine{02107\ \#endif}
\DoxyCodeLine{02108\ \#endif}
\DoxyCodeLine{02109\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ )\ \{}
\DoxyCodeLine{02110\ \textcolor{preprocessor}{\#ifdef\ SET\_INEXACT}}
\DoxyCodeLine{02111\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!delta-\/>x[0]\ \&\&\ delta-\/>wds\ <=\ 1)}
\DoxyCodeLine{02112\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ inexact\ =\ 0;}
\DoxyCodeLine{02113\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02114\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{02115\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02116\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!delta-\/>x[0]\ \&\&\ delta-\/>wds\ <=\ 1)\ \{}
\DoxyCodeLine{02117\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ exact\ result\ */}}
\DoxyCodeLine{02118\ \textcolor{preprocessor}{\#ifdef\ SET\_INEXACT}}
\DoxyCodeLine{02119\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ inexact\ =\ 0;}
\DoxyCodeLine{02120\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02121\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{02122\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02123\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ delta\ =\ lshift(delta,Log2P);}
\DoxyCodeLine{02124\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (cmp(delta,\ bs)\ >\ 0)}
\DoxyCodeLine{02125\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ drop\_down;}
\DoxyCodeLine{02126\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{02127\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02128\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (i\ ==\ 0)\ \{}
\DoxyCodeLine{02129\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ exactly\ half-\/way\ between\ */}}
\DoxyCodeLine{02130\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (dsign)\ \{}
\DoxyCodeLine{02131\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((word0(rv)\ \&\ Bndry\_mask1)\ ==\ Bndry\_mask1}
\DoxyCodeLine{02132\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \&\&\ \ word1(rv)\ ==\ (}
\DoxyCodeLine{02133\ \#ifdef\ Avoid\_Underflow}
\DoxyCodeLine{02134\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (scale\ \&\&\ (y\ =\ word0(rv)\ \&\ Exp\_mask)\ <=\ 2*P*Exp\_msk1)}
\DoxyCodeLine{02135\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ?\ (0xffffffff\ \&\ (0xffffffff\ <<\ (2*P+1-\/(y>>Exp\_shift))))\ :}
\DoxyCodeLine{02136\ \#endif}
\DoxyCodeLine{02137\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0xffffffff))\ \{}
\DoxyCodeLine{02138\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*boundary\ case\ -\/-\/\ increment\ exponent*/}}
\DoxyCodeLine{02139\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ =\ (word0(rv)\ \&\ Exp\_mask)}
\DoxyCodeLine{02140\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ +\ Exp\_msk1}
\DoxyCodeLine{02141\ \#ifdef\ IBM}
\DoxyCodeLine{02142\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ |\ Exp\_msk1\ >>\ 4}
\DoxyCodeLine{02143\ \#endif}
\DoxyCodeLine{02144\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ;}
\DoxyCodeLine{02145\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv)\ =\ 0;}
\DoxyCodeLine{02146\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{02147\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dsign\ =\ 0;}
\DoxyCodeLine{02148\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02149\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{02150\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02151\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02152\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (!(word0(rv)\ \&\ Bndry\_mask)\ \&\&\ !word1(rv))\ \{}
\DoxyCodeLine{02153\ \ drop\_down:}
\DoxyCodeLine{02154\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ boundary\ case\ -\/-\/\ decrement\ exponent\ */}}
\DoxyCodeLine{02155\ \textcolor{preprocessor}{\#ifdef\ Sudden\_Underflow\ }\textcolor{comment}{/*\{\{*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{02156\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\ =\ word0(rv)\ \&\ Exp\_mask;}
\DoxyCodeLine{02157\ \textcolor{preprocessor}{\#ifdef\ IBM}}
\DoxyCodeLine{02158\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (L\ <\ \ Exp\_msk1)}
\DoxyCodeLine{02159\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{02160\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{02161\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (L\ <=\ (scale\ ?\ (2*P+1)*Exp\_msk1\ :\ Exp\_msk1))}
\DoxyCodeLine{02162\ \#else}
\DoxyCodeLine{02163\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ if\ (L\ <=\ Exp\_msk1)}
\DoxyCodeLine{02164\ \#endif\ \textcolor{comment}{/*Avoid\_Underflow*/}}
\DoxyCodeLine{02165\ \#endif\ \textcolor{comment}{/*IBM*/}}
\DoxyCodeLine{02166\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ goto\ undfl;}
\DoxyCodeLine{02167\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\ -\/=\ Exp\_msk1;}
\DoxyCodeLine{02168\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{/*Sudden\_Underflow\}\{*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{02169\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{02170\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (scale)\ \{}
\DoxyCodeLine{02171\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\ =\ word0(rv)\ \&\ Exp\_mask;}
\DoxyCodeLine{02172\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (L\ <=\ (2*P+1)*Exp\_msk1)\ \{}
\DoxyCodeLine{02173\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (L\ >\ (P+2)*Exp\_msk1)}
\DoxyCodeLine{02174\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ round\ even\ ==>\ */}}
\DoxyCodeLine{02175\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ accept\ rv\ */}}
\DoxyCodeLine{02176\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{02177\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ rv\ =\ smallest\ denormal\ */}}
\DoxyCodeLine{02178\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ undfl;}
\DoxyCodeLine{02179\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02180\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02181\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*Avoid\_Underflow*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{02182\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\ =\ (word0(rv)\ \&\ Exp\_mask)\ -\/\ Exp\_msk1;}
\DoxyCodeLine{02183\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*Sudden\_Underflow\}\}*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{02184\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ =\ L\ |\ Bndry\_mask1;}
\DoxyCodeLine{02185\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv)\ =\ 0xffffffff;}
\DoxyCodeLine{02186\ \textcolor{preprocessor}{\#ifdef\ IBM}}
\DoxyCodeLine{02187\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ cont;}
\DoxyCodeLine{02188\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{02189\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{02190\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02191\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02192\ \textcolor{preprocessor}{\#ifndef\ ROUND\_BIASED}}
\DoxyCodeLine{02193\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!(word1(rv)\ \&\ LSB))}
\DoxyCodeLine{02194\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{02195\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02196\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (dsign)}
\DoxyCodeLine{02197\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ +=\ ulp(dval(rv));}
\DoxyCodeLine{02198\ \textcolor{preprocessor}{\#ifndef\ ROUND\_BIASED}}
\DoxyCodeLine{02199\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{02200\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ -\/=\ ulp(dval(rv));}
\DoxyCodeLine{02201\ \textcolor{preprocessor}{\#ifndef\ Sudden\_Underflow}}
\DoxyCodeLine{02202\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!dval(rv))}
\DoxyCodeLine{02203\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ undfl;}
\DoxyCodeLine{02204\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02205\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02206\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{02207\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dsign\ =\ 1\ -\/\ dsign;}
\DoxyCodeLine{02208\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02209\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02210\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{02211\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02212\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((aadj\ =\ ratio(delta,\ bs))\ <=\ 2.)\ \{}
\DoxyCodeLine{02213\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (dsign)}
\DoxyCodeLine{02214\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ aadj\ =\ dval(aadj1)\ =\ 1.;}
\DoxyCodeLine{02215\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (word1(rv)\ ||\ word0(rv)\ \&\ Bndry\_mask)\ \{}
\DoxyCodeLine{02216\ \textcolor{preprocessor}{\#ifndef\ Sudden\_Underflow}}
\DoxyCodeLine{02217\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (word1(rv)\ ==\ Tiny1\ \&\&\ !word0(rv))}
\DoxyCodeLine{02218\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ undfl;}
\DoxyCodeLine{02219\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02220\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ aadj\ =\ 1.;}
\DoxyCodeLine{02221\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(aadj1)\ =\ -\/1.;}
\DoxyCodeLine{02222\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02223\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{02224\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ special\ case\ -\/-\/\ power\ of\ FLT\_RADIX\ to\ be\ */}}
\DoxyCodeLine{02225\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ rounded\ down...\ */}}
\DoxyCodeLine{02226\ }
\DoxyCodeLine{02227\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (aadj\ <\ 2./FLT\_RADIX)}
\DoxyCodeLine{02228\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ aadj\ =\ 1./FLT\_RADIX;}
\DoxyCodeLine{02229\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{02230\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ aadj\ *=\ 0.5;}
\DoxyCodeLine{02231\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(aadj1)\ =\ -\/aadj;}
\DoxyCodeLine{02232\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02233\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02234\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{02235\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ aadj\ *=\ 0.5;}
\DoxyCodeLine{02236\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(aadj1)\ =\ dsign\ ?\ aadj\ :\ -\/aadj;}
\DoxyCodeLine{02237\ \textcolor{preprocessor}{\#ifdef\ Check\_FLT\_ROUNDS}}
\DoxyCodeLine{02238\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}(Rounding)\ \{}
\DoxyCodeLine{02239\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:\ \textcolor{comment}{/*\ towards\ +infinity\ */}}
\DoxyCodeLine{02240\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(aadj1)\ -\/=\ 0.5;}
\DoxyCodeLine{02241\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{02242\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:\ \textcolor{comment}{/*\ towards\ 0\ */}}
\DoxyCodeLine{02243\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:\ \textcolor{comment}{/*\ towards\ -\/infinity\ */}}
\DoxyCodeLine{02244\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(aadj1)\ +=\ 0.5;}
\DoxyCodeLine{02245\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02246\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{02247\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (Flt\_Rounds\ ==\ 0)}
\DoxyCodeLine{02248\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(aadj1)\ +=\ 0.5;}
\DoxyCodeLine{02249\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*Check\_FLT\_ROUNDS*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{02250\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02251\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ word0(rv)\ \&\ Exp\_mask;}
\DoxyCodeLine{02252\ }
\DoxyCodeLine{02253\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Check\ for\ overflow\ */}}
\DoxyCodeLine{02254\ }
\DoxyCodeLine{02255\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (y\ ==\ Exp\_msk1*(DBL\_MAX\_EXP+Bias-\/1))\ \{}
\DoxyCodeLine{02256\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv0)\ =\ dval(rv);}
\DoxyCodeLine{02257\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ -\/=\ P*Exp\_msk1;}
\DoxyCodeLine{02258\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ adj\ =\ dval(aadj1)\ *\ ulp(dval(rv));}
\DoxyCodeLine{02259\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ +=\ adj;}
\DoxyCodeLine{02260\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((word0(rv)\ \&\ Exp\_mask)\ >=}
\DoxyCodeLine{02261\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Exp\_msk1*(DBL\_MAX\_EXP+Bias-\/P))\ \{}
\DoxyCodeLine{02262\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (word0(rv0)\ ==\ Big0\ \&\&\ word1(rv0)\ ==\ Big1)}
\DoxyCodeLine{02263\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ ovfl;}
\DoxyCodeLine{02264\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ =\ Big0;}
\DoxyCodeLine{02265\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv)\ =\ Big1;}
\DoxyCodeLine{02266\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ cont;}
\DoxyCodeLine{02267\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02268\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{02269\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ +=\ P*Exp\_msk1;}
\DoxyCodeLine{02270\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02271\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{02272\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{02273\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (scale\ \&\&\ y\ <=\ 2*P*Exp\_msk1)\ \{}
\DoxyCodeLine{02274\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (aadj\ <=\ 0x7fffffff)\ \{}
\DoxyCodeLine{02275\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((z\ =\ (uint32)aadj)\ <=\ 0)}
\DoxyCodeLine{02276\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ 1;}
\DoxyCodeLine{02277\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ aadj\ =\ z;}
\DoxyCodeLine{02278\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(aadj1)\ =\ dsign\ ?\ aadj\ :\ -\/aadj;}
\DoxyCodeLine{02279\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02280\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(aadj1)\ +=\ (2*P+1)*Exp\_msk1\ -\/\ y;}
\DoxyCodeLine{02281\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02282\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ adj\ =\ dval(aadj1)\ *\ ulp(dval(rv));}
\DoxyCodeLine{02283\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ +=\ adj;}
\DoxyCodeLine{02284\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{02285\ \textcolor{preprocessor}{\#ifdef\ Sudden\_Underflow}}
\DoxyCodeLine{02286\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((word0(rv)\ \&\ Exp\_mask)\ <=\ P*Exp\_msk1)\ \{}
\DoxyCodeLine{02287\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv0)\ =\ dval(rv);}
\DoxyCodeLine{02288\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ +=\ P*Exp\_msk1;}
\DoxyCodeLine{02289\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ adj\ =\ aadj1\ *\ ulp(dval(rv));}
\DoxyCodeLine{02290\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ +=\ adj;}
\DoxyCodeLine{02291\ \textcolor{preprocessor}{\#ifdef\ IBM}}
\DoxyCodeLine{02292\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((word0(rv)\ \&\ Exp\_mask)\ <\ \ P*Exp\_msk1)}
\DoxyCodeLine{02293\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{02294\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((word0(rv)\ \&\ Exp\_mask)\ <=\ P*Exp\_msk1)}
\DoxyCodeLine{02295\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02296\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{02297\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (word0(rv0)\ ==\ Tiny0}
\DoxyCodeLine{02298\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \&\&\ word1(rv0)\ ==\ Tiny1)}
\DoxyCodeLine{02299\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ undfl;}
\DoxyCodeLine{02300\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ =\ Tiny0;}
\DoxyCodeLine{02301\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv)\ =\ Tiny1;}
\DoxyCodeLine{02302\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ cont;}
\DoxyCodeLine{02303\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02304\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}}
\DoxyCodeLine{02305\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv)\ -\/=\ P*Exp\_msk1;}
\DoxyCodeLine{02306\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02307\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{02308\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ adj\ =\ aadj1\ *\ ulp(dval(rv));}
\DoxyCodeLine{02309\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ +=\ adj;}
\DoxyCodeLine{02310\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02311\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{/*Sudden\_Underflow*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{02312\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Compute\ adj\ so\ that\ the\ IEEE\ rounding\ rules\ will}}
\DoxyCodeLine{02313\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ correctly\ round\ rv\ +\ adj\ in\ some\ half-\/way\ cases.}}
\DoxyCodeLine{02314\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ If\ rv\ *\ ulp(rv)\ is\ denormalized\ (i.e.,}}
\DoxyCodeLine{02315\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ y\ <=\ (P-\/1)*Exp\_msk1),\ we\ must\ adjust\ aadj\ to\ avoid}}
\DoxyCodeLine{02316\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ trouble\ from\ bits\ lost\ to\ denormalization;}}
\DoxyCodeLine{02317\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ example:\ 1.2e-\/307\ .}}
\DoxyCodeLine{02318\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{02319\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (y\ <=\ (P-\/1)*Exp\_msk1\ \&\&\ aadj\ >\ 1.)\ \{}
\DoxyCodeLine{02320\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ aadj1\ =\ (double)(\textcolor{keywordtype}{int})(aadj\ +\ 0.5);}
\DoxyCodeLine{02321\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!dsign)}
\DoxyCodeLine{02322\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ aadj1\ =\ -\/aadj1;}
\DoxyCodeLine{02323\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02324\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ adj\ =\ aadj1\ *\ ulp(dval(rv));}
\DoxyCodeLine{02325\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ +=\ adj;}
\DoxyCodeLine{02326\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*Sudden\_Underflow*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{02327\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*Avoid\_Underflow*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{02328\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02329\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ word0(rv)\ \&\ Exp\_mask;}
\DoxyCodeLine{02330\ \textcolor{preprocessor}{\#ifndef\ SET\_INEXACT}}
\DoxyCodeLine{02331\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{02332\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!scale)}
\DoxyCodeLine{02333\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02334\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (y\ ==\ z)\ \{}
\DoxyCodeLine{02335\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Can\ we\ stop\ now?\ */}}
\DoxyCodeLine{02336\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ L\ =\ (Long)aadj;}
\DoxyCodeLine{02337\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ aadj\ -\/=\ L;}
\DoxyCodeLine{02338\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ The\ tolerances\ below\ are\ conservative.\ */}}
\DoxyCodeLine{02339\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (dsign\ ||\ word1(rv)\ ||\ word0(rv)\ \&\ Bndry\_mask)\ \{}
\DoxyCodeLine{02340\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (aadj\ <\ .4999999\ ||\ aadj\ >\ .5000001)}
\DoxyCodeLine{02341\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{02342\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02343\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (aadj\ <\ .4999999/FLT\_RADIX)}
\DoxyCodeLine{02344\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{02345\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02346\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02347\ \ cont:}
\DoxyCodeLine{02348\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Bfree(bb);}
\DoxyCodeLine{02349\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Bfree(bd);}
\DoxyCodeLine{02350\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Bfree(bs);}
\DoxyCodeLine{02351\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Bfree(delta);}
\DoxyCodeLine{02352\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02353\ \textcolor{preprocessor}{\#ifdef\ SET\_INEXACT}}
\DoxyCodeLine{02354\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (inexact)\ \{}
\DoxyCodeLine{02355\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!oldinexact)\ \{}
\DoxyCodeLine{02356\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv0)\ =\ Exp\_1\ +\ (70\ <<\ Exp\_shift);}
\DoxyCodeLine{02357\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv0)\ =\ 0;}
\DoxyCodeLine{02358\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv0)\ +=\ 1.;}
\DoxyCodeLine{02359\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02360\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02361\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (!oldinexact)}
\DoxyCodeLine{02362\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ clear\_inexact();}
\DoxyCodeLine{02363\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02364\ \textcolor{preprocessor}{\#ifdef\ Avoid\_Underflow}}
\DoxyCodeLine{02365\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (scale)\ \{}
\DoxyCodeLine{02366\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word0(rv0)\ =\ Exp\_1\ -\/\ 2*P*Exp\_msk1;}
\DoxyCodeLine{02367\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ word1(rv0)\ =\ 0;}
\DoxyCodeLine{02368\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv)\ *=\ dval(rv0);}
\DoxyCodeLine{02369\ \textcolor{preprocessor}{\#ifndef\ NO\_ERRNO}}
\DoxyCodeLine{02370\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ try\ to\ avoid\ the\ bug\ of\ testing\ an\ 8087\ register\ value\ */}}
\DoxyCodeLine{02371\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (word0(rv)\ ==\ 0\ \&\&\ word1(rv)\ ==\ 0)}
\DoxyCodeLine{02372\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ errno\ =\ ERANGE;}
\DoxyCodeLine{02373\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02374\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02375\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*\ Avoid\_Underflow\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{02376\ \textcolor{preprocessor}{\#ifdef\ SET\_INEXACT}}
\DoxyCodeLine{02377\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (inexact\ \&\&\ !(word0(rv)\ \&\ Exp\_mask))\ \{}
\DoxyCodeLine{02378\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ set\ underflow\ bit\ */}}
\DoxyCodeLine{02379\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv0)\ =\ 1e-\/300;}
\DoxyCodeLine{02380\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dval(rv0)\ *=\ dval(rv0);}
\DoxyCodeLine{02381\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02382\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{02383\ \ retfree:}
\DoxyCodeLine{02384\ \ \ \ \ \ \ \ \ Bfree(bb);}
\DoxyCodeLine{02385\ \ \ \ \ \ \ \ \ Bfree(bd);}
\DoxyCodeLine{02386\ \ \ \ \ \ \ \ \ Bfree(bs);}
\DoxyCodeLine{02387\ \ \ \ \ \ \ \ \ Bfree(bd0);}
\DoxyCodeLine{02388\ \ \ \ \ \ \ \ \ Bfree(delta);}
\DoxyCodeLine{02389\ \ ret:}
\DoxyCodeLine{02390\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (se)}
\DoxyCodeLine{02391\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *se\ =\ (\textcolor{keywordtype}{char}\ *)s;}
\DoxyCodeLine{02392\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ sign\ ?\ -\/dval(rv)\ :\ dval(rv);}
\DoxyCodeLine{02393\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{02394\ }
\DoxyCodeLine{02395\ \textcolor{preprocessor}{\#ifdef\ \_\_cplusplus}}
\DoxyCodeLine{02396\ \}}
\DoxyCodeLine{02397\ \textcolor{preprocessor}{\#endif}}

\end{DoxyCode}
