% Copyright The Numerical Algorithms Group Limited 1992-94. All rights reserved. % !! DO NOT MODIFY THIS FILE BY HAND !! Created by ht.awk. \newcommand{\HexadecimalExpansionXmpTitle}{HexadecimalExpansion} \newcommand{\HexadecimalExpansionXmpNumber}{9.33} % % ===================================================================== \begin{page}{HexadecimalExpansionXmpPage}{9.33 HexadecimalExpansion} % ===================================================================== \beginscroll All rationals have repeating hexadecimal expansions. The operation \spadfunFrom{hex}{HexadecimalExpansion} returns these expansions of type \spadtype{HexadecimalExpansion}. Operations to access the individual numerals of a hexadecimal expansion can be obtained by converting the value to \spadtype{RadixExpansion(16)}. More examples of expansions are available in the \downlink{`DecimalExpansion'}{DecimalExpansionXmpPage}\ignore{DecimalExpansion}, \downlink{`BinaryExpansion'}{BinaryExpansionXmpPage}\ignore{BinaryExpansion}, and \downlink{`RadixExpansion'}{RadixExpansionXmpPage}\ignore{RadixExpansion}. \showBlurb{HexadecimalExpansion} \xtc{ This is a hexadecimal expansion of a rational number. }{ \spadpaste{r := hex(22/7) \bound{r}} } \xtc{ Arithmetic is exact. }{ \spadpaste{r + hex(6/7) \free{r}} } \xtc{ The period of the expansion can be short or long \ldots }{ \spadpaste{[hex(1/i) for i in 350..354] } } \xtc{ or very long! }{ \spadpaste{hex(1/1007) } } \xtc{ These numbers are bona fide algebraic objects. }{ \spadpaste{p := hex(1/4)*x**2 + hex(2/3)*x + hex(4/9) \bound{p}} } \xtc{ }{ \spadpaste{q := D(p, x) \free{p}\bound{q}} } \xtc{ }{ \spadpaste{g := gcd(p, q) \free{p}\free{q}} } \endscroll \autobuttons \end{page} %