diff options
author | Justin Klaassen <justinklaassen@google.com> | 2018-12-18 11:56:53 -0800 |
---|---|---|
committer | Justin Klaassen <justinklaassen@google.com> | 2019-02-08 10:51:48 -0800 |
commit | 8caf6b4a41d462a403c47046ff1399c758613644 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /docs/implementation-overview.html | |
parent | 7265aa3a922a7e7c0389dae4b26cca562aa777a6 (diff) | |
download | ExactCalculator-main.tar.gz |
Deprecate ExactCalculatorHEADandroid-o-mr1-iot-release-1.0.14android-o-mr1-iot-release-1.0.13android-o-mr1-iot-release-1.0.12android-o-mr1-iot-release-1.0.10oreo-mr1-iot-releasemastermain
ExactCalculator is no longer a supported module. If you wish to see the
historical source code please check out a prior release branch.
Bug: 120905067
Test: lunch aosp_arm64 && make -j8
Merged-In: I2990bccfff3ecd058200e00cc470e6f575460b0c
Change-Id: I944e99431092d7d6c3f03164d107f5bf8cde908a
Diffstat (limited to 'docs/implementation-overview.html')
-rw-r--r-- | docs/implementation-overview.html | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/docs/implementation-overview.html b/docs/implementation-overview.html deleted file mode 100644 index a06e73b..0000000 --- a/docs/implementation-overview.html +++ /dev/null @@ -1,51 +0,0 @@ -<!doctype html> -<html> -<head> -<title>Calculator Implementation Overview</title> -<meta charset="UTF-8"> -</head> -<h1>M Calculator Implementation Overview</h1> -<p>Although the appearance of the calculator has changed little from Lollipop, and some of the UI -code is indeed the same, the rest of the code has changed substantially. Unsurprisingly, -<b>Calculator.java</b> implements the main UI. The other major parts of the implementation -are:</p> - -<p><b>CR.java</b> in <b>external/crcalc</b> provides the underlying demand-driven ("constructive -real") arithmetic implementation. Numbers are represented primarily as objects with a method that -can compute arbitrarily precise approximations. The actual arithmetic performed by these methods -is based on Java's <tt>java.util.BigInteger</tt> arithmetic, with appropriate implicit -scaling.</p> - -<p><b>BoundedRational.java</b> is a rational arithmetic package that is used to provide finite -exact answers in "easy" cases. It is used primarily to determine when an approximation provided -by CR.java is actually exact. This is used in turn both to limit the length of displayed results -and scrolling, as well as to identify errors such as division by zero, that would otherwise result -in timeouts during computations. It is in some sense not needed to produce correct results, but -it significantly improves the usability of the calculator. It is also used for the "display as -fraction" option in the overflow menu.</p> - -<p><b>CalculatorExpr.java</b> implements calculator arithmetic expressions. It supports editing, -saving, restoring, and evaluation of expressions. Evaluation produces a constructive real (CR) -and possibly a BoundedRational result. Unlike the "arity" library used in earlier versions, the -underlying expression is represented as a sequence of "tokens", many of which are represented by -Button ids, not as a character string.</p> - -<p><b>Evaluator.java</b> implements much of the actual calculator logic, particularly background -expression evaluation. Expression evaluation here includes both using CalculatorExpr.java to -evaluate the expression, and then invoking the resulting CR value to actually produce finite -approximations and convert them to decimal. Two types of expression evaluation are supported: -(1) Initial evaluation of the expression and producing an initial decimal approximation, and (2) -reevaluation to higher precision. (1) is invoked directly from the Calculator UI, while (2) is -invoked from the calculator display, commonly in response to scrolling. When the display requests -a result, a "result" is immediately returned, though it may contains blank placeholders. The -display is then notified when the real result becomes available.</p> - -<p><b>CalculatorText.java</b> is the TextView subclass used to display the formula.</p> - -<p><b>CalculatorResult.java</b> is the TextView subclass used to display the result. It handles -result formatting, scrolling, etc. After the user hits "=", the CalculatorResult widget moves -into the top position, replacing the formula display. Currently it remains in that position until -the formula is again modified.</p> -</body> -</html> - |