DragginMath: About Arithmetic

DragginMath only does integer arithmetic. There are no decimals. There are no fractions.

The results of addition, subtraction, and multiplication of integers are known in advance: they will always be another integer. But the result of division might not be. If you evaluate 12÷4, the result is 3, an integer. If you evaluate 4÷12, the result is 1÷3. This is as far as DragginMath will go with this. For classical algebra problems, this is the answer. Numbers like 0.333333333 don’t happen in this app. Understanding why 1÷3 is the answer here is one of the more challenging things students have to learn.

When you ask DragginMath to divide, the result always comes to you in lowest terms. You don’t have to ask for this. DragginMath just does it. Even complicated fractional arithmetic is easy. For example, enter 3÷5+4÷7–2÷3–3÷105. Double-tap the root of the tree. The result is 10÷21.

Division is not the only troublemaker when it comes to arithmetic. Root and log cause their own problems. For example, enter and evaluate √49. The result is 7. Enter and evaluate √50. The result is 5√2 (note the ∗, which is optional in traditional notation, but necessary in DragginMath). Enter and evaluate √51. The result is √51. All of these results are correct in the context of algebra.

These nice integer results happen efficiently because DragginMath keeps a Factorization Cache. Whenever it needs to divide, reduce roots, or evaluate logarithms, it looks in the Cache for the necessary factors, then uses them the same way you would if you were doing this work on paper. For example, DragginMath does division by cancelling common factors between numerators and denominators. The Cache computes and then remembers all factors your work actually needs. When a factorization is needed again, it is already there.

The Cache expands as needed, constrained only by the amount of memory in your device. In extreme circumstances, you may be aware of a small delay caused by Cache expansion. Usually, you will not notice. It is possible to kill this app by working with numbers so large that the resulting Cache won’t fit in your machine. On our test machines, this requires numbers greater than 100,000,000. Your results may vary. Of all the things DragginMath could do to contain this risk (it is not a bug), simply letting it die suddenly when the Cache becomes too large might be the least obnoxious. Sorry, but this is a case of raw reality overriding all other considerations.

There are other problem areas in arithmetic. For example, what is 1÷0? What is 0÷0? These are questions that classical algebra doesn’t like to answer, and with good reason. But computer programmers need answers to these questions, also with good reason. DragginMath has answers. They are derived from the IEEE-754 Math Standard, which has been tucked away inside most computers since the 1990s. The objections classical algebra has to these questions haven’t gone away, but even beginning mathematicians need to be aware of these issues and what the modern world is doing about them.

To learn more, see the article “About Writing Math on a Computer” found on DragginMath’s main ℹ️ page.