From: Thomas Walker Lynch Date: Fri, 10 Jul 2026 10:52:01 +0000 (+0000) Subject: 1st completed draft of the Computational Analysis section X-Git-Url: https://git.reasoningtechnology.com/D_10.png?a=commitdiff_plain;h=1048ec7837c3b20a84994e9c576a357727faf7aa;p=TM-2026 1st completed draft of the Computational Analysis section --- diff --git a/document/TM-2026.html b/document/TM-2026.html index b6d44c9..0ef5f0b 100644 --- a/document/TM-2026.html +++ b/document/TM-2026.html @@ -1727,7 +1727,7 @@ -

Chapter discussion

+

Chapter discussion

The fundamental claim of computational analysis is that all functions can be viewed as discrete entities. Take this simple function:

@@ -1735,25 +1735,29 @@ f(t) = t^3 -

It is said to be a continuous function over the real field. However, from a computational perspective, it is a string of 8 discrete symbols. A person might ask how to take a derivative, as that is an operation on continuous functions. The answer is to use a machine that manipulates the symbols; it will move the 3 down in front of the t, decrement the power, and write 2. Those are all discrete operations.

+

It is said to be a continuous function over the real field. However, from a computational perspective, it is a string of 8 discrete symbols. A person might ask then, "If the function is not continuous, then how can a person take a derivative?" Often people view a derivative as a tangent line to a curve drawn on a plot. The computational analyst's answer is to use a machine that manipulates the symbols; it will move the 3 down in front of the t, decrement the power, and write 2. Those are all discrete operations.

-

The point of this chapter is to state that computational analysis exists, rather than to present a comprehensive computational analysis system. The chapter presents function extensions and difference methods to tie in the Babbage machine and discrete methods, which have a very long history. There is also a brief mention of the connection to nonstandard analysis.

+

The point of this chapter is to state that computational analysis exists, rather than to present a comprehensive computational analysis system. If a person is looking for practical systems for extending functions that expand precision, or for second order computation, there are options.

-

Hans J. Boehm and Robert Cartwright's work of extending the precision of a computation on demand continued to mature. Boehm, while working at Google, authored a Java constructive reals library that powers the bundled Android calculator. When a person types, the system builds an Abstract Syntax Tree (AST) of the expression. The display interface determines how many digits fit on the screen and demands exactly that much precision from the root of the tree. The root function then recursively demands progressively higher precision from its operand functions until it achieves the strict error bounds required to guarantee every digit displayed on the screen is mathematically correct Hans J. Boehm, "Small data computing: Correct calculator arithmetic," Google Research, 2015. This library uses constructive real arithmetic to guarantee fully accurate results through demand driven evaluation.. +

Hans J. Boehm and Robert Cartwright's work of expanding the precision of a computation on demand continued to mature. Boehm, while working at Google, authored a Java constructive reals library that powers the bundled Android calculator. When a person types in an expression, the system builds an Abstract Syntax Tree (AST) of the expression. The display interface determines how many digits fit on the screen and demands exactly that much precision from the root of the tree. The root function then recursively demands progressively higher precision from its operand functions until it achieves the strict error bounds required to guarantee every digit displayed on the screen is mathematically correct Hans J. Boehm, "Small data computing: Correct calculator arithmetic," Google Research, 2015. This library uses constructive real arithmetic to guarantee fully accurate results through demand driven evaluation..

-

Wolfram Mathematica utilizes a true second order computation system by keeping expressions in their exact symbolic form for as long as possible. An expression like Sqrt[2] + Pi remains an AST of symbols. It then relies on an extensive library of algebraic rewrite rules to simplify the tree. However, unlike Boehm and Cartwright's method of pulling precision through back propagating extension calls, when a numeric result is required, it runs forward using significance arithmetic. Should there be insufficient precision as a result, it employs an adaptive retry loop Wolfram Language Documentation, "MachinePrecision," Wolfram Research. Mathematica uses precision tagged arbitrary precision numbers to track errors throughout a calculation, adapting dynamically and iterating if the precision of the result falls below the required threshold.. +

Wolfram Mathematica utilizes a true second order computation system by keeping expressions in their exact symbolic form for as long as possible. An expression like Sqrt[2] + Pi remains an AST of symbols. It then relies on an extensive library of algebraic rewrite rules to simplify the tree. However, unlike Boehm and Cartwright's method of pulling precision through back propagating extension calls, when a numeric result is required, Mathematica runs the computation forward using significance arithmetic. Should there be insufficient precision at the result, it employs an adaptive retry loop Fredrik Johansson, "The significance of arithmetic," 2008. Mathematica implements significance arithmetic by approximating numbers as a floating point value with an attached error estimate, allowing dynamic adaptation and iteration if precision falls below the required threshold. See also: Wolfram Language Documentation, "Arbitrary Precision Numbers" (https://reference.wolfram.com/language/tutorial/ArbitraryPrecisionNumbers.html)..

-

