Changeset 11547


Ignore:
Timestamp:
Dec 19, 2008, 3:17:59 AM (11 years ago)
Author:
rme
Message:

Document GET-FPU-MODE and SET-FPU-MODE (ticket:386).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/doc/src/using.xml

    r9570 r11547  
    15941594  </sect1>
    15951595
     1596  <sect1 id="floating-point">
     1597    <title>Floating Point Numbers</title>
     1598
     1599    <para>
     1600      In &CCL;, the Common Lisp types short-float and single-float are
     1601      implemented as IEEE single precision values; double-float and
     1602      long-float are IEEE double precision values.  On 64-bit
     1603      platforms, single-floats are immediate values (like fixnums and
     1604      characters).
     1605    </para>
     1606
     1607  <para>
     1608    Floating-point exceptions are generally enabled and detected.  By
     1609    default, threads start up with overflow, division-by-zero, and
     1610    invalid enabled, and the rounding mode is set to nearest. The
     1611    functions <varname>SET-FPU-MODE</varname> and
     1612    <varname>GET-FPU-MODE</varname> provide user control over
     1613    floating-point behavior.
     1614  </para>
     1615
     1616  <refentry id="f_get-fpu-mode">
     1617    <indexterm zone="f_get-fpu-mode">
     1618      <primary>get-fpu-mode</primary>
     1619    </indexterm>
     1620
     1621    <refnamediv>
     1622      <refname>GET-FPU-MODE</refname>
     1623      <refpurpose>
     1624        Return the state of exception-enable and rounding-mode control
     1625        flags for the current thread.
     1626      </refpurpose>
     1627      <refclass>Function</refclass>
     1628    </refnamediv>
     1629   
     1630    <refsynopsisdiv>
     1631      <synopsis><function>get-fpu-mode</function> &optional; mode</synopsis>
     1632    </refsynopsisdiv>
     1633
     1634    <refsect1>
     1635      <title>Arguments and Values</title>
     1636      <variablelist>
     1637        <varlistentry>
     1638          <term>mode</term>
     1639          <listitem>
     1640            <para>
     1641              One of the keywords :rounding-mode, :overflow,
     1642              :underflow, :division-by-zero, :invalid, :inexact.
     1643            </para>
     1644          </listitem>
     1645        </varlistentry>
     1646      </variablelist>
     1647    </refsect1>
     1648   
     1649    <refsect1>
     1650      <title>Description</title>
     1651      <para>
     1652        If <varname>mode</varname> is supplied, returns the value of
     1653        the corresponding control flag for the current thread.
     1654      </para>
     1655      <para>
     1656        Otherwise, returns a list of keyword/value pairs which
     1657        describe the floating-point exception-enable and rounding-mode
     1658        control flags for the current thread.
     1659      </para>
     1660      <variablelist>
     1661        <varlistentry>
     1662          <term>rounding-mode</term>
     1663          <listitem>
     1664            <para>
     1665              One of :nearest, :zero, :positive, :negative
     1666            </para>
     1667          </listitem>
     1668        </varlistentry>
     1669        <varlistentry>
     1670          <term>overflow, underflow, division-by-zero, invalid, inexact
     1671          </term>
     1672          <listitem>
     1673            <para>
     1674              If true, the floating-point exception is signaled.
     1675              If NIL, it is masked.
     1676            </para>
     1677          </listitem>
     1678        </varlistentry>
     1679      </variablelist>
     1680    </refsect1>
     1681  </refentry>
     1682
     1683  <refentry id="f_set-fpu-mode">
     1684    <indexterm zone="f_set-fpu-mode">
     1685      <primary>set-fpu-mode</primary>
     1686    </indexterm>
     1687
     1688    <refnamediv>
     1689      <refname>SET-FPU-MODE</refname>
     1690      <refpurpose>
     1691        Set the state of exception-enable and rounding-mode control
     1692        flags for the current thread.
     1693      </refpurpose>
     1694      <refclass>Function</refclass>
     1695    </refnamediv>
     1696   
     1697    <refsynopsisdiv>
     1698      <synopsis><function>set-fpu-mode</function> &key;
     1699      rounding-mode overflow underflow division-by-zero
     1700      invalid inexact</synopsis>
     1701    </refsynopsisdiv>
     1702
     1703    <refsect1>
     1704      <title>Arguments and Values</title>
     1705      <variablelist>
     1706        <varlistentry>
     1707          <term>rounding-mode</term>
     1708          <listitem>
     1709            <para>
     1710              If supplied, must be one of :nearest, :zero, :positive, or
     1711              :negative.
     1712            </para>
     1713          </listitem>
     1714        </varlistentry>
     1715        <varlistentry>
     1716          <term>overflow, underflow, division-by-zero, invalid, inexact</term>
     1717          <listitem>
     1718            <para>NIL to mask the exception, T to signal it.</para>
     1719          </listitem>
     1720        </varlistentry>
     1721      </variablelist>
     1722    </refsect1>
     1723   
     1724    <refsect1>
     1725      <title>Description</title>
     1726      <para>
     1727        Sets the current thread's exception-enable and rounding-mode
     1728        control flags to the indicated values for arguments that are
     1729        supplied, and preserves the values assoicated with those
     1730        that aren't supplied.
     1731      </para>
     1732    </refsect1>
     1733  </refentry>
     1734  </sect1>
    15961735</chapter>
Note: See TracChangeset for help on using the changeset viewer.