Well, we're still working on totally redesigning Simplimath. This may take another few months (unless anyone else feels like volunteering) because of our busy school schedules, but it will definetly be worth it. The new layout for Simplimath, will include not just a generic floating point calculator, but a rational one that represents all the operations it can do internally with 100% accuracy. This means that there will be no more rounding problems. For example, Simplicalc-0.22 treats sqrt(2)^2 as 1.41421356237309^2, depending on the precision, of course. The real answer of that calculation is 1.99999999999998, which is very close to the correct answer, but it's not quite right. Therefore, we have figured out how to get the exact answer *most* of the time in the simplicalc-0.2x series, but the accuracy of the calculation decreases more and more as more operations are put into one expression. Then, to *further* reduce error, we round the final answer at the end in the same way, before outputting it to the user. This method works up to a point, as I have said, but it is not the ideal solution. The Simplicalc-0.3x series will completely eliminate all of the innacuracy problems of using a multiple precision floating point library. It will be object oriented, using the C++ closer to its full potential. There will be several building blocks it will use to calculate expressions, and eventually solve equations. The first building block is a rational class. Uhmmmm has decided to make his own rational class in order to represent the division operation with 100% accuracy. All numbers will be rationals in the new series. The second building block is the monomial class. It uses the rational class for the coefficient, and the standard string class for the variables. Then, there will be a corrosponding array that will contain a rational exponent number for each variable AND the coefficient. When a monomial is parsed, the variables will automatically be sorted in alphabetical and descending exponential form. In this way, the operations on monomials will work just as they do in Algebra class on paper. (4^((1/3)yx))(4^(2x)) will result in a monomial object 4^((1/3)yx+2x). notice the exponent of the 4; it's not a monomial. That's where the expression class comes into play. The expression class is a group of monomials seperated by +'s or -'s. There will be a member function of the expression class that simplifies it until it can be simplified no more. The result will be outputted as the answer by SimpliCalc. But, if you have tuned the floating-point outputting feature on, it will output a floating point number for every nonending operation. Finally, there is the equation class, which will contain two expression classes. It will have a solve member function. This will surely be the most difficult for us. ... read more