% Copyright The Numerical Algorithms Group Limited 1992-94. All rights reserved. % !! DO NOT MODIFY THIS FILE BY HAND !! Created by ht.awk. \newcommand{\FractionXmpTitle}{Fraction} \newcommand{\FractionXmpNumber}{9.28} % % ===================================================================== \begin{page}{FractionXmpPage}{9.28 Fraction} % ===================================================================== \beginscroll % The \spadtype{Fraction} domain implements quotients. %-% \HDindex{fraction}{FractionXmpPage}{9.28}{Fraction} The elements must belong to a domain of category \spadtype{IntegralDomain}: multiplication must be commutative and the product of two non-zero elements must not be zero. This allows you to make fractions of most things you would think of, but don't expect to create a fraction of two matrices! The abbreviation for \spadtype{Fraction} is \spadtype{FRAC}. \xtc{ Use \spadopFrom{/}{Fraction} to create a fraction. }{ \spadpaste{a := 11/12 \bound{a}} } \xtc{ }{ \spadpaste{b := 23/24 \bound{b}} } \xtc{ The standard arithmetic operations are available. }{ \spadpaste{3 - a*b**2 + a + b/a \free{a}\free{b}} } \xtc{ Extract the numerator and denominator by using %-% \HDindex{numerator}{FractionXmpPage}{9.28}{Fraction} \spadfunFrom{numer}{Fraction} and \spadfunFrom{denom}{Fraction}, %-% \HDindex{denominator}{FractionXmpPage}{9.28}{Fraction} respectively. }{ \spadpaste{numer(a) \free{a}} } \xtc{ }{ \spadpaste{denom(b) \free{b}} } Operations like \spadfunFrom{max}{Fraction}, \spadfunFrom{min}{Fraction}, \spadfunFrom{negative?}{Fraction}, \spadfunFrom{positive?}{Fraction} and \spadfunFrom{zero?}{Fraction} are all available if they are provided for the numerators and denominators. See \downlink{`Integer'}{IntegerXmpPage}\ignore{Integer} for examples. Don't expect a useful answer from \spadfunFrom{factor}{Fraction}, \spadfunFrom{gcd}{Fraction} or \spadfunFrom{lcm}{Fraction} if you apply them to fractions. \xtc{ }{ \spadpaste{r := (x**2 + 2*x + 1)/(x**2 - 2*x + 1) \bound{r}} } \xtc{ Since all non-zero fractions are invertible, these operations have trivial definitions. }{ \spadpaste{factor(r) \free{r}} } \xtc{ Use \spadfunFrom{map}{Fraction} to apply \spadfunFrom{factor}{Fraction} to the numerator and denominator, which is probably what you mean. }{ \spadpaste{map(factor,r) \free{r}} } \xtc{ Other forms of fractions are available. %-% \HDindex{fraction!continued}{FractionXmpPage}{9.28}{Fraction} Use \spadfun{continuedFraction} to create a continued fraction. %-% \HDindex{continued fraction}{FractionXmpPage}{9.28}{Fraction} }{ \spadpaste{continuedFraction(7/12)} } \xtc{ Use \spadfun{partialFraction} to create a partial fraction. %-% \HDindex{fraction!partial}{FractionXmpPage}{9.28}{Fraction} See \downlink{`ContinuedFraction'}{ContinuedFractionXmpPage}\ignore{ContinuedFraction} and \downlink{`PartialFraction'}{PartialFractionXmpPage}\ignore{PartialFraction} for additional information and examples. %-% \HDindex{partial fraction}{FractionXmpPage}{9.28}{Fraction} }{ \spadpaste{partialFraction(7,12)} } \xtc{ Use conversion to create alternative views of fractions with objects moved in and out of the numerator and denominator. }{ \spadpaste{g := 2/3 + 4/5*\%i \bound{g}} } \xtc{ Conversion is discussed in detail in \downlink{``\ugTypesConvertTitle''}{ugTypesConvertPage} in Section \ugTypesConvertNumber\ignore{ugTypesConvert}. }{ \spadpaste{g :: FRAC COMPLEX INT \free{g}} } \endscroll \autobuttons \end{page} %