DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(r5rs.info.gz) Exactness

Info Catalog (r5rs.info.gz) Numerical types (r5rs.info.gz) Numbers (r5rs.info.gz) Implementation restrictions
 
 6.2.2 Exactness
 ---------------
 
 Scheme numbers are either exact or inexact.  A number is exact if it
 was written as an exact constant or was derived from exact numbers
 using only exact operations.  A number is inexact if it was written as
 an inexact constant, if it was derived using inexact ingredients, or if
 it was derived using inexact operations. Thus inexactness is a
 contagious property of a number.
 
 If two implementations produce exact results for a computation that did
 not involve inexact intermediate results, the two ultimate results will
 be mathematically equivalent.  This is generally not true of
 computations involving inexact numbers since approximate methods such
 as floating point arithmetic may be used, but it is the duty of each
 implementation to make the result as close as practical to the
 mathematically ideal result.
 
 Rational operations such as `+' should always produce exact results
 when given exact arguments.  If the operation is unable to produce an
 exact result, then it may either report the violation of an
 implementation restriction or it may silently coerce its result to an
 inexact value.  See section  Implementation restrictions.
 
 With the exception of `inexact->exact', the operations described in this
 section must generally return inexact results when given any inexact
 arguments.  An operation may, however, return an exact result if it can
 prove that the value of the result is unaffected by the inexactness of
 its arguments.  For example, multiplication of any number by an exact
 zero may produce an exact zero result, even if the other argument is
 inexact.
 
Info Catalog (r5rs.info.gz) Numerical types (r5rs.info.gz) Numbers (r5rs.info.gz) Implementation restrictions
automatically generated byinfo2html