摘要 |
This invention concerns the manipulation and restructuring of programs that compute numerical functions using floating-point numbers, for the purpose of controlling round-off error. In particular, it provides a variety of means for transforming a program that computes a numerical function F(x) into a related program that computes divided differences of F: One such transformation creates a program that computes F[x0, x1], the first divided difference of F(x), where <math-cwu id="MATH-US-00001"> <NUMBER>1</NUMBER> <MATH> <MROW> <MROW> <MI>F</MI> <MO>⁡</MO> <MROW> <MO>[</MO> <MROW> <MSUB> <MI>x</MI> <MN>0</MN> </MSUB> <MO>,</MO> <MSUB> <MI>x</MI> <MN>1</MN> </MSUB> </MROW> <MO>]</MO> </MROW> </MROW> <MO>⁢</MO> <MOVER> <MO>=</MO> <MI>def</MI> </MOVER> <MO>⁢</MO> <MSTYLE> <MTEXT> </MTEXT> </MSTYLE> <MO>⁢</MO> <MROW> <MO>{</MO> <MTABLE> <MTR> <MTD> <MROW> <MFRAC> <MROW> <MROW> <MI>F</MI> <MO>⁡</MO> <MROW> <MO>(</MO> <MSUB> <MI>x</MI> <MN>0</MN> </MSUB> <MO>)</MO> </MROW> </MROW> <MO>-</MO> <MROW> <MI>F</MI> <MO>⁡</MO> <MROW> <MO>(</MO> <MSUB> <MI>x</MI> <MN>1</MN> </MSUB> <MO>)</MO> </MROW> </MROW> </MROW> <MROW> <MSUB> <MI>x</MI> <MN>0</MN> </MSUB> <MO>-</MO> <MSUB> <MI>x</MI> <MN>1</MN> </MSUB> </MROW> </MFRAC> <MO>⁢</MO> <MSTYLE> <MTEXT> </MTEXT> </MSTYLE> </MROW> </MTD> <MTD> <MROW> <MROW> <MI>if</MI> <MO>⁢</MO> <MSTYLE> <MTEXT> </MTEXT> </MSTYLE> <MO>⁢</MO> <MSUB> <MI>x</MI> <MN>0</MN> </MSUB> </MROW> <MO>≠</MO> <MSUB> <MI>x</MI> <MN>1</MN> </MSUB> </MROW> </MTD> </MTR> <MTR> <MTD> <MROW> <MROW> <MFRAC> <MROW> <MO>ⅆ</MO> <MSTYLE> <MTEXT> </MTEXT> </MSTYLE> </MROW> <MROW> <MO>ⅆ</MO> <MI>z</MI> </MROW> </MFRAC> <MO>⁢</MO> <MROW> <MI>F</MI> <MO>⁡</MO> <MROW> <MO>(</MO> <MI>z</MI> <MO>)</MO> </MROW> </MROW> </MROW> <MO>,</MO> <MROW> <MROW> <MI>evaluated</MI> <MO>⁢</MO> <MSTYLE> <MTEXT> </MTEXT> </MSTYLE> <MO>⁢</MO> <MI>at</MI> <MO>⁢</MO> <MSTYLE> <MTEXT> </MTEXT> </MSTYLE> <MO>⁢</MO> <MI>z</MI> </MROW> <MO>=</MO> <MSUB>
|