Saturday, December 15, 2012

Graph Improvements

I am working on improving graphing for the next update.  Currently, you are forced to enter equations in the format y=...  In the next update this will change.  The "y=" part will be removed so you are free to enter equations such as x^2+y^2=1 to draw a circle.  You can also enter equations to draw ellipses, hyperbola, and inverse functions.  For example, you could graph y=x^2-2x+1 and then graph the inverse at the same time by swapping x and y to graph x=y^2-2y+1.

In addition, there will be some improvement to how the traces are drawn.  For example, when you currently graph y=tan(x) and zoom out far enough, you will not see y go to + and - infinity when x=pi/2.  Instead the trace will just stop at a random y value and the start again at some -y value.  This will be fixed and now y=tan(x) will always be drawn off the top and bottom of the screen when x=pi/2.

I am also working to add the ability to graph parametric equations and polar coordinates to the paid version.

Saturday, December 8, 2012

Version 1.10

Version 1.10 is now available on Google Play.  This adds copy/paste, option to clear history, and fixes some crashes.

Tuesday, November 27, 2012

Copy and Paste

The next release will add the ability to copy and paste expressions.  You will be able to long click on expressions in the history on the calculator to select them.  You can then adjust the selection similar to how selections work in a text entry in android.  Finally, there will be copy, cut, and paste buttons to be able to copy/cut the selection and then paste it into the calculator entry or graph equations entry.

Saturday, November 17, 2012

Version 1.9

Version 1.9 has been released!  This adds user defined functions, inequalities, bitwise operators and memory!  Also a new tutorial was added for user defined functions and memory.

Wednesday, November 14, 2012

Upcoming Features

Here is what I am working on for the next release:

1.  User defined functions.  You will be able to define functions such as f(x)=x^2+3x-4.  You can then find the result for the function with a specific value by entering something like f(2).  This will then replace x with 2 in the function and execute 2^2+3(2)-4, which will result in 6.  The paid version will be able to create functions with multiple parameters.  For example, you could create f(x,y)=ln(x)+e^y and then execute it by doing f(2,3).

2.  Memory (User defined variables).  You will be able to store expression in memory and then use then in expressions.  To save something to memory, you would enter something like M1=sin(x)^2.  You could then use M1 in an expression such as M1+2M1.  When executing, it would replace M1 with sin(x)^2, so the result would be 3sin(x)^2.

3.  The bitwise operators AND, OR, XOR and NOT.  There will also be a new setting for how many bits you use when doing NOT.  For example, if the bit size was set to 32, then doing NOT A436B (with hexadecimal for base) would result in FFF5BC94.

4.  <, >, ≤, and ≥ will be supported for solving equations.  For example entering -3x+2>8 would solve for x and result in x<-2.

Sunday, November 4, 2012

Version 1.8.1

Version 1.8.1 is now live on Google Play.  This fixes some bugs as well as adds custom keyboards to the paid version.  A tutorial for custom keyboards is also available on the website at

Sunday, October 28, 2012

Custom keyboards

I am working on a keyboard editor for the paid version.  With this, users can create custom keyboards to use.  The user can control how much of the screen the keyboard takes up, the number of columns and rows on the keyboard, and the position of the keys.

So why add this?  Well, I try to make the standard keyboard work as well as possible on all screen sizes.  However, on phones with a very small screen the buttons may be too small, and on tablets the buttons are larger than ideal.  This will allow users to create keyboard to better fit their unique device.  In addition, some people just like buttons bigger or smaller than others.

Also, this will allow users to create keyboard for specific purposes.  Maybe you are using complex numbers a lot so you want to move the imaginary number i to the swipe down page.  With custom keyboards, you can choose to do this.  Maybe you are using matrices a lot so you want to add a new row to the keyboard and move those keys to it.  With custom keyboards you can choose to do this.

I am very excited about this new feature and can't wait to release it!

Sunday, October 21, 2012

Version 1.7

Version 1.7 is now up on Google Play.  This adds definite integration and differentiation.  A new calculus tutorial has also been added to the website to explain the new functionality.

Thursday, October 18, 2012

A look ahead.

