Commit Graph

14 Commits

Author SHA1 Message Date
Rene Gollent
55751d083a Move Tokenizer/Token into ExpressionParser's namespace. 2012-12-18 21:31:43 -05:00
John Scipione
593808d96a Return authors name's to DeskCalc headers.
No functional change.

* Surround email addresses in angle brackets.
* Add myself to ExpressionParser.cpp and .h
* Remove myself from ExpressionTextView.cpp and .h
* Alphatetize authors by last name.

Thanks Ingo and Axel.
2012-08-03 11:16:23 -04:00
John Scipione
8ffd0477dd Implement degree mode in DeskCalc.
Default is radian mode,  You set the option in the right click menu
like the other options.

Note: degree mode does not affect hyperbolic trigonometric functions.
This is how Mac Calculator, Windows Calculator, and Google Calculator
work.
2012-07-30 22:35:57 -04:00
John Scipione
0f27a79e43 Check to see if the argument of tangent divided by half pi is an odd integer. If so, throw an out of domain error. 2011-11-12 17:20:09 -05:00
John Scipione
60ba75c5ec Add a scientific mode to Deskcalc.
Deskcalc already contains support for all the functions in scientific mode
but up until now you had to know what they were called and type them in to
figure them out. Scientific mode gives you access to most of the available
functions via buttons.

Pushing one of the the scientific mode buttons inserts the function name
along with an innertube () at the current cursor location. If you have some
text highlighted when you push a scientific mode button it will put that
text inside the innertube. So you can type 0.5, then highlight the text with
the mouse, and then push the sin button and you will get sin(0.5).

The contextual menu has been altered to support the new mode.
Instead of having a single show keypad option in the contextual menu there
are 3 new options instead. Compact mode, Basic mode, and Scientific mode.
Basic mode is the default mode showing the basic keypad. Compact mode is the
same as show keypad turned off, showing just a bare text field. Scientific
mode is the new mode which adds buttons for the different transcendental
functions and constants that Deskcalc supports. You can also use Alt+0, Alt+1,
and Alt+2 keyboard modifiers to switch between the modes.

In addition to accepting the word 'pi' for the circumference of the unit
circle, Deskcalc now also recognizes the UTF-8 character π which has a
dedicated button in scientific mode. I also changed the parser so that
lowercase 'e' always means Euler's number and uppercase 'E' always means
'times 10 to the' so 1E5 means 1 times 10 to the 5th.

Another small tweak I did was to adjust the minimum basic mode width so that
the window is flush with the tab.

I also renamed fColums to fColumns, took out some spaces and other style
changes and bumped the version to 2.2.0.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-06 09:38:39 +00:00
Stephan Aßmus
26fbe862cf Patch by John Scipione: Added cbrt() function to the supported functions
and factrorial expression support. Closes ticket #7945, thanks a bunch!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-26 10:31:29 +00:00
Stephan Aßmus
1e9af0512d Patch by jscipione: Check valid input value range
for some MAPM functions, since they will otherwise
just return 0, instead of indicating an error.
Thanks! Fixes ticket #6398.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39889 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-19 10:34:55 +00:00
Stephan Aßmus
6a49b9e8a0 Patch by John Scipione: Rename the log and log10 functions in DeskCalc to
ln and log, which is hopefully more in line with expectations of users.
Thanks a lot!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36463 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-25 10:04:53 +00:00
Stephan Aßmus
7fd4194e29 Patch by John Scipione: Allow pi and e constants to have full MAPM precision.
Thanks a bunch!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36462 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-25 10:02:37 +00:00
Michael Pfeiffer
100dd0cf5c Fixed number with exponent scanner (and simplified that code).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 08:31:15 +00:00
Stephan Aßmus
86a0da42a5 Fixed spelling mistake.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35245 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-22 21:05:23 +00:00
Stephan Aßmus
f88faf25fb Fix parsing scientific notation in the form of 1E+6 or 1E-6.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-22 21:02:04 +00:00
Michael Lotz
417f446051 The parameter to toFixPtString() only controls the decimal places, not the
actual digits. Therefore the buffer was always too small leading to memory
corruption. Use the version that allocates the string for us instead, then trim
it and assign it to the result.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-13 02:48:17 +00:00
Ingo Weinhold
59d799dabc * Moved the mapm library from src/apps/deskcalc to src/libs and headers/libs.
* Moved the ExpressionParser class to shared. It's now built into its own
  static library.
* Added hexadecimal number support to the expression parser as well as
  Evaluation*() methods to get a number instead of a string.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-28 17:10:40 +00:00