Lynch's method is to first build the AST and then evaluate the code not for a result, but rather for accuracy and precision loss per step, as a function of the domain. Then the desired result accuracy is propagated back, thus setting the precision for each step. This approach was used on the AMD K5 processor transcendental microcode to guarantee the computations yielded full accuracy. It can also be used to set data bus widths in signal processors, and in applications where neither precision pull nor adaptive significance arithmetic can be employed Thomas Walker Lynch, A. Ahmed, M. Schulte, T. Callaway, and R. Tisdale, "The K5 Transcendental Functions," Proceedings of the 12th IEEE Symposium on Computer Arithmetic, 1995. DOI: 10.1109/ARITH.1995.465368. Thomas Walker Lynch, "Method for floating point error analysis of algorithms at AMD," Technical Report, ResearchGate, 2025. DOI: 10.13140/RG.2.2.10906.49601.. +

The approach I used differs from both of these approaches. Like them, the first step is to build the AST, but then the tree is evaluated in two phases. The first phase analyzes the tree, while createing error propagation expressions either per computation step or for atomic computation blocks. These take the form of symbolic expressions with error \epsilon in and error \delta out, over the domain of the input. Then instead of back propagation of precision requests at run time, there is a back propagation of precision requirements at analysis time. This approach was used on the AMD K5 processor transcendental microcode to guarantee that computations yielded specified accuracy. The method is also well suited for setting the bus widths for application specific processors, because the analysis step can occur once at design time. Thomas Walker Lynch, A. Ahmed, M. Schulte, T. Callaway, and R. Tisdale, "The K5 Transcendental Functions," Proceedings of the 12th IEEE Symposium on Computer Arithmetic, 1995. DOI: 10.1109/ARITH.1995.465368. Thomas Walker Lynch, "Numerical Analysis of Computer Approximations," September 2018. DOI: 10.13140/RG.2.2.10906.49601. License CC BY 4.0. https://www.researchgate.net/publication/329402329_Numerical_Analysis_of_Computer_Approximations.

-

None of these computation systems, that of Boehm and Cartwright, Mathematica, nor the Lynch error analysis approach, makes use of the IEEE 754 floating point arithmetic standard. Rather they all require the use of variable precision. In the case of Boehm and Cartwright's original system that was through serialization, but their later rational expressions used intermediate variable precision results. In the case of Mathematica it is explicit, though implemented in software. In the error analysis approach, the means for variable precision was specified as High Radix On Line Arithmetic Thomas Walker Lynch, "Software for High Radix On Line Arithmetic," Technical Report, 1996.. What would be useful is a hardware standard for variable precision to replace the IEEE 754. This has been proposed by John Gustafson with his posit number representation John L. Gustafson, The End of Error: Unum Computing, Chapman and Hall/CRC, 2015. Posits serve as a hardware friendly alternative to IEEE 754 floating point numbers, providing variable precision mechanics.. +

None of these computation systems, that of Boehm and Cartwright, Mathematica, nor my error analysis approach, makes use of the IEEE 754 standard floating point arithmetic. Rather they all require the use of variable precision. In the case of Boehm and Cartwright's this occurs through the serialization implied through lazy calls for more precision. In the case of Mathematica it is explicit in the significance arithmetic. In my error analysis approach, the means for variable precision was the High Radix Online Arithmetic Thomas W. Lynch, "High Radix On Line Arithmetic for Credible and Accurate Computing," Real Numbers and Computers, École des Mines de Saint Étienne, France, 1995, pp. 78 89. Thomas W. Lynch and Michael J. Schulte, "Software for High Radix On Line Arithmetic," Reliable Computing, vol. 2, no. 2, 1996, pp. 133 138. DOI: 10.1007/BF02425915.. +

+ +

Hence what would be useful for a replacement of the IEEE 754, would be variable precision number standard. There is one being proposed by John Gustafson called the Posit number representation John L. Gustafson, The End of Error: Unum Computing, Chapman and Hall/CRC, 2015. Posits serve as a hardware friendly alternative to IEEE 754 floating point numbers, providing variable precision mechanics..

-

This section reviews finite difference methods as a means to implement function extensions. A person should notice that finite differences are one among many methods for extending functions, and they are not always the best choice. A common alternative when the extension is for increased precision in an approximation is the Newton Raphson method. In modern computing, rather than computing function extensions, it is more common to increment a value across a domain, completely repeating the evaluation at each step, for example when computing values to place on a plot. However, function extension and difference methods are of theoretical importance for analysis, particularly when applied to nonstandard analysis. These speak to the thesis of computational naturalism in the derivation of mathematics, rather than as a proposed method of implementing computational programs. The book is not finished; we have more theory to cover. +

This section reviewed finite difference methods as a means to implement function extensions. A person should notice that finite differences are one among many methods for extending functions, and they are not always the best choice. In modern computing it is not common to implement function extensions. Rather it is more common to increment a value across a domain, while completely repeating the evaluation for each new domain value, for example when computing values to place on a plot. However, independent of their importance in applied computing, function extension and difference methods are of theoretical importance for analysis, particularly when applied to nonstandard analysis. These speak to the thesis of computational naturalism in the derivation of mathematics, rather than as a proposed method of implementing computational programs.

+ Address

Unary Representation address