I previously posted that I wanted to add matrices, derivatives, and approximate definite integrals in the next release or couple of releases.  The last release included matrices.  As you can guess, the next one will include derivatives and approximate definite integrals.  So what does approximate definite integrals mean?  Well, it means that while in decimal mode, definite integrals can be simplified to an approximate decimal value.  Integrals will not me simplified in integer mode (since the calculator won't have the ability to compute anti-derivatives to get the exact result).

I do hope to add the ability for the calculator to attempt to compute anti-derivatives, and therefore be able to compute indefinite integrals (which is the same thing as anti-derivative) and exact answers, in integer mode, for definite integrals.  However, this will take a lot of work to write.  This won't be added anytime soon, and I can't say for sure it will ever be added.  If it is added, expect it for the Pro version only.

The last release included matrices.  Some matrix operations were added, however, there will be more added in the future.  They won't be coming in the next release, but should be added in the next few releases.  Here is a list of what I am hoping to add for matrices:

  • Cofactor Matrix
  • Reduced row echelon form
  • LUP decomposition
  • QR decomposition
  • Eigenvalues and Eigenvectors

These additional matrix features will likely only be added for the Pro version.

Saturday, October 13, 2012

Version 1.6

Version 1.6 has been uploaded to Google Play.  This fixes some bugs and adds matrices on the new swipe up page.  A matrix tutorial will also be added soon.  There will be more matrix operations added in future releases (although they may be for paid version only).

Sunday, October 7, 2012

Upcoming features

I am working on three more features that will be added for the free version.
  1. Derivatives
  2. Definite integral approximations.
  3. Matrices 
I'm not sure yet if these will all come in one release or will be spread out of multiple releases.  It will partly depend on how long it takes for me to implement them.  I already have parts of them written, but nothing has been tested yet and there is still lots to do to finish them up.

Once these are added, things will probably change direction slightly in that many of the features that get added will be for the pro version only.  That isn't to say that no new features will be added to the free version after this, just that not everything being added will be available in the free version.

Thursday, October 4, 2012

Version 1.5 uploaded!

Version 1.5 has been uploaded to Google Play!  This fixes some bugs and polishes up the app some.  In addition, you can now change the numeric base between binary, octal, decimal, and hexadecimal.  The website tutorials are also being updated to match the latest release.

Monday, October 1, 2012


The small release that was supposed to happen this weekend started growing to where it wasn't so small anymore.  I wanted to add a setting to change the base (to binary, hexadecimal, etc).  This ended up taking a lot longer to put in than I expected.  I am also still working on going through things and making minor changes to polish things up.  

I have decided that due to some of the changes I am making to the UI, I should update all of the tutorials before I release, so I can publish the new tutorials when the next release comes out.  This way if there is any confusion on the changes someone can reference the updated tutorials.  Because of all this, I am now not expecting everything to be ready for the next release until at least next weekend.  It could easily be more than a week away since I will be busy for most of next weekend and won't have much time to work on it then.

Saturday, September 29, 2012

Small release coming this weekend

I'm going to put out a small release to fix a couple of possible crashes.  This release will also include some changes to the tool bar on the calculator (where you can quickly switch between factor/simplify, decimal/integer, etc.).

After this release, I am going to go through the tutorials and update the screen shots with the changes.  Also, I will update them to include some of the new features that have come out in the past few releases that I haven't added to the tutorials yet.

Tuesday, September 25, 2012

1.4 Released

Version 1.4 has just been uploaded to Google Play!  This version adds the larger integers talked about in the previous post.  In addition, undo, redo, gcd, and lcm keys were added.  To see the full release notes visit here.

Monday, September 17, 2012

Improvements to Integer Mode

Currently Integer mode only works with integers between -2,147,483,648 and 2147483647.  If your result goes over or under this range, the integer turns into a decimal and it stops trying to simplify that number down.  This was originally done for speed reasons, but also because it was much easier to implement.

I have been working the past week to change this over to allow for much larger integers.  I have wrote my own code, from scratch, to handle infinitely large integers (well, until you run out of memory that is).  My reasons to write things from scratch are:
  1. I don't have to worry about copyright issues with someone else's work.
  2. I can tune it to be as fast as possible for my specific needs.
  3. Best of all, it is a good learning experience!
My goal was to not increase integer execution time by more than 20% when using integers in the +/- 65,000 range.  I have accomplished this.  I think execution time has increased between 10-15%.  I was most concerned about these smaller integers since they are what will be used most often.  Once you start using integers over 65,000, execution time takes up to 40% longer (depending on what you are trying to simplify), but now you aren't limited in integer like you were before.

In addition, when using integer mode, I remove the decimal point button because decimals shouldn't be entered.  This is also changing with the next release.  You will be able to enter decimals in integer mode, and when you do, they will be converted to fractions for simplification.  For example, if you enter 0.123, it will be converted to 123/1000 as the result.  Further more, it will turn repeating decimals into fractions.  For example, entering 0.3333333333 will result in 1/3 when executing in integer mode.

These changes and more will be coming in the next release!

Sunday, September 16, 2012

Welcome to my Blog!

Welcome to the MathAlly blog.  This will be the new place to keep on on news for MathAlly Graphing Calculator for android!  Feel free to post comments on my post to let me know what you think.  More info coming soon on what is coming for the next release.