summaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README183
1 files changed, 183 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..f04797d
--- /dev/null
+++ b/README
@@ -0,0 +1,183 @@
+abakus, by Michael Pyne <[email protected]>
+Version: 0.91
+
+This is my attempt at creating a light-calculator based on Roberto Alsina's
+initial usability suggestions, and based on the ideas of a few other KDE
+hackers.
+
+This software is distributed under the terms of the GNU GPL v2.
+
+Synopsis:
+ $ tar xvjf abakus-0.91.tar.bz2
+ $ cd abakus-0.91
+ $ ./configure && make && make install
+ $ abakus
+
+Type away, and press Enter to see the result.
+
+Changes since 0.90:
+* Add ability to remove all functions and variables to the context menus of
+ their respective list boxes.
+* Convert out-of-range numbers to NaN.
+* Accept "," as a decimal separator for the benefit of European users.
+* Use correct decimal separator (per KLocale settings) in output.
+* For long results, show the beginning instead of the end of the result,
+ since the beginning is the most significant part of the result.
+
+Changes since 0.85:
+* You now have the option of using the GNU Multiple Precision library for
+ high-precision mathematics. It requires the MPFR library to also be
+ installed (normally comes with GNU MP 4.x). It is used automatically if
+ detected.
+* Jes Hall has contributed DocBook documentation to make Abakus integrate into
+ KDE even more tightly. Thanks, Jes!
+* User defined functions can now be defined over.
+* Error handling with deriv() function improved.
+* Ariya Hidayat's name was misspelled everywhere in Abakus. Sorry, Ariya. :(
+* Speaking of Ariya, Abakus now uses the impressive user interface code from
+ his SpeedCrunch calculator (http://speedcrunch.berlios.de/). This includes
+ the Calc-as-you-Type tooltip, the function and variable dropdown, and
+ syntax highlighting. It's not configurable at this point, expect that in
+ the next release.
+* You can use the F6 key to select the expression editor if you're a big fan
+ of the keyboard.
+* Raising negative numbers to integral powers should work with the internal
+ high-precision library now.
+* You can no longer deselect the current precision menu item.
+* Fix crash bug when a user-defined function refers to another user-defined
+ function, and then you remove or edit the function it referred to.
+* Add exact numerical derivatives for all functions supported.
+* Added the asinh, acosh, and atanh functions.
+* Fixed bug with loading of prior compact mode status.
+* Fixed bug where result text had wrong precision when you changed the
+ precision and tried drag-and-drop.
+* Drag-and-drop improvements.
+* Fixed bug where Custom Precision menu entry was checked even if you canceled
+ the dialog.
+* Made hyperbolic functions consistently ignore trigonometric mode. (Both
+ Degrees and Radians make no sense for hyperbolic trig).
+* Whew! :)
+
+v0.85 adds a lot:
+* Improvements to the configure script. Since I didn't end up using libCLN it
+ was mostly for naught, but the changes will be useful for the future.
+* abakus now uses the high-precision math routines from Ariya Hidayat's
+ SpeedCrunch program. Thanks, Ariya!
+* High precision arithmetic can have between 0 and 75 digits of precision.
+* Support for approximate derivatives. For most functions the derivatives will
+ be numerically accurate. For those functions where I didn't feel like typing
+ in the exact form of the derivative an approximation is used instead.
+* Implicit multiplication has been added to the parser. That means you can
+ type stuff like "3 sin pi" without having to manually add the * in between
+ 3 and sin. This also works with numbers and variables, and numbers and
+ parenthesized expressions.
+* GUI changes. The main result view now uses KListView, so it gains tooltip
+ support for long answers for free, along with a bevy of other improvements.
+* You can right-click on an answer and copy it to the clipboard.
+* Corrected information in the about box.
+* Restarting abakus with compact mode enabled should is much improved.
+
+v0.80.2 fixed an issue with the configure script for people who don't have
+exactly the same version of Python I do, and forcibly prevents flex/bison
+errors.
+
+v0.80.1 fixed an issue with the configure script for people who don't already
+have scons installed.
+
+Major changes since 0.76:
+* There is no more C code to interface between the parser and program.
+* RPN mode is improved. Now the stack is retained between calls, and there
+ are a few commands only in RPN mode:
+ 1. pop - Return the top of the stack.
+ 2. clear - Clear the stack.
+* bksys is used instead of the custom Makefiles.
+* Lots of code cleanups, including license headers.
+* The nifty drag-and-drop image looks more rectangular, and is used with the
+ two listviews on the right as well.
+* Improved error checking, with messages that should hopefully be more
+ descriptive.
+
+Major changes since 0.75:
+* Reorder internal macro so that functions are declared *before* they're
+ referenced, which helps build the program on systems with math.h files that
+ don't export the long double version of their math functions.
+* Hitting a number or letter key right after evaluating an expression in RPN
+ mode automatically prepends the 'ans' variable, which was a feature of the
+ Normal mode.
+
+Major changes since 0.70:
+* Build system switched (somehow) to using qmake. The parser and lexer are
+ still included, so bison and flex are still not required. Hopefully this
+ will improve the ease of building. Of course, this means no more colored
+ make output.
+* Changed most of the keyboard shortcuts to use Shift + Alt + foo instead of
+ Alt + foo since that was interfering with the menu bar.
+* RPN mode!! If you enable RPN mode, then your expressions will be evaluated
+ using the Reverse Polish Notation popular with users of HP calculators. Note
+ that although you can use values and functions while in RPN mode, you cannot
+ set or remove them from the expression editor like you can in normal mode.
+* abakus will display a small token starting with a dollar sign ($) in italics
+ next to results. You can use these tokens to quickly reference a result in
+ your expression. The most recent result is always $0, with the number
+ increasing from most recent to least recent result. For example, typing
+ 2 <Enter> 3 <Enter> $0 ^ $1 <Enter> would give a result of 9.
+* You can right click on functions and values in the list views to remove them
+ from the GUI.
+* Changed the result items to use word wrapping when needed to fit all the
+ text.
+* Very small DCOP interface.
+* More code cleanup.
+* Added a .desktop file.
+* Test client removed again.
+* Double-clicking on an error message (or OK message) no longer inserts them
+ into the edit box.
+
+Major changes since 0.61:
+* User defined Functions.
+* Save state of program between runs.
+* Miscellaneous fun stuff.
+
+Currently implemented features:
+* Parser built using flex and bison. The generated files are included so it
+ should compile fine for you.
+* Fully C++. The parser and lexer code require C++ to compile.
+* Supports several built-in functions:
+ - sin, cos, tan, sinh, cosh, tanh, asin, acos, atan in either radian or
+ degree mode.
+ abs, exp (e raised to the given power), ln, log (base 10),
+ sqrt, ceil, floor
+* Supported operators: +, -, *, /, ^ (or **).
+* Includes a window showing the values and user-defined functions you have.
+* Predefined constants: pi, and e (Euler' constant).
+* You can assign to variables by using an expression of the form:
+ identifier = expression. You can then reuse these variables later.
+* You can create user-defined functions of one variable using the syntax
+ set foo(var) = <expr>, where <expr> calculates the value in terms of var.
+* You can delete user-defined variables by doing: remove var
+* You can delete user-defined functions by doing: remove foo(). Notice that
+ the variable is NOT included in that expression.
+* Functions and variables are saved on exit, and then loaded when abakus is
+ started again.
+* The ans variable contains the result of the last computation.
+* Pressing +, -, *, or / immediately after your last computation automatically
+ inserts ans for you, saving you typing.
+* A compact mode for the program.
+* Operator precedence should be correct, including the right association of
+ the power operator. So, 2 ^ 3 ^ 2 == 512, just as it does when you write
+ it out. You can use parentheses to force precedence.
+* Parentheses are not required around functions. So, sin 3 is a valid
+ expression. Note that sin 3 + cos 4 translates internally as (sin 3) +
+ (cos 4), not as sin (3 + cos (4)).
+* I took some pains to try to make things like 3 + -2 work right.
+* inf and nan are accepted as numeric input for completeness.
+* abakus will automatically add ) characters to the end of the expression as
+ needed to balance your expression. This means that expressions like
+ sin (cos (2 + 3 will evaluate with no error.
+* A rudimentary RPN mode is included. Most everything works, except for
+ derivatives and creating functions or new variables.
+
+Bugs:
+* More functions would be nice.
+* The lexer assumes that the decimal marker is a period. (.) I'm not exactly
+ sure how to cleanly solve this problem with flex. :-(
+* Documentation could be better.