linux/include/math-emu/op-common.h
<<
ptiov3./spa > v3./form > v3.a ptiov3 href="../linux+v3.7.4/include/math-emu.12-common.h">ptiov3.img src="../.static/gfx/right.png" alt=">>">pt./spa >pt.spa class="lxr_search">ptioptiov3.input typon>hidden" namon>navtarget" option>">ptiov3.input typon>text" namon>search" idn>search">ptiov3.butt2submit">Search v3./form > ./spa >pt.spa class="lxr_prefs" > v3.a href="+prefs?return=include/math-emu.12-common.h"ptiov3 onclick="return ajax_prefs();">ptiov3Prefs> v3./a>pt./spa >iov3 3./div >iov3 3.form ac" ="ajax+*" method="post" onsubmit="return false;">pt.input typon>hidden" namon>ajax_lookup" idn>ajax_lookup" option>">piov3 3./form >piov3 3.div class="headingbott2m">
iov3
iov3 v3 3.div idn>search_results" class="search_results"> v >iov3 3./div > .div idn>content">> .div idn>file_contents"
2c/b1/c8a7571bcccf4879017b96d4f599a89e3141_3/0" L1" class="line" namon>L1">3 31./a>.spa  class="comment">/* Software floating-point emula"
	 . Common opera"
	 s../spa  >L2" class="line" namon>L2">3 32./a>.spa  class="comment">3 3Copyright (C) 1997,1998,1999 Free Software Founda"
	 , Inc../spa  >L3" class="line" namon>L3">3 33./a>.spa  class="comment">3 3This file is part of the GNU C Library../spa  >L4" class="line" namon>L4">3 34./a>.spa  class="comment">3 3Contributed by Richard Henderson (rth@cygnus.com),./spa  >L5" class="line" namon>L5">3 35./a>.spa  class="comment">3 3333333333333333Jakub Jelinek (jj@ultra.linux.cz),./spa  >L6" class="line" namon>L6">3 36./a>.spa  class="comment">3 3333333333333333David S. Miller (davem@redhat.com) and./spa  >L7" class="line" namon>L7">3 37./a>.spa  class="comment">3 3333333333333333Peter Maydell (pmaydell@chiark.greenend.org.uk)../spa  >L8" class="line" namon>L8">3 38./a>pL9" class="line" namon>L9">3 39./a>.spa  class="comment">3 3The GNU C Library is free software; you ca  redistribute it and/or./spa  >L10" class="line" namon>L10">3 .18.a>.spa  class="comment">3 3modify it under the terms of the GNU Library General Public License as./spa  >L11" class="line" namon>L11">3 11./a>.spa  class="comment">3 3published by the Free Software Founda"
	 ; either vers12L12" class="line" namon>L12">3 12./a>.spa  class="comment">3 3License, or (at your 12"
	 ) any la"er vers12<../spa  >L13" class="line" namon>L13">3 13./a>pL14" class="line" namon>L14">3 14./a>.spa  class="comment">3 3The GNU C Library is distributed in the hope that it will be useful,./spa  >L15" class="line" namon>L15">3 15./a>.spa  class="comment">3 3but WITHOUT ANY WARRANTY; without even the implied warranty of./spa  >L16" class="line" namon>L16">3 16./a>.spa  class="comment">3 3MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU./spa  >L17" class="line" namon>L17">3 17./a>.spa  class="comment">3 3Library General Public License for3more details../spa  >L18" class="line" namon>L18">3 18./a>pL19" class="line" namon>L19">3 19./a>.spa  class="comment">3 3You should have received a copy of the GNU Library General Public./spa  >L20" class="line" namon>L20">3 218.a>.spa  class="comment">3 3License along with the GNU C Library; see the file COPYING.LIB.  If./spa  >L21" class="line" namon>L21">3 21./a>.spa  class="comment">3 3not, write to the Free Software Founda"
	 , Inc.,./spa  >L22" class="line" namon>L22">3 22./a>.spa  class="comment">3 359 Temple Place - Suite 330, Bost	 , MA 02111-1307, USA.  */./spa  >L23" class="line" namon>L23">3 23./a>pL24" class="line" namon>L24">3 24./a>#ifndef3.a href="+code=__MATH_EMU_OP_COMMON_H__" class="sref">__MATH_EMU_OP_COMMON_H__./a>pL25" class="line" namon>L25">3 25./a>#define3.a href="+code=__MATH_EMU_OP_COMMON_H__" class="sref">__MATH_EMU_OP_COMMON_H__./a>pL26" class="line" namon>L26">3 26./a>pL27" class="line" namon>L27">3 27./a>#define3.a href="+code=_FP_DECL" class="sref">_FP_DECL./a>(.a href="+code=wc" class="sref">wc./a>,3.a href="+code=X" class="sref">X./a>) 3333333333333333\pL28" class="line" namon>L28">3 28./a> 3.a href="+code=_FP_I_TYPE" class="sref">_FP_I_TYPE./a> .a href="+code=X" class="sref">X./a>##_c=0,3.a href="+code=X" class="sref">X./a>##_s=0,3.a href="+code=X" class="sref">X./a>##_e=0;3\pL29" class="line" namon>L29">3 29./a> 3.a href="+code=_FP_FRAC_DECL_" class="sref">_FP_FRAC_DECL_./a>##wc(.a href="+code=X" class="sref">X./a>)>L30" class="line" namon>L30">3 30./a>pL31" class="line" namon>L31">3 31./a>.spa  class="comment">/*./spa  >L32" class="line" namon>L32">3 32./a>.spa  class="comment">3* Finish truly unpacking a native fp optio by classifying the kind./spa  >L33" class="line" namon>L33">3 33./a>.spa  class="comment">3* of fp optio and3normalizing both the exponent and3the frac"
	 ../spa  >L34" class="line" namon>L34">3 34./a>.spa  class="comment">3*/./spa  >L35" class="line" namon>L35">3 35./a>pL36" class="line" namon>L36">3 36./a>#define3.a href="+code=_FP_UNPACK_CANONICAL" class="sref">_FP_UNPACK_CANONICAL./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=X" class="sref">X./a>) 33333333333333333333333333333333\pL37" class="line" namon>L37">3 37./a>do { 3333333333333333333333333333333333333333333333333333333333333333333\pL38" class="line" namon>L38">3 38./a> 3switch (.a href="+code=X" class="sref">X./a>##_e) 3333333333333333333333333333333333333333333333333333333\pL39" class="line" namon>L39">3 39./a> 3{ 33333333333333333333333333333333333333333333333333333333333333333333\pL40" class="line" namon>L40">3 40./a> 3default:33333333333333333333333333333333333333333333333333333333333333\pL41" class="line" namon>L41">3 41./a> 3 3.a href="+code=_FP_FRAC_HIGH_RAW_" class="sref">_FP_FRAC_HIGH_RAW_./a>##fs(.a href="+code=X" class="sref">X./a>) |=3.a href="+code=_FP_IMPLBIT_" class="sref">_FP_IMPLBIT_./a>##fs;3333333333333333333333\pL42" class="line" namon>L42">3 42./a> 3 3.a href="+code=_FP_FRAC_SLL_" class="sref">_FP_FRAC_SLL_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=_FP_WORKBITS" class="sref">_FP_WORKBITS./a>);333333333333333333333333333333333\pL43" class="line" namon>L43">3 43./a> 3 3.a href="+code=X" class="sref">X./a>##_e -=3.a href="+code=_FP_EXPBIAS_" class="sref">_FP_EXPBIAS_./a>##fs;333333333333333333333333333333333333333333\pL44" class="line" namon>L44">3 44./a> 3 3.a href="+code=X" class="sref">X./a>##_c =3.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>;3333333333333333333333333333333333333333333333\pL45" class="line" namon>L45">3 45./a> 3 3break;33333333333333333333333333333333333333333333333333333333333333\pL46" class="line" namon>L46">3 46./a> 3 333333333333333333333333333333333333333333333333333333333333333333333\pL47" class="line" namon>L47">3 47./a> 3case 0:333333333333333333333333333333333333333333333333333333333333333\pL48" class="line" namon>L48">3 48./a> 3 3if (.a href="+code=_FP_FRAC_ZEROP_" class="sref">_FP_FRAC_ZEROP_./a>##wc(.a href="+code=X" class="sref">X./a>)) 3333333333333333333333333333333333333333\pL49" class="line" namon>L49">3 49./a> 3 333.a href="+code=X" class="sref">X./a>##_c =3.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>;3333333333333333333333333333333333333333333333\pL50" class="line" namon>L50">3 50./a> 3 3else                                                                \pL51" class="line" namon>L51">3 51./a> 3 333{ 3333333333333333333333333333333333333333333333333333333333333333\pL52" class="line" namon>L52">3 52./a> 3 33333.spa  class="comment">/* a3denormalized3number3*/./spa  3333333333333333333333333333333333333\pL53" class="line" namon>L53">3 53./a> 3 33333.a href="+code=_FP_I_TYPE" class="sref">_FP_I_TYPE./a> .a href="+code=_shift" class="sref">_shift./a>;3333333333333333333333333333333333333333333333\pL54" class="line" namon>L54">3 54./a> 3 33333.a href="+code=_FP_FRAC_CLZ_" class="sref">_FP_FRAC_CLZ_./a>##wc(.a href="+code=_shift" class="sref">_shift./a>,3.a href="+code=X" class="sref">X./a>);33333333333333333333333333333333333\pL55" class="line" namon>L55">3 55./a> 3 33333.a href="+code=_shift" class="sref">_shift./a> -=3.a href="+code=_FP_FRACXBITS_" class="sref">_FP_FRACXBITS_./a>##fs;33333333333333333333333333333333333\pL56" class="line" namon>L56">3 56./a> 3 33333.a href="+code=_FP_FRAC_SLL_" class="sref">_FP_FRAC_SLL_./a>##wc(.a href="+code=X" class="sref">X./a>,3(.a href="+code=_shift" class="sref">_shift./a>+.a href="+code=_FP_WORKBITS" class="sref">_FP_WORKBITS./a>));33333333333333333333\pL57" class="line" namon>L57">3 57./a> 3 33333.a href="+code=X" class="sref">X./a>##_e -=3.a href="+code=_FP_EXPBIAS_" class="sref">_FP_EXPBIAS_./a>##fs - 1 + .a href="+code=_shift" class="sref">_shift./a>;3333333333333333333333333\pL58" class="line" namon>L58">3 58./a> 3 33333.a href="+code=X" class="sref">X./a>##_c =3.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>;333333333333333333333333333333333333333333\pL59" class="line" namon>L59">3 59./a> 3 33333.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_EX_DENORM" class="sref">FP_EX_DENORM./a>);333333333333333333333333333333333\pL60" class="line" namon>L60">3 60./a> 3 33333if (.a href="+code=FP_DENORM_ZERO" class="sref">FP_DENORM_ZERO./a>) 33333333333333333333333333333333333333333333\pL61" class="line" namon>L61">3 61./a> 3 3333333{ 333333333333333333333333333333333333333333333333333333333333\pL62" class="line" namon>L62">3 62./a> 3 333333333.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_EX_INEXACT" class="sref">FP_EX_INEXACT./a>);3333333333333333333333333333\pL63" class="line" namon>L63">3 63./a> 3 333333333.a href="+code=X" class="sref">X./a>##_c =3.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>;3333333333333333333333333333333333333333\pL64" class="line" namon>L64">3 64./a> 3 3333333}3333333333333333333333333333333333333333333333333333333333333\pL65" class="line" namon>L65">3 65./a> 3 333}33333333333333333333333333333333333333333333333333333333333333333\pL66" class="line" namon>L66">3 66./a> 3 3break;33333333333333333333333333333333333333333333333333333333333333\pL67" class="line" namon>L67">3 67./a> 3 333333333333333333333333333333333333333333333333333333333333333333333\pL68" class="line" namon>L68">3 68./a> 3case .a href="+code=_FP_EXPMAX_" class="sref">_FP_EXPMAX_./a>##fs:3333333333333333333333333333333333333333333333333\pL69" class="line" namon>L69">3 69./a> 3 3if (.a href="+code=_FP_FRAC_ZEROP_" class="sref">_FP_FRAC_ZEROP_./a>##wc(.a href="+code=X" class="sref">X./a>)) 3333333333333333333333333333333333333333\pL70" class="line" namon>L70">3 70./a> 3 333.a href="+code=X" class="sref">X./a>##_c =3.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>;33333333333333333333333333333333333333333333333\pL71" class="line" namon>L71">3 71./a> 3 3else                                                                \pL72" class="line" namon>L72">3 72./a> 3 333{ 3333333333333333333333333333333333333333333333333333333333333333\pL73" class="line" namon>L73">3 73./a> 3 33333.a href="+code=X" class="sref">X./a>##_c =3.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>;333333333333333333333333333333333333333333333\pL74" class="line" namon>L74">3 74./a> 3 33333.spa  class="comment">/* Check for3signaling NaN3*/./spa  33333333333333333333333333333333333\pL75" class="line" namon>L75">3 75./a> 3 33333if (!(.a href="+code=_FP_FRAC_HIGH_RAW_" class="sref">_FP_FRAC_HIGH_RAW_./a>##fs(.a href="+code=X" class="sref">X./a>) & .a href="+code=_FP_QNANBIT_" class="sref">_FP_QNANBIT_./a>##fs)) 33333333333\pL76" class="line" namon>L76">3 76./a> 3 3333333.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_EX_INVALID" class="sref">FP_EX_INVALID./a> |3.a href="+code=FP_EX_INVALID_SNAN" class="sref">FP_EX_INVALID_SNAN./a>);333333333\pL77" class="line" namon>L77">3 77./a> 3 333}33333333333333333333333333333333333333333333333333333333333333333\pL78" class="line" namon>L78">3 78./a> 3 3break;33333333333333333333333333333333333333333333333333333333333333\pL79" class="line" namon>L79">3 79./a> 3}333333333333333333333333333333333333333333333333333333333333333333333\pL80" class="line" namon>L80">3 80./a>} while (0)>L81" class="line" namon>L81">3 81./a>pL82" class="line" namon>L82">3 82./a>.spa  class="comment">/*./spa  >L83" class="line" namon>L83">3 83./a>.spa  class="comment">3* Before packing the bits back into the native fp result, take3care./spa  >L84" class="line" namon>L84">3 84./a>.spa  class="comment">3* of such mundane things as rounding and overflow.  Also, for3some./spa  >L85" class="line" namon>L85">3 85./a>.spa  class="comment">3* kinds of fp optios, the original parts may3not have been fully./spa  >L86" class="line" namon>L86">3 86./a>.spa  class="comment">3* extrac"ed --3but that is ok, we ca  regenerate them3now../spa  >L87" class="line" namon>L87">3 87./a>.spa  class="comment">3*/./spa  >L88" class="line" namon>L88">3 88./a>pL89" class="line" namon>L89">3 89./a>#define3.a href="+code=_FP_PACK_CANONICAL" class="sref">_FP_PACK_CANONICAL./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=X" class="sref">X./a>) 33333333333333333333333333\pL90" class="line" namon>L90">3 90./a>do { 33333333333333333333333333333333333333333333333333333333333\pL91" class="line" namon>L91">3 91./a> 3switch (.a href="+code=X" class="sref">X./a>##_c) 33333333333333333333333333333333333333333333333\pL92" class="line" namon>L92">3 92./a> 3{ 333333333333333333333333333333333333333333333333333333333333\pL93" class="line" namon>L93">3 93./a> 3case .a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>:3333333333333333333333333333333333333333333\pL94" class="line" namon>L94">3 94./a> 3 3.a href="+code=X" class="sref">X./a>##_e +=3.a href="+code=_FP_EXPBIAS_" class="sref">_FP_EXPBIAS_./a>##fs;3333333333333333333333333333333333\pL95" class="line" namon>L95">3 95./a> 3 3if (.a href="+code=X" class="sref">X./a>##_e > 0) 333333333333333333333333333333333333333333333\pL96" class="line" namon>L96">3 96./a> 3 333{ 33333333333333333333333333333333333333333333333333333333\pL97" class="line" namon>L97">3 97./a> 3 33333.a href="+code=_FP_ROUND" class="sref">_FP_ROUND./a>(.a href="+code=wc" class="sref">wc./a>,3.a href="+code=X" class="sref">X./a>);333333333333333333333333333333333333333\pL98" class="line" namon>L98">3 98./a> 3 33333if (.a href="+code=_FP_FRAC_OVERP_" class="sref">_FP_FRAC_OVERP_./a>##wc(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=X" class="sref">X./a>)) 333333333333333333333333\pL99" class="line" namon>L99">3 99./a> 3 3333333{ 3333333333333333333333333333333333333333333333333333\pL100" class="line" namon>L100">3100./a> 3 333333333.a href="+code=_FP_FRAC_CLEAR_OVERP_" class="sref">_FP_FRAC_CLEAR_OVERP_./a>##wc(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=X" class="sref">X./a>);3333333333333333333\pL101" class="line" namon>L101">3101./a> 3 333333333.a href="+code=X" class="sref">X./a>##_e++;33333333333333333333333333333333333333333333\pL102" class="line" namon>L102">3102./a> 3 3333333}33333333333333333333333333333333333333333333333333333\pL103" class="line" namon>L103">3103./a> 3 33333.a href="+code=_FP_FRAC_SRL_" class="sref">_FP_FRAC_SRL_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=_FP_WORKBITS" class="sref">_FP_WORKBITS./a>);333333333333333333333\pL104" class="line" namon>L104">3104./a> 3 33333if (.a href="+code=X" class="sref">X./a>##_e >=3.a href="+code=_FP_EXPMAX_" class="sref">_FP_EXPMAX_./a>##fs) 33333333333333333333333333\pL105" class="line" namon>L105">3105./a> 3 3333333{ 3333333333333333333333333333333333333333333333333333\pL106" class="line" namon>L106">3106./a> 3 333333333.spa  class="comment">/* overflow3*/./spa  33333333333333333333333333333333333333\pL107" class="line" namon>L107">3107./a> 3 333333333switch (.a href="+code=FP_ROUNDMODE" class="sref">FP_ROUNDMODE./a>) 333333333333333333333333333333\pL108" class="line" namon>L108">3108./a> 3 33333333333{ 333333333333333333333333333333333333333333333333\pL109" class="line" namon>L109">3109./a> 3 33333333333case .a href="+code=FP_RND_NEAREST" class="sref">FP_RND_NEAREST./a>:333333333333333333333333333333\pL110" class="line" namon>L110">3110./a> 3 3333333333333.a href="+code=X" class="sref">X./a>##_c =3.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>;33333333333333333333333333333\pL111" class="line" namon>L111">3111./a> 3 3333333333333break;333333333333333333333333333333333333333333\pL112" class="line" namon>L112">3112./a> 3 33333333333case .a href="+code=FP_RND_PINF" class="sref">FP_RND_PINF./a>:333333333333333333333333333333333\pL113" class="line" namon>L113">3113./a> 3 3333333333333if (!.a href="+code=X" class="sref">X./a>##_s) .a href="+code=X" class="sref">X./a>##_c =3.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>;33333333333333333\pL114" class="line" namon>L114">3114./a> 3 3333333333333break;333333333333333333333333333333333333333333\pL115" class="line" namon>L115">3115./a> 3 33333333333case .a href="+code=FP_RND_MINF" class="sref">FP_RND_MINF./a>:333333333333333333333333333333333\pL116" class="line" namon>L116">3116./a> 3 3333333333333if (.a href="+code=X" class="sref">X./a>##_s) .a href="+code=X" class="sref">X./a>##_c =3.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>;333333333333333333\pL117" class="line" namon>L117">3117./a> 3 3333333333333break;333333333333333333333333333333333333333333\pL118" class="line" namon>L118">3118./a> 3 33333333333}3333333333333333333333333333333333333333333333333\pL119" class="line" namon>L119">3119./a> 3 333333333if (.a href="+code=X" class="sref">X./a>##_c ==3.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>) 333333333333333333333333333\pL120" class="line" namon>L120">3120./a> 3 33333333333{ 333333333333333333333333333333333333333333333333\pL121" class="line" namon>L121">3121./a> 3 3333333333333.spa  class="comment">/* Overflow3to infinity3*/./spa  3333333333333333333333\pL122" class="line" namon>L122">3122./a> 3 33333333333 3.a href="+code=X" class="sref">X./a>##_e =3.a href="+code=_FP_EXPMAX_" class="sref">_FP_EXPMAX_./a>##fs;333333333333333333333333\pL123" class="line" namon>L123">3123./a> 3 3333333333333.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=_FP_ZEROFRAC_" class="sref">_FP_ZEROFRAC_./a>##wc);33333333\pL124" class="line" namon>L124">3124./a> 3 33333333333}3333333333333333333333333333333333333333333333333\pL125" class="line" namon>L125">3125./a> 3 333333333else                                                \pL126" class="line" namon>L126">3126./a> 3 33333333333{ 333333333333333333333333333333333333333333333333\pL127" class="line" namon>L127">3127./a> 3 3333333333333.spa  class="comment">/* Overflow3to maximum3normal3*/./spa  3333333333333333\pL128" class="line" namon>L128">3128./a> 3 33333333333 3.a href="+code=X" class="sref">X./a>##_e =3.a href="+code=_FP_EXPMAX_" class="sref">_FP_EXPMAX_./a>##fs - 1;33333333333333333333\pL129" class="line" namon>L129">3129./a> 3 3333333333333.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=_FP_MAXFRAC_" class="sref">_FP_MAXFRAC_./a>##wc);333333333\pL130" class="line" namon>L130">3130./a> 3 33333333333}3333333333333333333333333333333333333333333333333\pL131" class="line" namon>L131">3131./a> 3 333333333.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_EX_OVERFLOW" class="sref">FP_EX_OVERFLOW./a>);3333333333333333333\pL132" class="line" namon>L132">3132./a> 3 333333333.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_EX_INEXACT" class="sref">FP_EX_INEXACT./a>);33333333333333333333\pL133" class="line" namon>L133">3133./a> 3 3333333}33333333333333333333333333333333333333333333333333333\pL134" class="line" namon>L134">3134./a> 3 333}333333333333333333333333333333333333333333333333333333333\pL135" class="line" namon>L135">3135./a> 3 3else                                                        \pL136" class="line" namon>L136">3136./a> 3 333{ 33333333333333333333333333333333333333333333333333333333\pL137" class="line" namon>L137">3137./a> 3 33333.spa  class="comment">/* we've got a3denormalized3number3*/./spa  3333333333333333333\pL138" class="line" namon>L138">3138./a> 3 33333.a href="+code=X" class="sref">X./a>##_e =3-.a href="+code=X" class="sref">X./a>##_e + 1;3333333333333333333333333333333333333\pL139" class="line" namon>L139">3139./a> 3 33333if (.a href="+code=X" class="sref">X./a>##_e <=3.a href="+code=_FP_WFRACBITS_" class="sref">_FP_WFRACBITS_./a>##fs) 33333333333333333333333\pL140" class="line" namon>L140">3140./a> 3 3333333{ 3333333333333333333333333333333333333333333333333333\pL141" class="line" namon>L141">3141./a> 3 333333333.a href="+code=_FP_FRAC_SRS_" class="sref">_FP_FRAC_SRS_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=X" class="sref">X./a>##_e,3.a href="+code=_FP_WFRACBITS_" class="sref">_FP_WFRACBITS_./a>##fs);3333\pL142" class="line" namon>L142">3142./a> 3 333333333if (.a href="+code=_FP_FRAC_HIGH_" class="sref">_FP_FRAC_HIGH_./a>##fs(.a href="+code=X" class="sref">X./a>) 33333333333333333333333333\pL143" class="line" namon>L143">3143./a> 3 3333333333333& (.a href="+code=_FP_OVERFLOW_" class="sref">_FP_OVERFLOW_./a>##fs >> 1)) 33333333333333333333\pL144" class="line" namon>L144">3144./a> 3 33333333333{ 333333333333333333333333333333333333333333333333\pL145" class="line" namon>L145">3145./a> 3 3333333333333.a href="+code=X" class="sref">X./a>##_e =31;33333333333333333333333333333333333333\pL146" class="line" namon>L146">3146./a> 3 3333333333333.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=_FP_ZEROFRAC_" class="sref">_FP_ZEROFRAC_./a>##wc);33333333\pL147" class="line" namon>L147">3147./a> 3 33333333333}3333333333333333333333333333333333333333333333333\pL148" class="line" namon>L148">3148./a> 3 333333333else                                                \pL149" class="line" namon>L149">3149./a> 3 33333333333{ 333333333333333333333333333333333333333333333333\pL150" class="line" namon>L150">3150./a> 3 3333333333333.a href="+code=_FP_ROUND" class="sref">_FP_ROUND./a>(.a href="+code=wc" class="sref">wc./a>,3.a href="+code=X" class="sref">X./a>);3333333333333333333333333333333\pL151" class="line" namon>L151">3151./a> 3 3333333333333if (.a href="+code=_FP_FRAC_HIGH_" class="sref">_FP_FRAC_HIGH_./a>##fs(.a href="+code=X" class="sref">X./a>) 3333333333333333333333\pL152" class="line" namon>L152">3152./a> 3 33333333333 3 33& (.a href="+code=_FP_OVERFLOW_" class="sref">_FP_OVERFLOW_./a>##fs >> 1)) 33333333333333333\pL153" class="line" namon>L153">3153./a> 3 333333333333333{ 33333333333333333333333333333333333333333333\pL154" class="line" namon>L154">3154./a> 3 33333333333333333.a href="+code=X" class="sref">X./a>##_e =31;3333333333333333333333333333333333\pL155" class="line" namon>L155">3155./a> 3 33333333333333333.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=_FP_ZEROFRAC_" class="sref">_FP_ZEROFRAC_./a>##wc);3333\pL156" class="line" namon>L156">3156./a> 3 33333333333333333.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_EX_INEXACT" class="sref">FP_EX_INEXACT./a>);333333333333\pL157" class="line" namon>L157">3157./a> 3 333333333333333}333333333333333333333333333333333333333333333\pL158" class="line" namon>L158">3158./a> 3 33333333333 3else                                            \pL159" class="line" namon>L159">3159./a> 3 333333333333333{ 33333333333333333333333333333333333333333333\pL160" class="line" namon>L160">3160./a> 3 33333333333333333.a href="+code=X" class="sref">X./a>##_e =30;3333333333333333333333333333333333\pL161" class="line" namon>L161">3161./a> 3 33333333333333333.a href="+code=_FP_FRAC_SRL_" class="sref">_FP_FRAC_SRL_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=_FP_WORKBITS" class="sref">_FP_WORKBITS./a>);333333333\pL162" class="line" namon>L162">3162./a> 3 333333333333333}333333333333333333333333333333333333333333333\pL163" class="line" namon>L163">3163./a> 3 33333333333}3333333333333333333333333333333333333333333333333\pL164" class="line" namon>L164">3164./a> 3 333333333if ((.a href="+code=FP_CUR_EXCEPTIONS" class="sref">FP_CUR_EXCEPTIONS./a> & .a href="+code=FP_EX_INEXACT" class="sref">FP_EX_INEXACT./a>) ||3333333333\pL165" class="line" namon>L165">3165./a> 3 3333333333333(.a href="+code=FP_TRAPPING_EXCEPTIONS" class="sref">FP_TRAPPING_EXCEPTIONS./a> & .a href="+code=FP_EX_UNDERFLOW" class="sref">FP_EX_UNDERFLOW./a>))33333\pL166" class="line" namon>L166">3166./a> 3 3333333333333.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_EX_UNDERFLOW" class="sref">FP_EX_UNDERFLOW./a>);33333333333333\pL167" class="line" namon>L167">3167./a> 3 3333333}33333333333333333333333333333333333333333333333333333\pL168" class="line" namon>L168">3168./a> 3 33333else                                                    \pL169" class="line" namon>L169">3169./a> 3 3333333{ 3333333333333333333333333333333333333333333333333333\pL170" class="line" namon>L170">3170./a> 3 333333333.spa  class="comment">/* underflow3to zero3*/./spa  33333333333333333333333333333\pL171" class="line" namon>L171">3171./a> 3 333333333.a href="+code=X" class="sref">X./a>##_e =30;333333333333333333333333333333333333333333\pL172" class="line" namon>L172">3172./a> 3 333333333if (!.a href="+code=_FP_FRAC_ZEROP_" class="sref">_FP_FRAC_ZEROP_./a>##wc(.a href="+code=X" class="sref">X./a>)) 33333333333333333333333\pL173" class="line" namon>L173">3173./a> 3 33333333333{ 333333333333333333333333333333333333333333333333\pL174" class="line" namon>L174">3174./a> 3 3333333333333.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=_FP_MINFRAC_" class="sref">_FP_MINFRAC_./a>##wc);333333333\pL175" class="line" namon>L175">3175./a> 3 3333333333333.a href="+code=_FP_ROUND" class="sref">_FP_ROUND./a>(.a href="+code=wc" class="sref">wc./a>,3.a href="+code=X" class="sref">X./a>);3333333333333333333333333333333\pL176" class="line" namon>L176">3176./a> 3 3333333333333.a href="+code=_FP_FRAC_LOW_" class="sref">_FP_FRAC_LOW_./a>##wc(.a href="+code=X" class="sref">X./a>) >>= (.a href="+code=_FP_WORKBITS" class="sref">_FP_WORKBITS./a>);33333333\pL177" class="line" namon>L177">3177./a> 3 33333333333}3333333333333333333333333333333333333333333333333\pL178" class="line" namon>L178">3178./a> 3 333333333.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_EX_UNDERFLOW" class="sref">FP_EX_UNDERFLOW./a>);333333333333333333\pL179" class="line" namon>L179">3179./a> 3 3333333}33333333333333333333333333333333333333333333333333333\pL180" class="line" namon>L180">3180./a> 3 333}333333333333333333333333333333333333333333333333333333333\pL181" class="line" namon>L181">3181./a> 3 3break;333333333333333333333333333333333333333333333333333333\pL182" class="line" namon>L182">3182./a> 3 33333333333 3 33333333333333333333333333333333333333333333333\pL183" class="line" namon>L183">3183./a> 3case .a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>:333333333333333333333333333333333333333333333\pL184" class="line" namon>L184">3184./a> 3 3.a href="+code=X" class="sref">X./a>##_e =30;33333333333333333333333333333333333333333333333333\pL185" class="line" namon>L185">3185./a> 3 3.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=_FP_ZEROFRAC_" class="sref">_FP_ZEROFRAC_./a>##wc);33333333333333333333\pL186" class="line" namon>L186">3186./a> 3 3break;333333333333333333333333333333333333333333333333333333\pL187" class="line" namon>L187">3187./a> 3 3333333333333333333333333333333333333333333333333333333333333\pL188" class="line" namon>L188">3188./a> 3case .a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>:3333333333333333333333333333333333333333333333\pL189" class="line" namon>L189">3189./a> 3 3.a href="+code=X" class="sref">X./a>##_e =3.a href="+code=_FP_EXPMAX_" class="sref">_FP_EXPMAX_./a>##fs;333333333333333333333333333333333333\pL190" class="line" namon>L190">3190./a> 3 3.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=_FP_ZEROFRAC_" class="sref">_FP_ZEROFRAC_./a>##wc);33333333333333333333\pL191" class="line" namon>L191">3191./a> 3 3break;333333333333333333333333333333333333333333333333333333\pL192" class="line" namon>L192">3192./a> 3 33333333333 3 33333333333333333333333333333333333333333333333\pL193" class="line" namon>L193">3193./a> 3case .a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>:3333333333333333333333333333333333333333333333\pL194" class="line" namon>L194">3194./a> 3 3.a href="+code=X" class="sref">X./a>##_e =3.a href="+code=_FP_EXPMAX_" class="sref">_FP_EXPMAX_./a>##fs;333333333333333333333333333333333333\pL195" class="line" namon>L195">3195./a> 3 3if (!.a href="+code=_FP_KEEPNANFRACP" class="sref">_FP_KEEPNANFRACP./a>) 3333333333333333333333333333333333333\pL196" class="line" namon>L196">3196./a> 3 333{ 33333333333333333333333333333333333333333333333333333333\pL197" class="line" namon>L197">3197./a> 3 33333.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=_FP_NANFRAC_" class="sref">_FP_NANFRAC_./a>##fs);33333333333333333\pL198" class="line" namon>L198">3198./a> 3 33333.a href="+code=X" class="sref">X./a>##_s =3.a href="+code=_FP_NANSIGN_" class="sref">_FP_NANSIGN_./a>##fs;3333333333333333333333333333333\pL199" class="line" namon>L199">3199./a> 3 333}333333333333333333333333333333333333333333333333333333333\pL200" class="line" namon>L200">3200./a> 3 3else                                                        \pL201" class="line" namon>L201">3201./a> 3 333.a href="+code=_FP_FRAC_HIGH_RAW_" class="sref">_FP_FRAC_HIGH_RAW_./a>##fs(.a href="+code=X" class="sref">X./a>) |=3.a href="+code=_FP_QNANBIT_" class="sref">_FP_QNANBIT_./a>##fs;333333333333\pL202" class="line" namon>L202">3202./a> 3 3break;333333333333333333333333333333333333333333333333333333\pL203" class="line" namon>L203">3203./a> 3}3333333333333333333333333333333333333333333333333333333333333\pL204" class="line" namon>L204">3204./a>} while (0)>L205" class="line" namon>L205">3205./a>>L206" class="line" namon>L206">3206./a>.spa  class="comment">/* This one accepts raw argument and not cooked,  returns./spa  >L207" class="line" namon>L207">3207./a>.spa  class="comment">3* 13if X is a3signaling NaN../spa  >L208" class="line" namon>L208">3208./a>.spa  class="comment">3*/./spa  >L209" class="line" namon>L209">3209./a>#define3.a href="+code=_FP_ISSIGNAN" class="sref">_FP_ISSIGNAN./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=X" class="sref">X./a>) 33333333333333333333333333333333\pL210" class="line" namon>L210">3210./a>({ 3333333333333333333333333333333333333333333333333333333333333\pL211" class="line" namon>L211">3211./a> 3int .a href="+code=__ret" class="sref">__ret./a> =30;333333333333333333333333333333333333333333333333\pL212" class="line" namon>L212">3212./a> 3if (.a href="+code=X" class="sref">X./a>##_e ==3.a href="+code=_FP_EXPMAX_" class="sref">_FP_EXPMAX_./a>##fs) 33333333333333333333333333333333\pL213" class="line" namon>L213">3213./a> 3 3{ 3333333333333333333333333333333333333333333333333333333333\pL214" class="line" namon>L214">3214./a> 3 333if (!.a href="+code=_FP_FRAC_ZEROP_" class="sref">_FP_FRAC_ZEROP_./a>##wc(.a href="+code=X" class="sref">X./a>)3333333333333333333333333333333\pL215" class="line" namon>L215">3215./a> 3 3333333&& !(.a href="+code=_FP_FRAC_HIGH_RAW_" class="sref">_FP_FRAC_HIGH_RAW_./a>##fs(.a href="+code=X" class="sref">X./a>) & .a href="+code=_FP_QNANBIT_" class="sref">_FP_QNANBIT_./a>##fs)) 33\pL216" class="line" namon>L216">3216./a> 3 33333.a href="+code=__ret" class="sref">__ret./a> =31;3333333333333333333333333333333333333333333333\pL217" class="line" namon>L217">3217./a> 3 3}33333333333333333333333333333333333333333333333333333333333\pL218" class="line" namon>L218">3218./a> 3.a href="+code=__ret" class="sref">__ret./a>;33333333333333333333333333333333333333333333333333333333\pL219" class="line" namon>L219">3219./a>})>L220" class="line" namon>L220">3220./a>>L221" class="line" namon>L221">3221./a>pL222" class="line" namon>L222">3222./a>pL223" class="line" namon>L223">3223./a>pL224" class="line" namon>L224">3224./a>pL225" class="line" namon>L225">3225./a>.spa  class="comment">/*./spa  >L226" class="line" namon>L226">3226./a>.spa  class="comment">3* Main addition routine.  The3input optios should be cooked../spa  >L227" class="line" namon>L227">3227./a>.spa  class="comment">3*/./spa  >L228" class="line" namon>L228">3228./a>pL229" class="line" namon>L229">3229./a>#define3.a href="+code=_FP_ADD_INTERNAL" class="sref">_FP_ADD_INTERNAL./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>,3.a href="+code=OP" class="sref">OP./a>) 3333333333333333333333333333333\pL230" class="line" namon>L230">3230./a>do { 333333333333333333333333333333333333333333333333333333333333333333333333\pL231" class="line" namon>L231">3231./a> 3switch (.a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=X" class="sref">X./a>##_c,3.a href="+code=Y" class="sref">Y./a>##_c)) 333333333333333333333333333333333333\pL232" class="line" namon>L232">3232./a> 3{ 3333333333333333333333333333333333333333333333333333333333333333333333333\pL233" class="line" namon>L233">3233./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>,.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>):3333333333333333333333333\pL234" class="line" namon>L234">3234./a> 3 3{ 33333333333333333333333333333333333333333333333333333333333333333333333\pL235" class="line" namon>L235">3235./a> 3 333.spa  class="comment">/* shift the smaller3number3so that its exponent matchos the larger3*/./spa  3\pL236" class="line" namon>L236">3236./a> 3 333.a href="+code=_FP_I_TYPE" class="sref">_FP_I_TYPE./a> .a href="+code=diff" class="sref">diff./a> =3.a href="+code=X" class="sref">X./a>##_e -3.a href="+code=Y" class="sref">Y./a>##_e;333333333333333333333333333333333333333\pL237" class="line" namon>L237">3237./a> 3 33333333333333333333333333333333333333333333333333333333333333333333333333\pL238" class="line" namon>L238">3238./a> 3 333if (.a href="+code=diff" class="sref">diff./a> < 0) 333333333333333333333333333333333333333333333333333333333\pL239" class="line" namon>L239">3239./a> 3 33333{ 3333333333333333333333333333333333333333333333333333333333333333333\pL240" class="line" namon>L240">3240./a> 3 3333333.a href="+code=diff" class="sref">diff./a> =3-.a href="+code=diff" class="sref">diff./a>;333333333333333333333333333333333333333333333333333333\pL241" class="line" namon>L241">3241./a> 3 3333333if (.a href="+code=diff" class="sref">diff./a> <=3.a href="+code=_FP_WFRACBITS_" class="sref">_FP_WFRACBITS_./a>##fs) 33333333333333333333333333333333333\pL242" class="line" namon>L242">3242./a> 3 333333333.a href="+code=_FP_FRAC_SRS_" class="sref">_FP_FRAC_SRS_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=diff" class="sref">diff./a>,3.a href="+code=_FP_WFRACBITS_" class="sref">_FP_WFRACBITS_./a>##fs);333333333333333333\pL243" class="line" namon>L243">3243./a> 3 3333333else if (!.a href="+code=_FP_FRAC_ZEROP_" class="sref">_FP_FRAC_ZEROP_./a>##wc(.a href="+code=X" class="sref">X./a>)) 333333333333333333333333333333333\pL244" class="line" namon>L244">3244./a> 3 333333333.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=_FP_MINFRAC_" class="sref">_FP_MINFRAC_./a>##wc);33333333333333333333333333\pL245" class="line" namon>L245">3245./a> 3 3333333.a href="+code=R" class="sref">R./a>##_e =3.a href="+code=Y" class="sref">Y./a>##_e;33333333333333333333333333333333333333333333333333333\pL246" class="line" namon>L246">3246./a> 3 33333}33333333333333333333333333333333333333333333333333333333333333333333\pL247" class="line" namon>L247">3247./a> 3 333else                                                        33333333333\pL248" class="line" namon>L248">3248./a> 3 33333{ 3333333333333333333333333333333333333333333333333333333333333333333\pL249" class="line" namon>L249">3249./a> 3 3333333if (.a href="+code=diff" class="sref">diff./a> > 0) 33333333333333333333333333333333333333333333333333333\pL250" class="line" namon>L250">3250./a> 3 333333333{ 333333333333333333333333333333333333333333333333333333333333333\pL251" class="line" namon>L251">3251./a> 3 33333333333if (.a href="+code=diff" class="sref">diff./a> <=3.a href="+code=_FP_WFRACBITS_" class="sref">_FP_WFRACBITS_./a>##fs) 3333333333333333333333333333333\pL252" class="line" namon>L252">3252./a> 3 33333333333 3.a href="+code=_FP_FRAC_SRS_" class="sref">_FP_FRAC_SRS_./a>##wc(.a href="+code=Y" class="sref">Y./a>,3.a href="+code=diff" class="sref">diff./a>,3.a href="+code=_FP_WFRACBITS_" class="sref">_FP_WFRACBITS_./a>##fs);33333333333333\pL253" class="line" namon>L253">3253./a> 3 33333333333else if (!.a href="+code=_FP_FRAC_ZEROP_" class="sref">_FP_FRAC_ZEROP_./a>##wc(.a href="+code=Y" class="sref">Y./a>)) 33333333333333333333333333333\pL254" class="line" namon>L254">3254./a> 3 3333333333333.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=Y" class="sref">Y./a>,3.a href="+code=_FP_MINFRAC_" class="sref">_FP_MINFRAC_./a>##wc);3333333333333333333333\pL255" class="line" namon>L255">3255./a> 3 333333333}3333333333333333333333333333333333333333333333333333333333333333\pL256" class="line" namon>L256">3256./a> 3 3333333.a href="+code=R" class="sref">R./a>##_e =3.a href="+code=X" class="sref">X./a>##_e;33333333333333333333333333333333333333333333333333333\pL257" class="line" namon>L257">3257./a> 3 33333}33333333333333333333333333333333333333333333333333333333333333333333\pL258" class="line" namon>L258">3258./a> 3 33333333333 33333333333333333333333333333333333333333333333333333333333333\pL259" class="line" namon>L259">3259./a> 3 333.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>;3333333333333333333333333333333333333333333333333\pL260" class="line" namon>L260">3260./a> 3 33333333333333333333333333333333333333333333333333333333333333333333333333\pL261" class="line" namon>L261">3261./a> 3 333if (.a href="+code=X" class="sref">X./a>##_s ==3.a href="+code=Y" class="sref">Y./a>##_s) 333333333333333333333333333333333333333333333333333\pL262" class="line" namon>L262">3262./a> 3 33333{ 3333333333333333333333333333333333333333333333333333333333333333333\pL263" class="line" namon>L263">3263./a> 3 3333333.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=X" class="sref">X./a>##_s;33333333333333333333333333333333333333333333333333333\pL264" class="line" namon>L264">3264./a> 3 3333333.a href="+code=_FP_FRAC_ADD_" class="sref">_FP_FRAC_ADD_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>);3333333333333333333333333333333333333333\pL265" class="line" namon>L265">3265./a> 3 3333333if (.a href="+code=_FP_FRAC_OVERP_" class="sref">_FP_FRAC_OVERP_./a>##wc(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=R" class="sref">R./a>)) 33333333333333333333333333333333333\pL266" class="line" namon>L266">3266./a> 3 333333333{ 333333333333333333333333333333333333333333333333333333333333333\pL267" class="line" namon>L267">3267./a> 3 33333333333.a href="+code=_FP_FRAC_SRS_" class="sref">_FP_FRAC_SRS_./a>##wc(.a href="+code=R" class="sref">R./a>,31,3.a href="+code=_FP_WFRACBITS_" class="sref">_FP_WFRACBITS_./a>##fs);3333333333333333333\pL268" class="line" namon>L268">3268./a> 3 33333333333.a href="+code=R" class="sref">R./a>##_e++;3333333333333333333333333333333333333333333333333333333\pL269" class="line" namon>L269">3269./a> 3 333333333}3333333333333333333333333333333333333333333333333333333333333333\pL270" class="line" namon>L270">3270./a> 3 33333}33333333333333333333333333333333333333333333333333333333333333333333\pL271" class="line" namon>L271">3271./a> 3 333else                                                        33333333333\pL272" class="line" namon>L272">3272./a> 3 33333{ 3333333333333333333333333333333333333333333333333333333333333333333\pL273" class="line" namon>L273">3273./a> 3 3333333.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=X" class="sref">X./a>##_s;33333333333333333333333333333333333333333333333333333\pL274" class="line" namon>L274">3274./a> 3 3333333.a href="+code=_FP_FRAC_SUB_" class="sref">_FP_FRAC_SUB_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>);3333333333333333333333333333333333333333\pL275" class="line" namon>L275">3275./a> 3 3333333if (.a href="+code=_FP_FRAC_ZEROP_" class="sref">_FP_FRAC_ZEROP_./a>##wc(.a href="+code=R" class="sref">R./a>)) 333333333333333333333333333333333333333\pL276" class="line" namon>L276">3276./a> 3 333333333{ 333333333333333333333333333333333333333333333333333333333333333\pL277" class="line" namon>L277">3277./a> 3 33333333333.spa  class="comment">/* return a  exact zero3*/./spa  3333333333333333333333333333333333333\pL278" class="line" namon>L278">3278./a> 3 33333333333if (.a href="+code=FP_ROUNDMODE" class="sref">FP_ROUNDMODE./a> ==3.a href="+code=FP_RND_MINF" class="sref">FP_RND_MINF./a>) 333333333333333333333333333333\pL279" class="line" namon>L279">3279./a> 3 3333333333333.a href="+code=R" class="sref">R./a>##_s |=3.a href="+code=Y" class="sref">Y./a>##_s;3333333333333333333333333333333333333333333333\pL280" class="line" namon>L280">3280./a> 3 33333333333else                                                        333\pL281" class="line" namon>L281">3281./a> 3 3333333333333.a href="+code=R" class="sref">R./a>##_s &=3.a href="+code=Y" class="sref">Y./a>##_s;3333333333333333333333333333333333333333333333\pL282" class="line" namon>L282">3282./a> 3 33333333333.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>;3333333333333333333333333333333333333333333\pL283" class="line" namon>L283">3283./a> 3 333333333}3333333333333333333333333333333333333333333333333333333333333333\pL284" class="line" namon>L284">3284./a> 3 3333333else                                                        3333333\pL285" class="line" namon>L285">3285./a> 3 333333333{ 333333333333333333333333333333333333333333333333333333333333333\pL286" class="line" namon>L286">3286./a> 3 33333333333if (.a href="+code=_FP_FRAC_NEGP_" class="sref">_FP_FRAC_NEGP_./a>##wc(.a href="+code=R" class="sref">R./a>)) 333333333333333333333333333333333333\pL287" class="line" namon>L287">3287./a> 3 3333333333333{ 33333333333333333333333333333333333333333333333333333333333\pL288" class="line" namon>L288">3288./a> 3 33333333333 333.a href="+code=_FP_FRAC_SUB_" class="sref">_FP_FRAC_SUB_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=Y" class="sref">Y./a>,3.a href="+code=X" class="sref">X./a>);33333333333333333333333333333333\pL289" class="line" namon>L289">3289./a> 3 333333333333333.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=Y" class="sref">Y./a>##_s;333333333333333333333333333333333333333333333\pL290" class="line" namon>L290">3290./a> 3 3333333333333}333333333333333333333333333333333333333333333333333333333333\pL291" class="line" namon>L291">3291./a> 3 33333333333333333333333333333333333333333333333333333333333333333333333333\pL292" class="line" namon>L292">3292./a> 3 33333333333.spa  class="comment">/* renormalize after3subtraction */./spa  3333333333333333333333333333\pL293" class="line" namon>L293">3293./a> 3 33333333333.a href="+code=_FP_FRAC_CLZ_" class="sref">_FP_FRAC_CLZ_./a>##wc(.a href="+code=diff" class="sref">diff./a>,3.a href="+code=R" class="sref">R./a>);333333333333333333333333333333333333\pL294" class="line" namon>L294">3294./a> 3 33333333333.a href="+code=diff" class="sref">diff./a> -=3.a href="+code=_FP_WFRACXBITS_" class="sref">_FP_WFRACXBITS_./a>##fs;33333333333333333333333333333333333\pL295" class="line" namon>L295">3295./a> 3 33333333333if (.a href="+code=diff" class="sref">diff./a>) 33333333333333333333333333333333333333333333333333333\pL296" class="line" namon>L296">3296./a> 3 3333333333333{ 33333333333333333333333333333333333333333333333333333333333\pL297" class="line" namon>L297">3297./a> 3 333333333333333.a href="+code=R" class="sref">R./a>##_e -=3.a href="+code=diff" class="sref">diff./a>;333333333333333333333333333333333333333333333\pL298" class="line" namon>L298">3298./a> 3 33333333333 333.a href="+code=_FP_FRAC_SLL_" class="sref">_FP_FRAC_SLL_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=diff" class="sref">diff./a>);33333333333333333333333333333333\pL299" class="line" namon>L299">3299./a> 3 3333333333333}333333333333333333333333333333333333333333333333333333333333\pL300" class="line" namon>L300">3300./a> 3 333333333}3333333333333333333333333333333333333333333333333333333333333333\pL301" class="line" namon>L301">3301./a> 3 33333}33333333333333333333333333333333333333333333333333333333333333333333\pL302" class="line" namon>L302">3302./a> 3 333break;33333333333333333333333333333333333333333333333333333333333333333\pL303" class="line" namon>L303">3303./a> 3 3}333333333333333333333333333333333333333333333333333333333333333333333333\pL304" class="line" namon>L304">3304./a> 3 33333333333333333333333333333333333333333333333333333333333333333333333333\pL305" class="line" namon>L305">3305./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>,.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>):3333333333333333333333333333333\pL306" class="line" namon>L306">3306./a> 3 3.a href="+code=_FP_CHOOSENAN" class="sref">_FP_CHOOSENAN./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>,3.a href="+code=OP" class="sref">OP./a>);33333333333333333333333333333333333333\pL307" class="line" namon>L307">3307./a> 3 3break;3333333333333333333333333333333333333333333333333333333333333333333\pL308" class="line" namon>L308">3308./a> 3 33333333333 33333333333333333333333333333333333333333333333333333333333333\pL309" class="line" namon>L309">3309./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>,.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>):333333333333333333333333333\pL310" class="line" namon>L310">3310./a> 3 3.a href="+code=R" class="sref">R./a>##_e =3.a href="+code=X" class="sref">X./a>##_e;33333333333333333333333333333333333333333333333333333333333\pL311" class="line" namon>L311">3311./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>,.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>):3333333333333333333333333333\pL312" class="line" namon>L312">3312./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>,.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>):3333333333333333333333333333333\pL313" class="line" namon>L313">3313./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>,.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>):333333333333333333333333333333\pL314" class="line" namon>L314">3314./a> 3 3.a href="+code=_FP_FRAC_COPY_" class="sref">_FP_FRAC_COPY_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>);333333333333333333333333333333333333333333333333\pL315" class="line" namon>L315">3315./a> 3 3.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=X" class="sref">X./a>##_s;33333333333333333333333333333333333333333333333333333333333\pL316" class="line" namon>L316">3316./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=X" class="sref">X./a>##_c;33333333333333333333333333333333333333333333333333333333333\pL317" class="line" namon>L317">3317./a> 3 3break;3333333333333333333333333333333333333333333333333333333333333333333\pL318" class="line" namon>L318">3318./a> 3 33333333333 33333333333333333333333333333333333333333333333333333333333333\pL319" class="line" namon>L319">3319./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>,.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>):333333333333333333333333333\pL320" class="line" namon>L320">3320./a> 3 3.a href="+code=R" class="sref">R./a>##_e =3.a href="+code=Y" class="sref">Y./a>##_e;33333333333333333333333333333333333333333333333333333333333\pL321" class="line" namon>L321">3321./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>,.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>):3333333333333333333333333333\pL322" class="line" namon>L322">3322./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>,.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>):3333333333333333333333333333333\pL323" class="line" namon>L323">3323./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>,.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>):333333333333333333333333333333\pL324" class="line" namon>L324">3324./a> 3 3.a href="+code=_FP_FRAC_COPY_" class="sref">_FP_FRAC_COPY_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=Y" class="sref">Y./a>);333333333333333333333333333333333333333333333333\pL325" class="line" namon>L325">3325./a> 3 3.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=Y" class="sref">Y./a>##_s;33333333333333333333333333333333333333333333333333333333333\pL326" class="line" namon>L326">3326./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=Y" class="sref">Y./a>##_c;33333333333333333333333333333333333333333333333333333333333\pL327" class="line" namon>L327">3327./a> 3 3break;3333333333333333333333333333333333333333333333333333333333333333333\pL328" class="line" namon>L328">3328./a> 3 33333333333 33333333333333333333333333333333333333333333333333333333333333\pL329" class="line" namon>L329">3329./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>,.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>):3333333333333333333333333333333\pL330" class="line" namon>L330">3330./a> 3 3if (.a href="+code=X" class="sref">X./a>##_s !=3.a href="+code=Y" class="sref">Y./a>##_s) 33333333333333333333333333333333333333333333333333333\pL331" class="line" namon>L331">3331./a> 3 333{ 333333333333333333333333333333333333333333333333333333333333333333333\pL332" class="line" namon>L332">3332./a> 3 33333.spa  class="comment">/* +INF + -INF => NAN3*/./spa  333333333333333333333333333333333333333333333\pL333" class="line" namon>L333">3333./a> 3 33333.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=_FP_NANFRAC_" class="sref">_FP_NANFRAC_./a>##fs);333333333333333333333333333333\pL334" class="line" namon>L334">3334./a> 3 33333.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=_FP_NANSIGN_" class="sref">_FP_NANSIGN_./a>##fs;33333333333333333333333333333333333333333333\pL335" class="line" namon>L335">3335./a> 3 33333.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>;33333333333333333333333333333333333333333333333333\pL336" class="line" namon>L336">3336./a> 3 33333.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_EX_INVALID" class="sref">FP_EX_INVALID./a> |3.a href="+code=FP_EX_INVALID_ISI" class="sref">FP_EX_INVALID_ISI./a>);33333333333333333\pL337" class="line" namon>L337">3337./a> 3 33333break;333333333333333333333333333333333333333333333333333333333333333\pL338" class="line" namon>L338">3338./a> 3 333}3333333333333333333333333333333333333333333333333333333333333333333333\pL339" class="line" namon>L339">3339./a> 3 3.spa  class="comment">/* FALLTHRU3*/./spa  33333333333333333333333333333333333333333333333333333333333\pL340" class="line" namon>L340">3340./a> 3 33333333333333333333333333333333333333333333333333333333333333333333333333\pL341" class="line" namon>L341">3341./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>,.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>):3333333333333333333333333333\pL342" class="line" namon>L342">3342./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>,.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>):333333333333333333333333333333\pL343" class="line" namon>L343">3343./a> 3 3.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=X" class="sref">X./a>##_s;33333333333333333333333333333333333333333333333333333333333\pL344" class="line" namon>L344">3344./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>;333333333333333333333333333333333333333333333333333333\pL345" class="line" namon>L345">3345./a> 3 3break;3333333333333333333333333333333333333333333333333333333333333333333\pL346" class="line" namon>L346">3346./a> 3 33333333333333333333333333333333333333333333333333333333333333333333333333\pL347" class="line" namon>L347">3347./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>,.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>):3333333333333333333333333333\pL348" class="line" namon>L348">3348./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>,.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>):333333333333333333333333333333\pL349" class="line" namon>L349">3349./a> 3 3.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=Y" class="sref">Y./a>##_s;33333333333333333333333333333333333333333333333333333333333\pL350" class="line" namon>L350">3350./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>;333333333333333333333333333333333333333333333333333333\pL351" class="line" namon>L351">3351./a> 3 3break;3333333333333333333333333333333333333333333333333333333333333333333\pL352" class="line" namon>L352">3352./a> 3 33333333333 33333333333333333333333333333333333333333333333333333333333333\pL353" class="line" namon>L353">3353./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>,.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>):33333333333333333333333333333\pL354" class="line" namon>L354">3354./a> 3 3.spa  class="comment">/* make sure the sign is correct3*/./spa  33333333333333333333333333333333333333\pL355" class="line" namon>L355">3355./a> 3 3if (.a href="+code=FP_ROUNDMODE" class="sref">FP_ROUNDMODE./a> ==3.a href="+code=FP_RND_MINF" class="sref">FP_RND_MINF./a>) 3333333333333333333333333333333333333333\pL356" class="line" namon>L356">3356./a> 3 333.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=X" class="sref">X./a>##_s |3.a href="+code=Y" class="sref">Y./a>##_s;3333333333333333333333333333333333333333333333333\pL357" class="line" namon>L357">3357./a> 3 3else                                                        3333333333333\pL358" class="line" namon>L358">3358./a> 3 333.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=X" class="sref">X./a>##_s & .a href="+code=Y" class="sref">Y./a>##_s;3333333333333333333333333333333333333333333333333\pL359" class="line" namon>L359">3359./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>;33333333333333333333333333333333333333333333333333333\pL360" class="line" namon>L360">3360./a> 3 3break;3333333333333333333333333333333333333333333333333333333333333333333\pL361" class="line" namon>L361">3361./a> 3 33333333333333333333333333333333333333333333333333333333333333333333333333\pL362" class="line" namon>L362">3362./a> 3default:3333333333333333333333333333333333333333333333333333333333333333333\pL363" class="line" namon>L363">3363./a> 3 3.a href="+code=abort" class="sref">abort./a>();33333333333333333333333333333333333333333333333333333333333333333\pL364" class="line" namon>L364">3364./a> 3}33333333333333333333333333333333333333333333333333333333333333333333333333\pL365" class="line" namon>L365">3365./a>} while (0)>L366" class="line" namon>L366">3366./a>>L367" class="line" namon>L367">3367./a>#define3.a href="+code=_FP_ADD" class="sref">_FP_ADD./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>)3.a href="+code=_FP_ADD_INTERNAL" class="sref">_FP_ADD_INTERNAL./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>,3.spa  class="string">'+'./spa  )>L368" class="line" namon>L368">3368./a>#define3.a href="+code=_FP_SUB" class="sref">_FP_SUB./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>) 33333333333333333333333333333333333333333333\pL369" class="line" namon>L369">3369./a> 3do { 3333333333333333333333333333333333333333333333333333333333333333333333\pL370" class="line" namon>L370">3370./a> 3 3if (.a href="+code=Y" class="sref">Y./a>##_c !=3.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>) .a href="+code=Y" class="sref">Y./a>##_s ^= 1;3333333333333333333333333333333333333\pL371" class="line" namon>L371">3371./a> 3 3.a href="+code=_FP_ADD_INTERNAL" class="sref">_FP_ADD_INTERNAL./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>,3.spa  class="string">'-'./spa  );3333333333333333333333333333333333\pL372" class="line" namon>L372">3372./a> 3} while (0)>L373" class="line" namon>L373">3373./a>>L374" class="line" namon>L374">3374./a>>L375" class="line" namon>L375">3375./a>.spa  class="comment">/*./spa  >L376" class="line" namon>L376">3376./a>.spa  class="comment"> * Main negation routine.  FIXME -- when we care about setting exception./spa  >L377" class="line" namon>L377">3377./a>.spa  class="comment"> * bits reliably, this will not3do.  We should examine3all of the fp classes../spa  >L378" class="line" namon>L378">3378./a>.spa  class="comment"> */./spa  >L379" class="line" namon>L379">3379./a>>L380" class="line" namon>L380">3380./a>#define3.a href="+code=_FP_NEG" class="sref">_FP_NEG./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>)33333333333\pL381" class="line" namon>L381">3381./a> 3do { 333333333333333333333333333333333\pL382" class="line" namon>L382">3382./a> 3 3.a href="+code=_FP_FRAC_COPY_" class="sref">_FP_FRAC_COPY_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>);33333333333\pL383" class="line" namon>L383">3383./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=X" class="sref">X./a>##_c;3333333333333333333333\pL384" class="line" namon>L384">3384./a> 3 3.a href="+code=R" class="sref">R./a>##_e =3.a href="+code=X" class="sref">X./a>##_e;3333333333333333333333\pL385" class="line" namon>L385">3385./a> 3 3.a href="+code=R" class="sref">R./a>##_s =31 ^3.a href="+code=X" class="sref">X./a>##_s;333333333333333333\pL386" class="line" namon>L386">3386./a> 3} while (0)>L387" class="line" namon>L387">3387./a>>L388" class="line" namon>L388">3388./a>>L389" class="line" namon>L389">3389./a>.spa  class="comment">/*./spa  >L390" class="line" namon>L390">3390./a>.spa  class="comment"> * Main multiplication routine.  The input values should be cooked../spa  >L391" class="line" namon>L391">3391./a>.spa  class="comment"> */./spa  >L392" class="line" namon>L392">3392./a>>L393" class="line" namon>L393">3393./a>#define3.a href="+code=_FP_MUL" class="sref">_FP_MUL./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>) 33333333333333333333333\pL394" class="line" namon>L394">3394./a>do { 333333333333333333333333333333333333333333333333333\pL395" class="line" namon>L395">3395./a> 3.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=X" class="sref">X./a>##_s ^3.a href="+code=Y" class="sref">Y./a>##_s;33333333333333333333333333333333\pL396" class="line" namon>L396">3396./a> 3switch (.a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=X" class="sref">X./a>##_c,3.a href="+code=Y" class="sref">Y./a>##_c)) 333333333333333\pL397" class="line" namon>L397">3397./a> 3{ 3333333333333333333333333333333333333333333333333333\pL398" class="line" namon>L398">3398./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>,.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>):3333\pL399" class="line" namon>L399">3399./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>;333333333333333333333333333333\pL400" class="line" namon>L400">3400./a> 3 3.a href="+code=R" class="sref">R./a>##_e =3.a href="+code=X" class="sref">X./a>##_e +3.a href="+code=Y" class="sref">Y./a>##_e +31;33333333333333333333333333\pL401" class="line" namon>L401">3401./a> 3 33333333333333333333333333333333333333333333333333333\pL402" class="line" namon>L402">3402./a> 3 3.a href="+code=_FP_MUL_MEAT_" class="sref">_FP_MUL_MEAT_./a>##fs(.a href="+code=R" class="sref">R./a>,.a href="+code=X" class="sref">X./a>,.a href="+code=Y" class="sref">Y./a>);333333333333333333333333333\pL403" class="line" namon>L403">3403./a> 3 33333333333333333333333333333333333333333333333333333\pL404" class="line" namon>L404">3404./a> 3 3if (.a href="+code=_FP_FRAC_OVERP_" class="sref">_FP_FRAC_OVERP_./a>##wc(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=R" class="sref">R./a>)) 33333333333333333333\pL405" class="line" namon>L405">3405./a> 3 333.a href="+code=_FP_FRAC_SRS_" class="sref">_FP_FRAC_SRS_./a>##wc(.a href="+code=R" class="sref">R./a>,31,3.a href="+code=_FP_WFRACBITS_" class="sref">_FP_WFRACBITS_./a>##fs);333333\pL406" class="line" namon>L406">3406./a> 3 3else                                                \pL407" class="line" namon>L407">3407./a> 3 333.a href="+code=R" class="sref">R./a>##_e--;333333333333333333333333333333333333333333\pL408" class="line" namon>L408">3408./a> 3 3break;3333333333333333333333333333333333333333333333\pL409" class="line" namon>L409">3409./a> 3 33333333333333333333333333333333333333333333333333333\pL410" class="line" namon>L410">3410./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>,.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>):3333333333\pL411" class="line" namon>L411">3411./a> 3 3.a href="+code=_FP_CHOOSENAN" class="sref">_FP_CHOOSENAN./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>,3.spa  class="string">'*'./spa  );3333333333333333\pL412" class="line" namon>L412">3412./a> 3 3break;3333333333333333333333333333333333333333333333\pL413" class="line" namon>L413">3413./a> 3 33333333333333333333333333333333333333333333333333333\pL414" class="line" namon>L414">3414./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>,.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>):3333333\pL415" class="line" namon>L415">3415./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>,.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>):3333333333\pL416" class="line" namon>L416">3416./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>,.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>):333333333\pL417" class="line" namon>L417">3417./a> 3 3.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=X" class="sref">X./a>##_s;33333333333333333333333333333333333333\pL418" class="line" namon>L418">3418./a> 3 33333333333 33333333333333333333333333333333333333333\pL419" class="line" namon>L419">3419./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>,.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>):3333333333\pL420" class="line" namon>L420">3420./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>,.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>):3333333\pL421" class="line" namon>L421">3421./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>,.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>):333333\pL422" class="line" namon>L422">3422./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>,.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>):33333333\pL423" class="line" namon>L423">3423./a> 3 3.a href="+code=_FP_FRAC_COPY_" class="sref">_FP_FRAC_COPY_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>);333333333333333333333333333\pL424" class="line" namon>L424">3424./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=X" class="sref">X./a>##_c;33333333333333333333333333333333333333\pL425" class="line" namon>L425">3425./a> 3 3break;3333333333333333333333333333333333333333333333\pL426" class="line" namon>L426">3426./a> 3 33333333333333333333333333333333333333333333333333333\pL427" class="line" namon>L427">3427./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>,.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>):3333333\pL428" class="line" namon>L428">3428./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>,.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>):3333333333\pL429" class="line" namon>L429">3429./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>,.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>):333333333\pL430" class="line" namon>L430">3430./a> 3 3.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=Y" class="sref">Y./a>##_s;33333333333333333333333333333333333333\pL431" class="line" namon>L431">3431./a> 3 33333333333333333333333333333333333333333333333333333\pL432" class="line" namon>L432">3432./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>,.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>):3333333\pL433" class="line" namon>L433">3433./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>,.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>):333333\pL434" class="line" namon>L434">3434./a> 3 3.a href="+code=_FP_FRAC_COPY_" class="sref">_FP_FRAC_COPY_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=Y" class="sref">Y./a>);333333333333333333333333333\pL435" class="line" namon>L435">3435./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=Y" class="sref">Y./a>##_c;33333333333333333333333333333333333333\pL436" class="line" namon>L436">3436./a> 3 3break;3333333333333333333333333333333333333333333333\pL437" class="line" namon>L437">3437./a> 3 33333333333333333333333333333333333333333333333333333\pL438" class="line" namon>L438">3438./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>,.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>):333333333\pL439" class="line" namon>L439">3439./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>,.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>):333333333\pL440" class="line" namon>L440">3440./a> 3 3.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=_FP_NANSIGN_" class="sref">_FP_NANSIGN_./a>##fs;333333333333333333333333333\pL441" class="line" namon>L441">3441./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>;333333333333333333333333333333333\pL442" class="line" namon>L442">3442./a> 3 3.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=_FP_NANFRAC_" class="sref">_FP_NANFRAC_./a>##fs);3333333333333\pL443" class="line" namon>L443">3443./a> 3 3.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_EX_INVALID" class="sref">FP_EX_INVALID./a> |3.a href="+code=FP_EX_INVALID_IMZ" class="sref">FP_EX_INVALID_IMZ./a>);\pL444" class="line" namon>L444">3444./a> 3 3break;3333333333333333333333333333333333333333333333\pL445" class="line" namon>L445">3445./a> 3 33333333333333333333333333333333333333333333333333333\pL446" class="line" namon>L446">3446./a> 3default:3333333333333333333333333333333333333333333333\pL447" class="line" namon>L447">3447./a> 3 3.a href="+code=abort" class="sref">abort./a>();33333333333333333333333333333333333333333333\pL448" class="line" namon>L448">3448./a> 3}33333333333333333333333333333333333333333333333333333\pL449" class="line" namon>L449">3449./a>} while (0)>L450" class="line" namon>L450">3450./a>>L451" class="line" namon>L451">3451./a>>L452" class="line" namon>L452">3452./a>.spa  class="comment">/*./spa  >L453" class="line" namon>L453">3453./a>.spa  class="comment"> * Main division routine.  The input values should be cooked../spa  >L454" class="line" namon>L454">3454./a>.spa  class="comment"> */./spa  >L455" class="line" namon>L455">3455./a>>L456" class="line" namon>L456">3456./a>#define3.a href="+code=_FP_DIV" class="sref">_FP_DIV./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>) 33333333333333333333333\pL457" class="line" namon>L457">3457./a>do { 333333333333333333333333333333333333333333333333333\pL458" class="line" namon>L458">3458./a> 3.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=X" class="sref">X./a>##_s ^3.a href="+code=Y" class="sref">Y./a>##_s;33333333333333333333333333333333\pL459" class="line" namon>L459">3459./a> 3switch (.a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=X" class="sref">X./a>##_c,3.a href="+code=Y" class="sref">Y./a>##_c)) 333333333333333\pL460" class="line" namon>L460">3460./a> 3{ 3333333333333333333333333333333333333333333333333333\pL461" class="line" namon>L461">3461./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>,.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>):3333\pL462" class="line" namon>L462">3462./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>;333333333333333333333333333333\pL463" class="line" namon>L463">3463./a> 3 3.a href="+code=R" class="sref">R./a>##_e =3.a href="+code=X" class="sref">X./a>##_e -3.a href="+code=Y" class="sref">Y./a>##_e;333333333333333333333333333333\pL464" class="line" namon>L464">3464./a> 3 33333333333333333333333333333333333333333333333333333\pL465" class="line" namon>L465">3465./a> 3 3.a href="+code=_FP_DIV_MEAT_" class="sref">_FP_DIV_MEAT_./a>##fs(.a href="+code=R" class="sref">R./a>,.a href="+code=X" class="sref">X./a>,.a href="+code=Y" class="sref">Y./a>);333333333333333333333333333\pL466" class="line" namon>L466">3466./a> 3 3break;3333333333333333333333333333333333333333333333\pL467" class="line" namon>L467">3467./a> 3 33333333333333333333333333333333333333333333333333333\pL468" class="line" namon>L468">3468./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>,.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>):3333333333\pL469" class="line" namon>L469">3469./a> 3 3.a href="+code=_FP_CHOOSENAN" class="sref">_FP_CHOOSENAN./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>,3.spa  class="string">'/'./spa  );3333333333333333\pL470" class="line" namon>L470">3470./a> 3 3break;3333333333333333333333333333333333333333333333\pL471" class="line" namon>L471">3471./a> 3 33333333333333333333333333333333333333333333333333333\pL472" class="line" namon>L472">3472./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>,.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>):3333333\pL473" class="line" namon>L473">3473./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>,.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>):3333333333\pL474" class="line" namon>L474">3474./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>,.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>):333333333\pL475" class="line" namon>L475">3475./a> 3 3.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=X" class="sref">X./a>##_s;33333333333333333333333333333333333333\pL476" class="line" namon>L476">3476./a> 3 3.a href="+code=_FP_FRAC_COPY_" class="sref">_FP_FRAC_COPY_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>);333333333333333333333333333\pL477" class="line" namon>L477">3477./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=X" class="sref">X./a>##_c;33333333333333333333333333333333333333\pL478" class="line" namon>L478">3478./a> 3 3break;3333333333333333333333333333333333333333333333\pL479" class="line" namon>L479">3479./a> 3 33333333333333333333333333333333333333333333333333333\pL480" class="line" namon>L480">3480./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>,.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>):3333333\pL481" class="line" namon>L481">3481./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>,.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>):3333333333\pL482" class="line" namon>L482">3482./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>,.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>):333333333\pL483" class="line" namon>L483">3483./a> 3 3.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=Y" class="sref">Y./a>##_s;33333333333333333333333333333333333333\pL484" class="line" namon>L484">3484./a> 3 3.a href="+code=_FP_FRAC_COPY_" class="sref">_FP_FRAC_COPY_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=Y" class="sref">Y./a>);333333333333333333333333333\pL485" class="line" namon>L485">3485./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=Y" class="sref">Y./a>##_c;33333333333333333333333333333333333333\pL486" class="line" namon>L486">3486./a> 3 3break;3333333333333333333333333333333333333333333333\pL487" class="line" namon>L487">3487./a> 3 33333333333333333333333333333333333333333333333333333\pL488" class="line" namon>L488">3488./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>,.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>):3333333\pL489" class="line" namon>L489">3489./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>,.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>):333333333\pL490" class="line" namon>L490">3490./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>,.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>):333333\pL491" class="line" namon>L491">3491./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>;33333333333333333333333333333333\pL492" class="line" namon>L492">3492./a> 3 3break;3333333333333333333333333333333333333333333333\pL493" class="line" namon>L493">3493./a> 3 33333333333333333333333333333333333333333333333333333\pL494" class="line" namon>L494">3494./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>,.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>):333333\pL495" class="line" namon>L495">3495./a> 3 3.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_EX_DIVZERO" class="sref">FP_EX_DIVZERO./a>);33333333333333333333\pL496" class="line" namon>L496">3496./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>,.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>):333333333\pL497" class="line" namon>L497">3497./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>,.a href="+code=FP_CLS_NORMAL" class="sref">FP_CLS_NORMAL./a>):3333333\pL498" class="line" namon>L498">3498./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>;333333333333333333333333333333333\pL499" class="line" namon>L499">3499./a> 3 3break;3333333333333333333333333333333333333333333333\pL500" class="line" namon>L500">3500./a> 3 33333333333333333333333333333333333333333333333333333\pL501" class="line" namon>L501">3501./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>,.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>):3333333333\pL502" class="line" namon>L502">3502./a> 3 3.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=_FP_NANSIGN_" class="sref">_FP_NANSIGN_./a>##fs;333333333333333333333333333\pL503" class="line" namon>L503">3503./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>;333333333333333333333333333333333\pL504" class="line" namon>L504">3504./a> 3 3.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=_FP_NANFRAC_" class="sref">_FP_NANFRAC_./a>##fs);3333333333333\pL505" class="line" namon>L505">3505./a> 3 3.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_EX_INVALID" class="sref">FP_EX_INVALID./a> |3.a href="+code=FP_EX_INVALID_IDI" class="sref">FP_EX_INVALID_IDI./a>);\pL506" class="line" namon>L506">3506./a> 3 3break;3333333333333333333333333333333333333333333333\pL507" class="line" namon>L507">3507./a> 3 33333333333333333333333333333333333333333333333333333\pL508" class="line" namon>L508">3508./a> 3case .a href="+code=_FP_CLS_COMBINE" class="sref">_FP_CLS_COMBINE./a>(.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>,.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>):33333333\pL509" class="line" namon>L509">3509./a> 3 3.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=_FP_NANSIGN_" class="sref">_FP_NANSIGN_./a>##fs;333333333333333333333333333\pL510" class="line" namon>L510">3510./a> 3 3.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>;333333333333333333333333333333333\pL511" class="line" namon>L511">3511./a> 3 3.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=_FP_NANFRAC_" class="sref">_FP_NANFRAC_./a>##fs);3333333333333\pL512" class="line" namon>L512">3512./a> 3 3.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_EX_INVALID" class="sref">FP_EX_INVALID./a> |3.a href="+code=FP_EX_INVALID_ZDZ" class="sref">FP_EX_INVALID_ZDZ./a>);\pL513" class="line" namon>L513">3513./a> 3 3break;3333333333333333333333333333333333333333333333\pL514" class="line" namon>L514">3514./a> 3 33333333333333333333333333333333333333333333333333333\pL515" class="line" namon>L515">3515./a> 3default:3333333333333333333333333333333333333333333333\pL516" class="line" namon>L516">3516./a> 3 3.a href="+code=abort" class="sref">abort./a>();33333333333333333333333333333333333333333333\pL517" class="line" namon>L517">3517./a> 3}33333333333333333333333333333333333333333333333333333\pL518" class="line" namon>L518">3518./a>} while (0)>L519" class="line" namon>L519">3519./a>>L520" class="line" namon>L520">3520./a>>L521" class="line" namon>L521">3521./a>.spa  class="comment">/*./spa  >L522" class="line" namon>L522">3522./a>.spa  class="comment"> * Main differential comparison routine.  The inputs should be raw not./spa  >L523" class="line" namon>L523">3523./a>.spa  class="comment"> * cooked.  The return is -1,0,1 for normal values, 2 otherwise../spa  >L524" class="line" namon>L524">3524./a>.spa  class="comment"> */./spa  >L525" class="line" namon>L525">3525./a>>L526" class="line" namon>L526">3526./a>#define3.a href="+code=_FP_CMP" class="sref">_FP_CMP./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=ret" class="sref">ret./a>,3.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>,3.a href="+code=un" class="sref">un./a>)3333333333333333333333333333333333\pL527" class="line" namon>L527">3527./a> 3do { 33333333333333333333333333333333333333333333333333333333333333333\pL528" class="line" namon>L528">3528./a> 3 3.spa  class="comment">/* NANs are unordered */./spa  33333333333333333333333333333333333333333333\pL529" class="line" namon>L529">3529./a> 3 3if ((.a href="+code=X" class="sref">X./a>##_e ==3.a href="+code=_FP_EXPMAX_" class="sref">_FP_EXPMAX_./a>##fs && !.a href="+code=_FP_FRAC_ZEROP_" class="sref">_FP_FRAC_ZEROP_./a>##wc(.a href="+code=X" class="sref">X./a>))33333333333\pL530" class="line" namon>L530">3530./a> 3 33333|| (.a href="+code=Y" class="sref">Y./a>##_e ==3.a href="+code=_FP_EXPMAX_" class="sref">_FP_EXPMAX_./a>##fs && !.a href="+code=_FP_FRAC_ZEROP_" class="sref">_FP_FRAC_ZEROP_./a>##wc(.a href="+code=Y" class="sref">Y./a>)))3333333\pL531" class="line" namon>L531">3531./a> 3 333{ 3333333333333333333333333333333333333333333333333333333333333333\pL532" class="line" namon>L532">3532./a> 3 33333.a href="+code=ret" class="sref">ret./a> =3.a href="+code=un" class="sref">un./a>;3333333333333333333333333333333333333333333333333333333\pL533" class="line" namon>L533">3533./a> 3 333}33333333333333333333333333333333333333333333333333333333333333333\pL534" class="line" namon>L534">3534./a> 3 3else                                                3333333333333333\pL535" class="line" namon>L535">3535./a> 3 333{ 3333333333333333333333333333333333333333333333333333333333333333\pL536" class="line" namon>L536">3536./a> 3 33333int3.a href="+code=__is_zero_x" class="sref">__is_zero_x./a>;333333333333333333333333333333333333333333333333\pL537" class="line" namon>L537">3537./a> 3 33333int3.a href="+code=__is_zero_y" class="sref">__is_zero_y./a>;333333333333333333333333333333333333333333333333\pL538" class="line" namon>L538">3538./a> 3 33333333333 333333333333333333333333333333333333333333333333333333333\pL539" class="line" namon>L539">3539./a> 3 33333.a href="+code=__is_zero_x" class="sref">__is_zero_x./a> =3(!.a href="+code=X" class="sref">X./a>##_e && .a href="+code=_FP_FRAC_ZEROP_" class="sref">_FP_FRAC_ZEROP_./a>##wc(.a href="+code=X" class="sref">X./a>))3? 1 : 0;3333333\pL540" class="line" namon>L540">3540./a> 3 33333.a href="+code=__is_zero_y" class="sref">__is_zero_y./a> =3(!.a href="+code=Y" class="sref">Y./a>##_e && .a href="+code=_FP_FRAC_ZEROP_" class="sref">_FP_FRAC_ZEROP_./a>##wc(.a href="+code=Y" class="sref">Y./a>))3? 1 : 0;3333333\pL541" class="line" namon>L541">3541./a> 3 333333333333333333333333333333333333333333333333333333333333333333333\pL542" class="line" namon>L542">3542./a> 3 33333if (.a href="+code=__is_zero_x" class="sref">__is_zero_x./a> && .a href="+code=__is_zero_y" class="sref">__is_zero_y./a>)333333333333333333333333333333333\pL543" class="line" namon>L543">3543./a> 3 3333333333333.a href="+code=ret" class="sref">ret./a> =30;333333333333333333333333333333333333333333333333\pL544" class="line" namon>L544">3544./a> 3 33333else if (.a href="+code=__is_zero_x" class="sref">__is_zero_x./a>)3333333333333333333333333333333333333333333\pL545" class="line" namon>L545">3545./a> 3 3333333333333.a href="+code=ret" class="sref">ret./a> =3.a href="+code=Y" class="sref">Y./a>##_s3? 1 : -1;33333333333333333333333333333333333\pL546" class="line" namon>L546">3546./a> 3 33333else if (.a href="+code=__is_zero_y" class="sref">__is_zero_y./a>)3333333333333333333333333333333333333333333\pL547" class="line" namon>L547">3547./a> 3 3333333333333.a href="+code=ret" class="sref">ret./a> =3.a href="+code=X" class="sref">X./a>##_s ? -1 : 1;33333333333333333333333333333333333\pL548" class="line" namon>L548">3548./a> 3 33333else if (.a href="+code=X" class="sref">X./a>##_s !=3.a href="+code=Y" class="sref">Y./a>##_s)3333333333333333333333333333333333333333\pL549" class="line" namon>L549">3549./a> 3 3333333.a href="+code=ret" class="sref">ret./a> =3.a href="+code=X" class="sref">X./a>##_s ? -1 : 1;33333333333333333333333333333333333333333\pL550" class="line" namon>L550">3550./a> 3 33333else if (.a href="+code=X" class="sref">X./a>##_e > .a href="+code=Y" class="sref">Y./a>##_e)33333333333333333333333333333333333333333\pL551" class="line" namon>L551">3551./a> 3 3333333.a href="+code=ret" class="sref">ret./a> =3.a href="+code=X" class="sref">X./a>##_s ? -1 : 1;33333333333333333333333333333333333333333\pL552" class="line" namon>L552">3552./a> 3 33333else if (.a href="+code=X" class="sref">X./a>##_e < .a href="+code=Y" class="sref">Y./a>##_e)33333333333333333333333333333333333333333\pL553" class="line" namon>L553">3553./a> 3 3333333.a href="+code=ret" class="sref">ret./a> =3.a href="+code=X" class="sref">X./a>##_s ? 1 : -1;33333333333333333333333333333333333333333\pL554" class="line" namon>L554">3554./a> 3 33333else if (.a href="+code=_FP_FRAC_GT_" class="sref">_FP_FRAC_GT_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>))33333333333333333333333333333333\pL555" class="line" namon>L555">3555./a> 3 3333333.a href="+code=ret" class="sref">ret./a> =3.a href="+code=X" class="sref">X./a>##_s ? -1 : 1;33333333333333333333333333333333333333333\pL556" class="line" namon>L556">3556./a> 3 33333else if (.a href="+code=_FP_FRAC_GT_" class="sref">_FP_FRAC_GT_./a>##wc(.a href="+code=Y" class="sref">Y./a>,3.a href="+code=X" class="sref">X./a>))33333333333333333333333333333333\pL557" class="line" namon>L557">3557./a> 3 3333333.a href="+code=ret" class="sref">ret./a> =3.a href="+code=X" class="sref">X./a>##_s ? 1 : -1;33333333333333333333333333333333333333333\pL558" class="line" namon>L558">3558./a> 3 33333else                                                            \pL559" class="line" namon>L559">3559./a> 3 3333333.a href="+code=ret" class="sref">ret./a> =30;333333333333333333333333333333333333333333333333      \pL560" class="line" namon>L560">3560./a> 3 333}33333333333333333333333333333333333333333333333333333333333333333\pL561" class="line" namon>L561">3561./a> 3} while (0)>L562" class="line" namon>L562">3562./a>>L563" class="line" namon>L563">3563./a>>L564" class="line" namon>L564">3564./a>.spa  class="comment">/* Simplification for strict equality.  */./spa  >L565" class="line" namon>L565">3565./a>>L566" class="line" namon>L566">3566./a>#define3.a href="+code=_FP_CMP_EQ" class="sref">_FP_CMP_EQ./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=ret" class="sref">ret./a>,3.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>)3333333333333333333333333333333333333\pL567" class="line" namon>L567">3567./a> 3do { 3333333333333333333333333333333333333333333333333333333333333333333\pL568" class="line" namon>L568">3568./a> 3 3.spa  class="comment">/* NANs are unordered */./spa  3333333333333333333333333333333333333333333333\pL569" class="line" namon>L569">3569./a> 3 3if ((.a href="+code=X" class="sref">X./a>##_e ==3.a href="+code=_FP_EXPMAX_" class="sref">_FP_EXPMAX_./a>##fs && !.a href="+code=_FP_FRAC_ZEROP_" class="sref">_FP_FRAC_ZEROP_./a>##wc(.a href="+code=X" class="sref">X./a>))3333333333333\pL570" class="line" namon>L570">3570./a> 3 33333|| (.a href="+code=Y" class="sref">Y./a>##_e ==3.a href="+code=_FP_EXPMAX_" class="sref">_FP_EXPMAX_./a>##fs && !.a href="+code=_FP_FRAC_ZEROP_" class="sref">_FP_FRAC_ZEROP_./a>##wc(.a href="+code=Y" class="sref">Y./a>)))333333333\pL571" class="line" namon>L571">3571./a> 3 333{ 333333333333333333333333333333333333333333333333333333333333333333\pL572" class="line" namon>L572">3572./a> 3 33333.a href="+code=ret" class="sref">ret./a> =31;3333333333333333333333333333333333333333333333333333333333\pL573" class="line" namon>L573">3573./a> 3 333}3333333333333333333333333333333333333333333333333333333333333333333\pL574" class="line" namon>L574">3574./a> 3 3else                                                333333333333333333\pL575" class="line" namon>L575">3575./a> 3 333{ 333333333333333333333333333333333333333333333333333333333333333333\pL576" class="line" namon>L576">3576./a> 3 33333.a href="+code=ret" class="sref">ret./a> =3!(.a href="+code=X" class="sref">X./a>##_e ==3.a href="+code=Y" class="sref">Y./a>##_e 3333333333333333333333333333333333333333333\pL577" class="line" namon>L577">3577./a> 3 3333333333333&& .a href="+code=_FP_FRAC_EQ_" class="sref">_FP_FRAC_EQ_./a>##wc(.a href="+code=X" class="sref">X./a>,3.a href="+code=Y" class="sref">Y./a>)333333333333333333333333333333333\pL578" class="line" namon>L578">3578./a> 3 33333333333 3&& (.a href="+code=X" class="sref">X./a>##_s ==3.a href="+code=Y" class="sref">Y./a>##_s3|| !.a href="+code=X" class="sref">X./a>##_e && .a href="+code=_FP_FRAC_ZEROP_" class="sref">_FP_FRAC_ZEROP_./a>##wc(.a href="+code=X" class="sref">X./a>)));3\pL579" class="line" namon>L579">3579./a> 3 333}3333333333333333333333333333333333333333333333333333333333333333333\pL580" class="line" namon>L580">3580./a> 3} while (0)>L581" class="line" namon>L581">3581./a>>L582" class="line" namon>L582">3582./a>.spa  class="comment">/*./spa  >L583" class="line" namon>L583">3583./a>.spa  class="comment"> * Main square root routine.  The input value should be cooked../spa  >L584" class="line" namon>L584">3584./a>.spa  class="comment"> */./spa  >L585" class="line" namon>L585">3585./a>>L586" class="line" namon>L586">3586./a>#define3.a href="+code=_FP_SQRT" class="sref">_FP_SQRT./a>(.a href="+code=fs" class="sref">fs./a>,3.a href="+code=wc" class="sref">wc./a>,3.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>)333333333333333333333333333333333333333333\pL587" class="line" namon>L587">3587./a>do { 3333333333333333333333333333333333333333333333333333333333333333333\pL588" class="line" namon>L588">3588./a> 3 3.a href="+code=_FP_FRAC_DECL_" class="sref">_FP_FRAC_DECL_./a>##wc(.a href="+code=T" class="sref">T./a>); .a href="+code=_FP_FRAC_DECL_" class="sref">_FP_FRAC_DECL_./a>##wc(.a href="+code=S" class="sref">S./a>); 3333333333333333333333\pL589" class="line" namon>L589">3589./a> 3 3.a href="+code=_FP_W_TYPE" class="sref">_FP_W_TYPE./a> .a href="+code=q" class="sref">q./a>;3333333333333333333333333333333333333333333333333333333\pL590" class="line" namon>L590">3590./a> 3 3switch (.a href="+code=X" class="sref">X./a>##_c)333333333333333333333333333333333333333333333333333333\pL591" class="line" namon>L591">3591./a> 3 3{ 333333333333333333333333333333333333333333333333333333333333333333\pL592" class="line" namon>L592">3592./a> 3 3case .a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>:3333333333333333333333333333333333333333333333333333\pL593" class="line" namon>L593">3593./a> 3 33333.a href="+code=_FP_FRAC_COPY_" class="sref">_FP_FRAC_COPY_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=X" class="sref">X./a>);333333333333333333333333333333333333333\pL594" class="line" namon>L594">3594./a> 3 33333.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=X" class="sref">X./a>##_s;33333333333333333333333333333333333333333333333333\pL595" class="line" namon>L595">3595./a> 3 33333.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>;333333333333333333333333333333333333333333333\pL596" class="line" namon>L596">3596./a> 3 33333break;3333333333333333333333333333333333333333333333333333333333\pL597" class="line" namon>L597">3597./a> 3 3case .a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>:3333333333333333333333333333333333333333333333333333\pL598" class="line" namon>L598">3598./a> 3 33333if (.a href="+code=X" class="sref">X./a>##_s)333333333333333333333333333333333333333333333333333333\pL599" class="line" namon>L599">3599./a> 3 3333333{ 333333333333333333333333333333333333333333333333333333333333\pL600" class="line" namon>L600">3600./a> 3 333333333.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=_FP_NANSIGN_" class="sref">_FP_NANSIGN_./a>##fs;33333333333333333333333333333333333\pL601" class="line" namon>L601">3601./a> 3 333333333.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_NAN" class="sref">FP_CLS_NAN./a>;3.spa  class="comment">/* NAN */./spa  3333333333333333333333333333333\pL602" class="line" namon>L602">3602./a> 3 333333333.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=_FP_NANFRAC_" class="sref">_FP_NANFRAC_./a>##fs);333333333333333333333\pL603" class="line" namon>L603">3603./a> 3 333333333.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_EX_INVALID" class="sref">FP_EX_INVALID./a>);3333333333333333333333333333\pL604" class="line" namon>L604">3604./a> 3 3333333}3333333333333333333333333333333333333333333333333333333333333\pL605" class="line" namon>L605">3605./a> 3 33333else                                                            \pL606" class="line" namon>L606">3606./a> 3 3333333{ 333333333333333333333333333333333333333333333333333333333333\pL607" class="line" namon>L607">3607./a> 3 333333333.a href="+code=R" class="sref">R./a>##_s =30;333333333333333333333333333333333333333333333333  \pL608" class="line" namon>L608">3608./a> 3 333333333.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_INF" class="sref">FP_CLS_INF./a>;3.spa  class="comment">/* sqrt(+inf) =3+inf */./spa  33333333333333333\pL609" class="line" namon>L609">3609./a> 3 3333333}3333333333333333333333333333333333333333333333333333333333333\pL610" class="line" namon>L610">3610./a> 3 33333break;3333333333333333333333333333333333333333333333333333333333\pL611" class="line" namon>L611">3611./a> 3 3case .a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>:333333333333333333333333333333333333333333333333333\pL612" class="line" namon>L612">3612./a> 3 33333.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=X" class="sref">X./a>##_s;33333333333333333333333333333333333333333333333333\pL613" class="line" namon>L613">3613./a> 3 33333.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZERO./a>;3.spa  class="comment">/* sqrt(+-0) =3+-0i573" idn>L573" class="line" namon>L5escludewc" c /math-emu612-common.h#L510" idn>L610" class="line" namon>L610">3610./a> 3 33333break;3333333333333333333333333333333333333333333333333333333333\pL611" class="liINF" class="sref">FP_CLS_INF./a>,.a hra href="+code=FP_CLS_ZERO" class="sref">FP_CLS_ZER3333333333333333333333333333333333333333333         333\pL576" c="line" namon>L607">3607./a> 3 333333333.a href="+code=R" class="sref">R./a>##_s_ZER3333333333333333333333333333333333333333333333333333333\pL598" class="line" namon>L598">3598./a> 3 33333if (.a href="+code=X" class="sref">X./a>##_s)333333333333333333333333333333333333333363333333336333\pL606" class="line" namon>L606">3606./a> 3 3333333{ 33333333333333333333333333333333333333333333333/a>} whil6 (0)>L601" class="line" namon>L601">3601./a> 3 333333333.a href="+code=R" class="sref">R./a>##_c =3.a href="+code=FP_CLS_NAN"s class="sref">FP_CLS_NAN./a>;3.spa  class="333333333333333333333333333333333333333333L519">3516./a>>L600" class="line" namon>L600">3600./a> 3 333333333.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=_FP_NANSIGN_" class="sref">_FP_NANSIGN_./a>##fs;3333333333333333333333L520">3526./a>>L601" class="line" namon>L602">3602./a> 3 333333333.a href="+code=_FP_FRAC_SET_" class="sref">_FP_FRAC_SET_./a>##wc(.a href="+code=R" class="sref">R./a>,3.a href="+code=_FP_NANFRAC_" class="sref">_FP_NANFRAC_./a>##fs);33333333ent">/*./6pa  >L602" class="line" namon>L603">3603./a> 3 333333333.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_EX_INVALID" class="sref">FP_EX_INVALID./a>);333333333333333raw not./6pa  >L610" class="line" namon>L610">3610./a> 3 33333break="sref">FP_EX_INVALID./a>);333333333333333rs="line" pa  >L604" class="line" namon>L604">3604./a> 3 3333333}333333333333333333333333333333333333333333333333nt"> */./6pa  >L595" class="line" namon>L595">3595./a> 3 33333.a href="+cNF" class="sref">FP_CLS_INF./a>,.a hrdn>L610" class="line" namon>L610">3610./a> 333333333333333333333333333333333333333333n         ./a>>L598" class="line" namon>L598">3598">Y./a> 1/a> 3 33333if (.a href="+code=X" class="sref">X./a>333333333333333333333333333333333333333333n333333333333\pL557" cla 3 3333333Lode=T" class="sref">T./a>)3Lod .a href="+code=_FP_FRAC_EQ_" class="sref">_FP_1lass="sref">R./a>,3.a href="+code=X" cla333333333333333333333333333333333333333333n333333336333\pL595" class="line" namon>L595">e612./a> 3 33333.a href="+code=R" class="sr3 333333333./a> 3 33333.a href="+code=ret" class="sref">re333333333333333333333333333333333333333333na>} whil6333\pL539" cl"line" namon>L602">3602./a> 3 333333333.a href="+code=_FP_FRAC_SL_" class="sref">_FP__FRAC_SET_./a>##wc(.a##_cef="+code=R" class="sref##_cef="+a href="lass="sref">R./a>,3.a href333333333333333333333333333333333333333333))33333336333\pX./a>))3? 1 : 0;332">3532./a> 3 33333.a href="+code=ret" class="sref">ret./a> =3.a href="+code=un" class="sref">un./a>;3333" class="sref">ret./a> =3.a href="3>ret.183333" class="sref">r1/6pa  > =3.a href="3>ret.183333" class="sref">r1/6pa al 610">3610./a> 3 33333break="sref">FP_E6'6pa al 610">3610./a> 3 33333break="sref">FLdRFLOW/a>;3333" class="sreFLdRFLOW/ss="srefde=R" class="sr3 333333333./a> 3 33333.a href="+csref">r1/6pa  > =3.a href="3>ret.>##fs);333333333333333333333\p3532./a> 3  nam_MEA :ref="+code=ret" class="sref">ret./a> =3.a href="+code=un" clas+code=_FP_FRAC_SL_" class="sref">_FP__ode=_FP_FRAC_DECL_" c+code=wc" class="sref">wc./a>,3.a href="+code=ret" clas6'6pa al 610">3610./aass="sref">_FP_1lass="sref">R./asref">r1/6pa  > =3.a href="3>ret.3333333333333333333333333333\pL579" class="line" namon>L579">3579./a> 3 333}3333333333333333333333333333333333333633333333363333333333333333333\pL580" class="line" na6         6   3333333333333333\pL585" cl633333333363333333333333333333\pL582" class="line" namon>L582">3582./a>633333333363333333333333333333\pL582" class="line" namon>L582">3582./a>633333333333333333333333333333\pL584" class="line" namon>L584">3584./a>.633333333363333333333333333333\pL519" cl6sref">X./6>))3? 1 : 0;3333333\pR./a>##_c =3.a href="+Rss="ED cR./have following23./a>.:4" idn>L584" class="line" namon>L584">3584./a>.6sref">Y./6>))3? 1 : 0;3333333\pL584" class="line" namon>L584">3584./a>.6s>##fs);333333333333333333333\p * Main square root routine.  The input633333333363333333333333333333\p * Main square root routine.  The input633333333363333333333333333333\p * Main square root routine.  The input63        63333333333333333333\p * Main square root routine.  The input633333333363333333333333333333\p * Main square root routine.  The input633333333363333333333333333333\p * Main square root routine.  The input633333333333333333333333333333\p * Main square root routine.  The input633333333363333333333333333333\p * Main square root routine.  The input633333333363333333333333333333\pR./a>##_c =3.a hrefL522222on2t3" sign  idnuch6h-emcomment"> * Main square root routine.  The input633333333363333333333333333333\pL584" class="line" namon>L584">3584./a>.633333333363333333333333333333\pL586" class="line"TO_INn333333333.a href="+c3.a href="+code=_FP_CMP_EQ" class="sref">_FP_CMP_EQ./a>(.a href="+code=fs" class=FP_CMP_EQ./a>(.r_" c+code=wc" class="sref">wc./a>,3.a href="+code=ret" clasrsizeFP_CMP_EQ./a>(.rsizehref="+code=ret" clasrsignedFP_CMP_EQ./a>(.rsigned0./aas="line" namon>L579">3579./a> 3 333}3333333333333333333333333333333333333633333333363333333333333333333\pL587" class="line" namon>L587">3587./a>d/a> 3 333}3333333333333333333333333333333333333633333333363333333333333333333\pL590" class="line" namon>L590">3590./a> 3 3switch (.a href="+code=X" class=>d/a> 3 333}333333333333333333333333333333333333363        63333333333333333333\pL575" class="line" namon>L575">3575./a> 3 /a> 3 333}3333333333333333333333333333333333333633333333363333333333333333333\pL611" class="liINF" class="sref">FP_CLS_INF./a>,.a hra href="+code=FP_CLS_ZERO" class="/a> 3 333}3333333333333333333333333333333333333633333333363333333333333333333\pL598" class="line" >L552">0amon>L590">3590./a> 3 3switch (.a href="+code=X" class=>d/a333}3333333333333333333333333333333333333633333333333333333333333333333\pL606" class="line" namon>L606">3606./a> ass=>d/a333}333333333333333333333333333333333333363333333336                   \pL602" class="line" namon>L603">3603./a> 3 333333333.a href="+code=FP_SEXACn>L586" class="lode=FP_SEXACn0./aass="sref">_FP_1lass="sref">R./as=>d/a333}3333333333333333333333333333333333333633333333363333333333333      \pL611" class="line" namon>L611">3611./a> 3 3case .a href="+code=FP_CLS_ZERO" class="sr/a333}3333333333333333333333333333333333333633333333363333333333333333333\p(.r_" camon>L607">3607./a> 3 333333333.a href="+code=R" class="sress="sr/a333}333333333333333333333333333333333333363333333336561./a> 3} while (0)>L579" class="line" namon>L579">3579./a> 3 /a333}333333333333333333333333333333333333363333333336namon>L562">3562./a>>L550" class="line" namon>L550" 3 33333break="srrsizeFP_CMP_EQ./a>(.rsizehref -mmon.h#L550" idn>rsignedFP_CMP_EQ./a>(.rsigned0./aL550">0e=X"-common.h#L538" idn>L598" class="line" namon>L598">3598./a> 3 333333}333333333333333333333333333333333333363333333336namon>L563">3563./a>>X.rsignedFP_CMP_EQ./a>(.rsigned0./aL5" class="sref">Y./a>##_s3 idn>L598" class="line" nae=X" class="sref">X./a>##_s !=3.a href="+code=Y" class="sref">Y./a>##_s)33333333336or strict6equality.  */./spa  >R./a>##_c =3.a href="+overflowne" namon>L568">3568./a> 3 3.spa  class="comment">/* NANf="+code=Y" class="sref">Y./a>##_s)33333333336o333333336namon>L565">3565./a>>L592" class="line" namon>L592">3592./a> 3 3case .a href="+code=FP_CLS_NAN" class="sr"+code=Y" class="sref">Y./a>##_s)33333333336o3333333363333333333333333333\pL597" class="line" namon>L597">3597./a> 3 3case .a href="+code=FP_CLS_INF" class="sr"+code=Y" class="sref">Y./a>##_s)33333333336o3333333333333333333333333333\prsignedFP_CMP_EQ./a>(.rsigned0./aL== 2amon>L590">3590./a> 3 3switch (.a href="+code=X" clacode=Y" class="sref">Y./a>##_s)33333333336o3333333363333333333333333333\pL535" class="line" namon>L535">3535./a> 3 333{ 33333333333333333333333333333333336s="sref">6./a>))3333333333333\pL550" class="line" namoncL548">3548./a> 3 3311" idn>L611" class="liINF" class="sref">FP_C35" class="line" namon>L535">3535./a> 3 333{ 33333333333333333333333333333333336s333333336">Y./a>)))333333333\pL598" class="line" >L550" 3 33333break="srrsizeFP_CMP_EQ./a>(.rsizehref -m1 +th-emu.12-common.h#L5et./BITS: 0;332">3532./a> 3 5et./BITS:ss="sref"n>L535">3535./a> 3 333{ 33333333333333333333333333333333336s3333333363333333333333333333\p(.r_" camon>L607">3607./a> 3 333333333.a href="+code=R" class="sress3 333{ 33333333333333333333333333333333336s3333333363333333333333333333\pL605" class="line" namon>L605">3605./a> 3 33333else                               33333333363333333333333333333\pL606" class="line" namon>L606">3606./a> 3 3333333{ 3333333333333333333333333333333         6 333333333333333333\pL557" cla 3 3333333Lode=T" class="sref">T./a>)3Lod .a href="+code=_FP_FRAC_EQ_" cmon.h#L550" idn>L550" class="line" namon>L-th-emu.12-common.h#L5et./BITS: 0;332">3532./a> 3 5et./BITS:ss="sref +t1)ass="sr3 3333333{ 3333333333333333333333333333333 3333333363333333333333333333\pL5ASSEMBLE cla 3 3333333Lode=T" claASSEMBLE sref">T./a>)3Lod .a href=FP_CMP_EQ./a>(.r_" c+code=wc" class="sref">wc./a>,3.a href="+code=ret" clasrsizeFP_CMP_EQ./a>(.rsizehrefref="3>ret.183333" class="sref">r1/6pa  > =3.a href="3>ret33333333363333333333333333333\pL604" class="line" namon>L604">3604./a> 3 3333333}3333333333333333333333333333333333333333363333333333333333333\pL560" class="line" namon>L560">3560./a> 3 333}333333333333333333333333333333333336de=X" cla6s="sref">X./a>)));3\prsignedFP_CMP_EQ./a>(.rsigned0./aas="line" namon>L579">3579./a> 3 mon>L560">3560./a> 3 333}33333333333333333333333333333333333633333333363333333333333333333\pL535" class="line" namon>L535">3535./a> 3 333{ 33333333333333333333333333333333336on>L580">6580./a> 3} while (0)>(.r_" camonamon>L572">3572./a> 3 33333.a href="+code=ret" class="sref">ret./a> =31;33333333333333333333333333336ss="line"6namon>L581">3581./a>>(.r_" ca552"552" 3 33333break="srrsizeFP_CMP_EQ./a>(.rsizehref -m13">3543./a> 3 3333333333333.a href="+code=ret" class="sref">ret./a> =30;3333333333333333336spa  clas6="comment">/*./spa  >FP_CMP_EQ./a>(.r_" ca-monL-th-emu.12-common2./a> 3 33333.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=X" cass="sref">ret./a> =30;3333333333333333336s333333336ld be cooked../spa  >L560" class="line" namon>L560">3560./a> 3 333}333333333333333333333333333333333336pa  class6"comment"> */./spa  >L534" class="line" namon>L534">3534./a> 3 3else                                  6ss="line"6namon>L585">3585./a>>L535" class="line" namon>L535">3535./a> 3 333{ 33333333333333333333333333333333336o3333333363333333333333333333\pFP_CMP_EQ./a>(.r_" camon>L607">3607./a> 3 333333333.a href="+code=R" class="sress="3 333{ 33333333333333333333333333333333336o3333333363333333333333333333\pL598" class="line" namon>L598">3598./a> 3 33333if (.a href="+code=X" class="sref">X./a>##_s)3333333333333333333333333./a>); 3363333333333333333333\pFP_CMP_EQ./a>(.r_" camo~mon.h#L547" idn>FP_CMP_EQ./a>(.r_" c_TYPE" class="sref">_FP_W_TYPE./a> .a href="+code=q" class="sref">q./a>;3333333333333333333333333633333333363333333333333333333\pL560" class="line" namon>L560">3560./a> 3 333}33333333333333333333333333333333333633333333363333333333333333333\pL602" class="line" namon>L603">3603./a> 3 333333333.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_E560./a> 3 333}3333333333333333333333333333333333363s="line"63333333333333333333\pL579" class="line" namon>L579">3579./a> 3 /a333}3333333333333333333333333333333333333633333333363333333333333333333\pL579" class="line" namon>L579">3579./a> 3 /a333}3333333333333333333333333333333333333633333333363333333333333333333\pL606" class="line" namon>L606">3606./a> ass=>d/a333}3333333333333333333333333333333333333633333333363333333333333333333\pL556e" nam_SIZE 0;332">3532./a> 3 5" nam_SIZElude*Q" class="sref">_FP_CMP_EQ./a>(.a hrefL552">3552./a> 3 3333rsizeFP_CMP_EQ./a>(.rsizehrefr="line" namon>L606">3606./a> ass=>d/a333}333333333333333333333333333333333333363s="line"63333333333333333333\pL535" class="line" namon>L535">3535./a> 3 333{ 3333333333333333333333333333333333633333333363333333333333333333\pL5ASSEMBLE cla 3 3333333Lode=T" claASSEMBLE sref">T./a>)3Lod .a href=FP_CMP_EQ./a>(.r_" c+code=wc" class="sref">wc./a>,3.a href="+code=ret" clasrsizeFP_CMP_EQ./a>(.rsizehrefref="3>ret.183333" class="/a> 3 333{ 3333333333333333333333333333333333633333333363333333333333333333\p(.r_" ca552"552" 3 33333break="srL550" class="line" namon>L-th-emu.12-common.h#L5et./BITS: 0;332">3532./a> 3 5et./BITS:ss="srefPTION./a>(.a href="+code=FP_E5603 333{ 333333333333333333333333333333333363/a>); 3363333333333333333333\pL560" class="line" namon>L560">3560./a> 3 333}33333333333333333333333333333333333733333333373333333333333333333\pL534" class="line" namon>L534">3534./a> 3 3else                                  733333333373333333333333333333\pL535" class="line" namon>L535">3535./a> 3 333{ 3333333333333333333333333333333333733333333373333333333333333333\pL550" class="line" namon>L550" 3 33333break="sr.h#L5et./BITS: 0;332">3532./a> 3 5et./BITS:ss="sref"n>L535">3535./a> L535">3535./a> 3 333{ 3333333333333333333333333333333333733333333373333333333333333333\pL557" cla 3 3333333Lode=T" class="sref">T./a>)3Lod .a href="+code=_FP_FRAC_EQ_" cmon.h#L550" idn>L550" class="line" namon>L-th-emu.12-common.h#L5et./BITS: 0;332">3532./a> 3 5et./BITS:ss="sref +t1)ass="sr> 3 333{ 3333333333333333333333333333333333734333333373333333333333333333\pL552" class="line" namon>L552">3552./a> 3 3333.h#L5et./BITS: 0;332">3532./a> 3 5et./BITS:ss="sref -598">3598">Y./a> 1/a> 3 3333 333{ 3333333333333333333333333333333333735333333373333333333333333333\pL606" class="line" namon>L606">3606./a> 3 3333333{ 3333333333333333333333333333337         7                   \pL55RS: 0;332">3532./a> 3 dn>L55RS:sref">T./a>)3Lod .a href="+code=_FP_FRAC_EQ_" cmon.h#L550" idn>.h#L5et./BITS: 0;332">3532./a> 3 5et./BITS:ss="sref -5on.h#L550" idn>L550" class="line" namon>L-t2),6./a> 3 3333333{ 3333333333333333333333333333337 7       7 333333333333333333\p3532./a> 3 5et./BITS:ss="sref"PTION./a>(.a href="+cod3 3333333{ 3333333333333333333333333333337 8       7 333333333333333333\pL556" claLOW/a>;3333" class="sre" claLOW/sref">T./a>)3Lod .a href="+code=_FP_FRAC_EQ_")amon>L598">3598">Y./a> 1/a> 3 33333if (.3 3333333{ 3333333333333333333333333333337 9       7 333333333333333333\pL602" class="line" namon>L603">3603./a> 3 333333333.a href="+code=FP_SEXACn>L586" class="lode=FP_SEXACn0./aass="sref">_FP_1lass="sref">3 3333333{ 333333333333333333333333333333733333333373333333333333333333\p 3 dn>L55R" cla 3 3333333Lode=T" clasR="sref">T./a>)3Lod .a href="+code=_FP_FRAC_EQ_" class="sref">_FP_1lass="sref">R./a>,3.a 3 3333333{ 333333333333333333333333333333733333333373333333333333333333\pL604" class="line" namon>L604">3604./a> 3 3333333}3333333333333333333333333333333733333333373333333333333333333\pL5ASSEMBLE cla 3 3333333Lode=T" claASSEMBLE sref">T./a>)3Lod .a href=FP_CMP_EQ./a>(.r_" c+code=wc" class="sref">wc./a>,3.a href="+code=ret" clasrsizeFP_CMP_EQ./a>(.rsizehrefref="3>ret.183333" class="/a> 3 333{ 3333333333333333333333333333333333733333333373333333333333333333\pL560" class="line" namon>L560">3560./a> 3 333}3333333333333333333333333333333333373" idn>L573" class="line" namon>L57sclud71clude/math-emu...common.h#L550" idn>rsignedFP_CMP_EQ./a>(.rsigned0./aL5" class="sref">Y./a>##_s3 idn>L598" class="line" na0" idn>L560" class="line" namon>L560">3560./a> 3 333}33333333333333333333333333333333333735333333373333333333333333333\pFP_CMP_EQ./a>(.r_" camo-mon.h#L547" idn>FP_CMP_EQ./a>(.r_" c_TYPE" class="sref">_FP_W_TYPE./a> .a href="+code=q" cla/a> 3 333}3333333333333333333333333333333333373        73333333         333\pL579" class="line" namon>L579">3579./a> 3 /a333}3333333333333333333333333333333333333733333333373333333333333333333\pL610" class="line" namon>L610">3610./a> /a> 3 /a333}3333333333333333333333333333333333333738       73333363333333336333\pL579" class="line" namon>L579">3579./a> 3 /a3 /a333}3333333333333333333333333333333333333739       7333333/a>} whil6 (0)>L580" class="line" na73333333337333333L519">3516./a>>L580" class="line" na73333333337333333L520">3526./a>>_FP_CMP_EQ./a>(.a href="+code=fs" class=FP_CMP_EQ./a>(.r_" c+code=wc" class="sref">wc./a>,3.a href="+code=ret" clasrsizeFP_CMP_EQ./a>(.rsizehref="+code=ret" clasrsignedFP_CMP_EQ./a>(.rsigned0./aas="line" namon>L579">33 /a333}33333333333333333333333333333333333337a>##fs);37333333ent">/*./6pa  >L587" class="line" namon>L587">3587./a>d/a> 3 333}33333333333333333333333333333333333337;333333337333333raw not./6pa  >FP_CMP_EQ./a>(.r_" camon>L607">3607./a> 3 333333333.a href="+code=R" class="sress="7./a>d/a> 3 333}33333333333333333333333333333333333337;" idn>L57333333rs="line" pa  >L590" class="line" namon>L590">3590./a> 3 3switch (.a href="+code=X" class=>d/a> 3 333}333333333333333333333333333333333333373333333337333333nt"> */./6pa  >L575" class="line" namon>L575">3575./a> 3 /a> 3 333}333333333333333333333333333333333333373333333337333333n         ./a>>L611" class="liINF" class="sref">FP_CLS_INF./a>,.a hra href="+code=FP_CLS_ZERO" class="/a> 3 333}333333333333333333333333333333333333373333333337333333n333333333333\pL598" class="line" >L550" 3 33333break="sr.h#Let./BITS: 0;332">3532./a> 3 et./BITS:ss="sref -598">3598">Y./a> 1/a> 3 333class="/a> 3 333}3333333333333333333333333333333333333738       7333333n333333336333\pL606" class="line" namon>L606">3606./a> ass=>d/a333}333333333333333333333333333333333333373333333337333333na>} whil6333\pL552" class="line" namon>L552">3552./a> 3 3333rsizeFP_CMP_EQ./a>(.rsizehref -m1 +th-emu.12-common.h#L5et./BITS: 0;332">3532./a> 3 5et./BITS:ss="sref"n>L535">3535./a> ass=>d/a333}333333333333333333333333333333333333373333333337333333))33333336333\pL535" class="line" namon>L535">3535./a> 3 333{ 33333333333333333333333333333333337.183333" 7lass="sref">r1/6pa al 617">36173clude/math-emu.12-comcommon.h#L550" idn>L550" class="line" namon>L550" 3 33333break="sr.h#L5et./BITS: 0;332">3532./a> 3 5et./BITS:ss="sref -598">3598">Y./a> 1/a> 3 333clas3 333{ 33333333333333333333333333333333337.>##fs);373333333333333333333\pL606" class="line" namon>L606">3606./a> 3 3333333{ 3333333333333333333333333333337.3333333373333333333333333333\pL5ASSEMBLE cla 3 3333333Lode=T" claASSEMBLE sref">T./a>)3Lod .a href=FP_CMP_EQ./a>(.r_" c+code=wc" class="sref">wc./a>,3.a href="+code=ret" clasrsizeFP_CMP_EQ./a>(.rsizehrefref="3>ret.183333" class="3 3333333{ 3333333333333333333333333333337." idn>L573333333333333333333\p(.r_" ca552"552" 3 33333break="srL550" class="line" namon>L-th-emu.12-common.h#L5et./BITS: 0;332">3532./a> 3 5et./BITS:ss="sref +t1ass="sref">_FP_FRAC_DECL_./a>##wc(.a href="+code=S" class="sref">7         7   3333333333333333\pL604" class="line" namon>L604">3604./a> 3 3333333}3333333333333333333333333333333733333333373333333333333333333\pL605" class="line" namon>L605">3605./a> 3 33333else                              733333333373333333333333333333\pL606" class="line" namon>L606">3606./a> 3 3333333{ 3333333333333333333333333333337.8       73333333333333333333\p 3 dn>L55R" cla 3 3333333Lode=T" clasR="sref">T./a>)3Lod .a href="+code=_FP_FRAC_EQ_" ch-emu.12-common.h#L5ORKBITS 0;332">3532./a> 3 5ORKBITShref -m 33333break="srL550" class="line" namon>Lon>L606">3606./a> 3 3333333{ 3333333333333333333333333333337.3333333373333333333333333333\p3532./a> 3 et./BITS:ss="sref -598ass="sref">_FP_FRA3 3333333{ 3333333333333333333333333333337sref">X./7>))3? 1 : 0;3333333\p 3 dn>L5ASSEMBLE cla 3 3333333Lode=T" claASSEMBLE sref">T./a>)3Lod .a href=FP_CMP_EQ./a>(.r_" c+code=wc" class="sref">wc./a>,3.a href="+code=ret" clasrsizeFP_CMP_EQ./a>(.rsizehrefref="3>ret.183333" class="3 3333333{ 3333333333333333333333333333337sref">Y./7>))3? 1 : 0;3333333\pL604" class="line" namon>L604">3604./a> 3 3333333}33333333333333333333333333333337s>##fs);373333333333333333333\pL560" class="line" namon>L560">3560./a> 3 333}33333333333333333333333333333333333733333333373333333333333333333\pL579" class="line" namon>L579">3579./a> 3 /a333}3333333333333333333333333333333333333733333333373333333333333333333\pL579" class="line" namon>L579">3579./a> 3 /a333}333333333333333333333333333333333333373        73333333333333333333\pL579" class="line" namon>L579">3579./a> 3 /a333}3333333333333333333333333333333333333733333333373333333333333333333\pL552" class="line" namon>L552"mo-mon.h#L547" idn.h#L5ORKBITS 0;332">3532./a> 3 5ORKBITShref -m98">3598">Y./a> 1/a> 3 333class="/a> 3 333}3333333333333333333333333333333333333733333333373333333333333333333\p 3 dn>L551 : 0;332">3532./a> 3 33333.a href="+code=ret" class="s="+code=_FP_FRAC_EQ_" ch-emu.12-common.h#LMIET_./a>##wc(.a href="+codMIET_./aref="+coref="3>ret.183333" class="/a>333}3333333333333333333333333333333333333738       73333333333333333333\pL534" class="line" namon>L534">3534./a> 3 3else                                  733333333373333333333333333333\pL55RS: 0;332">3532./a> 3 dn>L55RS:sref">T./a>)3Lod .a href="+code=_FP_FRAC_EQ_" ch-emu.12-common.h#Let./BITS: 0;332">3532./a> 3 et./BITS:ss="sref -59 -m 33333break="srL550" class="line" namon>,L534">3534./a> 3 3else                                  733333333373333333333333333333\p3532./a> 3 5et./BITS:ss="sref"PTION./a>(.a href="+cod4./a> 3 3else                                  73ref">Y./73333333333333333333\pL607">3607./a> 3 333333333.a href="+code=R" class="3 3else                                  73>##fs);373333333333333333333\pL602"R" cla 3 3333333Lode=T" clasR="sref">T./a>)3Lod .a href="+code=_FP_FRAC_EQ_" ch-emu.12-common.h#L5ORKBITS 0;332">3532./a> 3 5ORKBITShref)>L607">3607./a> 3 333333333.a href3 3else                                  733333333373333333333333333333\p 3 dn>L5ASSEMBLE cla 3 3333333Lode=T" claASSEMBLE sref">T./a>)3Lod .a href=FP_CMP_EQ./a>(.r_" c+code=wc" class="sref">wc./a>,3.a href="+code=ret" clasrsizeFP_CMP_EQ./a>(.rsizehrefref="3>ret.183333" class="3.a href3 3else                                  733333333373333333333333333333\pL604" class="line" namon>L604">3604./a> 3.a href3 3else                                  73        73333333333333333333\prsignedFP_CMP_EQ./a>(.rsigned0./aL5" class="sref">Y./a>##_s3 idn>L598" class="line" na0" idn>L560" class="line" namon>L560">3560./a> href3 3else                                  733333333373333333333333333333\pFP_CMP_EQ./a>(.r_" camo-mon.h#L547" idn>FP_CMP_EQ./a>(.r_" c_TYPE" class="sref">_FP_W_TYPE./a> .a href="+code=q" cla/a> href3 3else                                  733333333373333333333333333333\pL598" class="line" >L550" 3 33333break="srrsizeFP_CMP_EQ./a>(.rsizehref -mmon.h#L550" idn>rsignedFP_CMP_EQ./a>(.rsigned0./aL550">0e=X"-common.h#L538" idn>L598" class="line" namon>L598">3598./a> 3 333 href3 3else                                  738       73333333333333333333\pX.rsignedFP_CMP_EQ./a>(.rsigned0./aL5" class="sref">Y./a>##_s3 idn>L598" class="line" nae=X" class="sref">X./a>##_s !=3.a href="+ href3 3else                                  73333333337                   \pR./a>##_c =3.a href="+overflowne" namon>L568">3568./a> 3 3.spa  class="comment">/* NANf="+code=Y" class="sref">Y./a>##_s)3333333333733333333373333333333333      \pL592" class="line" namon>L592">3592./a> 3 3case .a href="+code=FP_CLS_NAN" class="sr"+code=Y" class="sref">Y./a>##_s)3333333333733333333373333333333333333333\pL597" class="line" namon>L597">3597./a> 3 3case .a href="+code=FP_CLS_INF" class="sr"+code=Y" class="sref">Y./a>##_s)333333333373333333337561./a> 3} while (0)>X.rsignedFP_CMP_EQ./a>(.rsigned0./aamon>L590">3590./a> 3 3switch (.a href="+code=X" class=>code=Y" class="sref">Y./a>##_s)333333333373333333337namon>L562">3562./a>>L535" class="line" namon>L535">3535./a> 3 333{ 333333333333333333333333333333333373333333337namon>L563">3563./a>>FP_CMP_EQ./a>(.r_" camon>L607">3607./a> 3 333333333.a href="+code=R" class="sress="3 333{ 333333333333333333333333333333333373        7equality.  */./spa  >L598" class="line" namon>L598">3598./a> 3 33333if (.a href="+code=X" class="sref">X./a>##_s)3333333333333333333333337o333333337namon>L565">3565./a>>FP_CMP_EQ./a>(.r_" camo~mon.h#L547" idn>FP_CMP_EQ./a>(.r_" c_TYPE" class="sref">_FP_W_TYPE./a> .a href="+code=q" class="sref">q./a>;33333333333333333333333337o3333333373333333333333333333\pL560" class="line" namon>L560">3560./a> 3 333}333333333333333333333333333333333337o3333333373333333333333333333\prsignedFP_CMP_EQ./a>(.rsigned0./aL5482amon>L590">3590./a> 3 3switch (.a href="+code=X3 333}333333333333333333333333333333333337o3333333373333333333333333333\pL535" class="line" namon>L535">3535./a> 3 333{ 33333333333333333333333333333333337s="sref">7./a>))3333333333333\pFP_CMP_EQ./a>(.r_" camonamon>L572">3572./a> 3 33333.a href="+code=ret" class="sref">ret./a> =31;33333333333333333333333333337s333333337">Y./a>)))333333333\p(.r_" ca552"552" 3 33333break="srrsizeFP_CMP_EQ./a>(.rsizehref -m13">3543./a> 3 3333333333333.a href="+code=ret" class="sref">ret./a> =30;3333333333333333337s3333333373333333333333333333\p(.r_" ca-monL-th-emu.12-common2./a> 3 33333.a href="+code=R" class="sref">R./a>##_s =3.a href="+code=X" cass="sref">ret./a> =30;3333333333333333337s3333333373333333333333333333\pL560" class="line" namon>L560">3560./a> 3 333}33333333333333333333333333333333333733333333373333333333333333333\pL602" class="line" namon>L603">3603./a> 3 333333333.a href="+code=FP_SET_EXCEPTION" class="sref">FP_SET_EXCEPTION./a>(.a href="+code=FP_E560./a> 3 333}333333333333333333333333333333333337         7 333333333333333333\pL604" class="line" namon>L604">3604./a> 3.a href3 3else                                  7 3333333373333333333333333333\pL610" class="line" namon>L610">3610./a> /a> 3 /a333}3333333333333333333333333333333333333733333333373333333333333333333\pL611" class="line" namon>L611">3611./a> 3 3case .a href="+code=FP_CLS_ZERO" class="sr/a3 /a333}3333333333333333333333333333333333333733333333373333333333333333333\pL610" class="line" namon>L610">3610./a> /a> 3 /a333}333333333333333333333333333333333333373333333337s="sref">X./a>)));3\pL579" class="line" namon>L579">3579./a> 3 /a3 /a333}3333333333333333333333333333333333333733333333373333333333333333333\pL580" class="line" na7on>L580">7580./a> 3} while (0)>L580" class="line" na7o333333337namon>L581">3581./a>>L586" class="line"FROM_INn333333333.a href="+c3.a href="+code=_FP_CMP_EQ" class="sref">_FP_CMP_EQ./a>(.a href="+code=fs" classsref">wc./a>,3.a href="+code=ret" clasrFP_CMP_EQ./a>(.r_" c+code=wc" class="rsizeFP_CMP_EQ./a>(.rsizehref="+code=ret" clasrtypeFP_CMP_EQ./a>(.rtype0./aamon>L590">3590./a> 3 3sw333}333333333333333333333333333333333333373333333337="comment">/*./spa  >L587" class="line" namon>L587">3587./a333}333333333333333333333333333333333333373333333337ld be cooked../spa  >rFP_CMP_EQ./a>(.r_" camon>L590">3590./a> 3 3switch (.a href="+code=X" class=>d/a> 3 333}33333333333333333333333333333333333337pa  class7"comment"> */./spa  >L575" class="line" namon>L575">3575./a> 333}33333333333333333333333333333333333337p333333337namon>L585">3585./a>>(.rtype0./a"+code=ret" clasur cla 3 3333333Lour _" c_TYPE" class="sref">_FP_W_TYPE./a> .a href="+c333}33333333333333333333333333333333333337p3333333373333333333333333333\p3548./a> 3 3311" idn>L611" class="liINF" class="sref">FP_C_TYPE" class="sref">_FP_W_TYPE./a> .a href=333}33333333333333333333333333333333333337p3333333373333333333333333333\pL598" class="line" n 48mon.h#L550" idn>rFP_CMP_EQ./a>(.r_" cL552">0aae=X" class="sref">X./a>##_s !=3.a href="+ h333}3333333333333333333333333333333333333733333333373333333333333333333\p(.rtype0./a)o-mon.h#L547" idn>FP_CMP_EQ./a>(.r_" c_TYPE" class="sref">_FP_W_TYPE./a> .a333}333333333333333333333333333333333333373n>L580">73333333333333333333\pL605" class="line" namon>L605">3605./a> 3 33333else                              73s="line"73333333333333333333\p(.rtype0./a)omon.h#L547" idn>FP_CMP_EQ./a>(.r_" c_TYPE" class="sref">_FP_W_TYPE./a> .a 3 33333else                              733333333373333333333333333333\prsizeFP_CMP_EQ./a>(.rsizehref 552" 3 33333break="srL556e" nam_SIZE 0;332">3532./a> 3 5" nam_SIZEludee=X" class="sref">X./a>##_s !=3.a hr3 33333else                              733333333373333333333333333333\p3532./a>_classZ333333333.a href="+cL550" class="line" namon>,L+code=ret" clasur cla 3 3333333Lour _" c)>L607">3607./a> 3 333333333.a href="+code=3 33333else                              73a  class73333333333333333333\pL605" class="line" namon>L605">3605./a> 3 33333else                              733333333373333333333333333333\p3532./a>_classZ_2333333333.a href="+cL550" class="line" namon>,Lmon.h#L556" idn>L556e" nam 0;332">3532./a> 3 5" nam_" c)mon.h#L556" idn>ur cla 3 3333333Lour _" c 550"550"> 33333break="srL556e" nam_SIZE 0;332">3532./a> 3 5" nam_SIZEludee,05./a> 3 33333else                              733333333373333333333333333333\pL556e" nam 0;332">3532./a> 3 5" nam_" c)+code=ret" clasur cla 3 3333333Lour _" c)>L607">3607./a> 3 333333333.a href=3 33333else                              733333333373333333333333333333\prsizeFP_CMP_EQ./a>(.rsizehref 552"3 33333break="srL556e" nam_SIZE 0;332">3532./a> 3 5" nam_SIZEludee=X" class="sref">X./a>##_s !=3.a hr=3 33333else                              733333333373333333333333333333\pL556e" nam_SIZE 0;332">3532./a> 3 5" nam_SIZEludeL-th-emu.12-commonrsizeFP_CMP_EQ./a>(.rsizehrefref="3>ret.183333" clas3 33333else                              833333333383333333333333333333\p3543./a> 3 3333333333333.a href="+co3 33333else                              831333333383333333333333333333\pL556" clBITS: 0;332">3532./a> 3 et./BITS:ss="sref 552">3552./a> 3 3333rsizeFP_CMP_EQ./a>(.rsizehref 5" class="sref">Y./a>##_s3.h#L5et./BITS: 0;332">3532./a> 3 5et./BITS:ss="sref 552" 3 33333break="srL550" class="line" namon>)ccc3 33333else                              833333333383333333333333333333\pL55RS:1 0;332">3532./a>_cladn>L55RS:1333333333.a href="+cur cla 3 3333333Lour _" c cmon.h#L550" idn>L550" class="line" namon>L-th-emu.12-common.h#L5et./BITS: 0;332">3532./a> 3 5et./BITS:ss="sref +t1)="+code=ret" clasrsizeFP_CMP_EQ./a>(.rsizehrefre3 33333else                              834333333383333333333333333333\pL556" cl_DISASSEMBLE cla 3 3333333Lode=T" claDISASSEMBLE ss="srT./a>)3Lod .a href="+code=_FP_FRAC_EQ_" ch-emu.12-commonur cla 3 3333333Lour _" c ch-emu.12-commonrsizeFP_CMP_EQ./a>(.rsizehrefref="3>ret.183333" clascc3 33333else                              835333333383333333333333333333\p.h#L5et./BITS: 0;332">3532./a> 3 5et./BITS:ss="sref -5on.h#L550" idn>L550" class="line" namon>L-t1)L550">0e=X" class="sref">X./a>#3 33333else                              836333333383333333333333333333\pL556" cl_57" cla 3 3333333Lode=T" class="sref">T./a>)3Lod .a href="+code=_FP_FRAC_EQ_" cmon.h#L550" idn>.h#L5et./BITS: 0;332">3532./a> 3 5et./BITS:ss="sref -5on.h#L550" idn>L550" class="line" namon>L-t1)ass="sr> 3 333{ 33333333333333333333333333333333338 7       8 333333333333333333\pL560" class="line" namon>L560">3560./a> 3 333}333333333333333333333333333333333338 8       8 333333333333333333\pL534" class="line" namon>L534">3534./a> 3 3else                                  8 9       8 333333333333333333\pL575" class="line" namon>L575">3575./a> 333}3333333333333333333333333333333333333833333333383333333333333333333\p3548./a> 3 3311" idn>L611" class="line" namon>L611">36="+code=fs" classsref">wc./a>,3.a hrefe" n 48n>L607">3607./a> 3 333333333.a href333}3333333333333333333333333333333333333831333333383333333333333333333\pL560" class="line" namon>L560">3560./a> 3 333}33333333333333333333333333333333333833333333383333333333333333333\pL580" class="line" na833333333383333333333333333333\pL580" class="line" na834333333383" class="line" namon>L58sclud81cludecommon.h#L580" idn>L580" class="line" na835333333383333333333333333333\p_FP_CMP_EQ./a>(.sa href=3333.a href="+cXCEPTION" class=Dhref=3333.a href="+cS 0;332">3532./aSludee=X" class="sref">X./3 333}33333333333333333333333333333333333836333333383333333         333\pL587" class="line" nam3 333}33333333333333333333333333333333333837       83333333333333333333\pL556" cl_mONV cla 3 3333333Lode=T" clamONV hrefe"da e" ##sT./a>)3Lod .a hrefd3.a href="+code=_dFP_CMP_6on.h#L556" idn>s3.a href="+code=_sFP_CMP_6on.h#L556" idn>XCEPTION" class=Dhref=6on.h#L556" idn>S 0;332">3532./aSludee;ine" nam3 333}33333333333333333333333333333333333838       83333363333333336333\pXCEPTION" class=Dhref"+cea 3 33333break="srS 0;332">3532./aSlude"+ce3">3543./a> 3 3333333333333.a href="+co3 33333else                              839       8333333/a>} whil6 (0)>XCEPTION" class=Dhref"+cc 48">3548./a> 3 33S 0;332">3532./aSlude"+cc3">3543./a> 3 3333333333333.a href="+co3 33333else                              83333333338333333L519">3516./a>>XCEPTION" class=Dhref"+cs 48">3548./a> 3 33S 0;332">3532./aSlude"+code=R" class="sref">R./a>##_s =3.a href=3 33333else                              83133333338333333L520">3526./a>>L580" class="line" na8a>##fs);38333333ent">/*./6pa  >L580" class="line" na8a333333338333333raw not./6pa  >R./a>##_c =3.a href=" namon>common.h#L580" idn>L580" class="line" na8a433333338333333rs="line" pa  >R./a>##_c =3.a href * Helper primitives. namon>common.h#L580" idn>L580" class="line" na8a533333338333333nt"> */./6pa  >R./a>##_c =3.a href */ namon>common.h#L580" idn>L580" class="line" na8a633333338333333n         ./a>>L580" class="line" na8a7       8333333n333333333333\pR./a>##_c =3.a href="+Count leading zeros in a word.  */ namon>common.h#L580" idn>L580" class="line" na8a8       8333333n333333336333\pL580" class="line" na8a9       8333333na>} whil6333\p3532./a>_classZ3333common.h#L580" idn>L580" class="line" na83333333338333333))33333336333\p3532./a> 3 5" nam_SIZElude 552">64common.h#L580" idn>L580" class="line" na83133333338lass="sref">r1/6pa al 618">36183cludef">R./a>##_c =3.a href="+this is just to shut the =3.pemur up about shiftsL550">word length -- PMM 02/1998 */ namon>common.h#L580" idn>L580" class="line" na8.>##fs);383333333333333333333\p3532./a>_classZ333333333.a href="+crFP_CMP_EQ./a>(.r_" c+code=wc" class="xFP_CMP_EQ./a>(.xludee=X" class="sref">X./a>##_s3 33333else                              8.3333333383333333333333333333\pL587" class="l3 33333else                              8.4333333383333333333333333333\pL556e" nam 0;332">3532./a> 3 5" nam_" cton.h#L556" idn>Lt 0;332">3532./a>t_" c 48mode=wc" class="xFP_CMP_EQ./a>(.xludeeef="3>ret.183333" class="3 3333333{ 3333333333333333333333333333338         8   3333333333333333\prFP_CMP_EQ./a>(.r_" cL 3 33333break="srL556e" nam_SIZE 0;332">3532./a> 3 5" nam_SIZEludea-m13">3543./a> 3 33333333 3333333{ 3333333333333333333333333333338 6333333383333333333333333333\pLt 0;332">3532./a>t_" c 550">0xffff)omon.h#L547" idn>FP_CMP_EQ./a>(.r_" ca-mon63">3543./a> 3 3333333 3333333{ 3333333333333333333333333333338 7       83333333333333333333\pLt 0;332">3532./a>t_" c 550">0xffff)omon.h#L547" idnLt 0;332">3532./a>t_" c 550"550" 3n63">3543./a> 3 33333 3333333{ 3333333333333333333333333333338 8       83333333333333333333\pLt 0;332">3532./a>t_" c 550">0xff)omon.h#L547" idn>FP_CMP_EQ./a>(.r_" ca-mo8PTION./a>(.a href="+cod3 3333333{ 3333333333333333333333333333338.3333333383333333333333333333\pLt 0;332">3532./a>t_" c 550">0xff)omon.h#L547" idnLt 0;332">3532./a>t_" c 550"550" 38PTION./a>(.a href="+c3 3333333{ 3333333333333333333333333333338sref">X./8>))3? 1 : 0;3333333\pLt 0;332">3532./a>t_" c 5ss="s0xf0)omon.h#L547" idn>FP_CMP_EQ./a>(.r_" ca-mo4PTION./a>(.a href="+cod3 3333333{ 3333333333333333333333333333338sref">Y./8>))3? 1 : 0;3333333\pLt 0;332">3532./a>t_" c 5ss="s0xf0)omon.h#L547" idnLt 0;332">3532./a>t_" c 550"550" 34PTION./a>(.a href="+c3 3333333{ 3333333333333333333333333333338s>##fs);383333333333333333333\pLt 0;332">3532./a>t_" c 5ss="s0xc)omon.h#L547" idn>FP_CMP_EQ./a>(.r_" ca-mo2ef="3>ret.183333" clascc3 33333else                              833333333383333333333333333333\pLt 0;332">3532./a>t_" c 5ss="s0xc)omon.h#L547" idnLt 0;332">3532./a>t_" c 550"550" 32ef="3>ret.183333" clas3 33333else                              834333333383333333333333333333\pLt 0;332">3532./a>t_" c 5ss="s0x2)omon.h#L547" idn>FP_CMP_EQ./a>(.r_" ca-monef="3>ret.183333" clascc3 33333else                              83        83333333333333333333\pL580" class="line" na833333333383333333333333333333\pR./a>##_c =3.a href="+not > 3 5" nam_SIZE 552">64 */ namon>common.h#L580" idn>L580" class="line" na833333333383333333333333333333\p3532./a>_classZ333333333.a href="+crFP_CMP_EQ./a>(.r_" c+code=wc" class="xFP_CMP_EQ./a>(.xludee=X" class="sref">X./a>##_s3 33333else                              838       83333333333333333333\pL587" class="l3 33333else                              833333333383333333333333333333\pL556e" nam 0;332">3532./a> 3 5" nam_" cton.h#L556" idn>Lt 0;332">3532./a>t_" c 48mode=wc" class="xFP_CMP_EQ./a>(.xludeeef="3>ret.183333" class="3 3333333{ 333333333333333333333333333333833333333383333333333333333333\prFP_CMP_EQ./a>(.r_" cL 3 33333break="srL556e" nam_SIZE 0;332">3532./a> 3 5" nam_SIZEludea-m13">3543./a> 3 33333333 3333333{ 33333333333333333333333333333383ref">Y./83333333333333333333\pLt 0;332">3532./a>t_" c 550">0xffffffff)omon.h#L547" idn>FP_CMP_EQ./a>(.r_" ca-mo32ef="3>ret.1833333 3333333{ 33333333333333333333333333333383>##fs);383333333333333333333\pLt 0;332">3532./a>t_" c 550">0xffffffff)omon.h#L547" idnLt 0;332">3532./a>t_" c 550"550" 332ef="3>ret.18333 3333333{ 333333333333333333333333333333833333333383333333333333333333\pLt 0;332">3532./a>t_" c 550">0xffff)omon.h#L547" idn>FP_CMP_EQ./a>(.r_" ca-mon63">3543./a> 3 3333333 3333333{ 333333333333333333333333333333833333333383333333333333333333\pLt 0;332">3532./a>t_" c 550">0xffff)omon.h#L547" idnLt 0;332">3532./a>t_" c 550"550" 3n63">3543./a> 3 33333 3333333{ 33333333333333333333333333333383        83333333333333333333\pLt 0;332">3532./a>t_" c 550">0xff)omon.h#L547" idn>FP_CMP_EQ./a>(.r_" ca-mo8PTION./a>(.a href="+cod3 3333333{ 333333333333333333333333333333833333333383333333333333333333\pLt 0;332">3532./a>t_" c 550">0xff)omon.h#L547" idnLt 0;332">3532./a>t_" c 550"550" 38PTION./a>(.a href="+c3 3333333{ 333333333333333333333333333333833333333383333333333333333333\pLt 0;332">3532./a>t_" c 5ss="s0xf0)omon.h#L547" idn>FP_CMP_EQ./a>(.r_" ca-mo4PTION./a>(.a href="+cod3 3333333{ 333333333333333333333333333333838       83333333333333333333\pLt 0;332">3532./a>t_" c 5ss="s0xf0)omon.h#L547" idnLt 0;332">3532./a>t_" c 550"550" 34PTION./a>(.a href="+c3 3333333{ 33333333333333333333333333333383333333338                   \pLt 0;332">3532./a>t_" c 5ss="s0xc)omon.h#L547" idn>FP_CMP_EQ./a>(.r_" ca-mo2ef="3>ret.183333" clascc3 33333else                              833333333383333333333333      \pLt 0;332">3532./a>t_" c 5ss="s0xc)omon.h#L547" idnLt 0;332">3532./a>t_" c 550"550" 32ef="3>ret.183333" clas3 33333else                              833333333383333333333333333333\pLt 0;332">3532./a>t_" c 5ss="s0x2)omon.h#L547" idn>FP_CMP_EQ./a>(.r_" ca-monef="3>ret.183333" clascc3 33333else                              83333333338561./a> 3} while (0)>L580" class="line" na83333333338namon>L562">3562./a>>R./a>##_c =3.a href="+not > 3 5" nam_SIZE 552">64 */ namon>common.h#L580" idn>L580" class="line" na83333333338namon>L563">3563./a>>R./a>##_c =3.a href="+nmat.>_classZ */ namon>common.h#L580" idn>L580" class="line" na83        8equality.  */./spa  >L580" class="line" na83333333338namon>L565">3565./a>>3532./a> 3 DIV_HELP_imm333333333.a href="+cq 0;332">3532./aq_" c+code=wc" class="rFP_CMP_EQ./a>(.r_" c+code=wc" class="nFP_CMP_EQ./a>(.n_" c+code=wc" class="dFP_CMP_EQ./a>(.d0./aamon>L590">353 33333else                              833333333383333333333333333333\pL587" class="l3 33333else                              8o3333333383333333333333333333\pq 0;332">3532./aq_" cL 3 33333break="srnFP_CMP_EQ./a>(.n_" c /code=wc" class="dFP_CMP_EQ./a>(.d0./a+code=wc" class="rFP_CMP_EQ./a>(.r_" cL 3 33333break="srnFP_CMP_EQ./a>(.n_" c %"sref">Y./a>##_s3dFP_CMP_EQ./a>(.d0./aef="3>ret.183333" clascc3 33333else                              833333333383333333333333333333\pL580" class="line" na8s="sref">8./a>))3333333333333\pL580" class="line" na8s333333338">Y./a>)))333333333\pR./a>##_c =3.a href="+__MATH_EMU_OnamOMMON_H__ */ namon>common.h#L580" idn>L580" class="line" na8s3333333383333333333333333333\p
The original LXR software by the ommon.h#Lhttp://sourceforge.net/projects/lxr">LXR ="liunity0./a+cthis experia hral version by ommon.h#Lmailto:lxr@333ux.no">lxr@333ux.no0./a.


lxr.333ux.no kindly hosted by ommon.h#Lhttp://www.redpill-333pro.no">Redpill L33pro AS0./a+cprovider of L33ux ="nsulting and operations services s580e 1995.