VCalc is an RPN vector calculator for the iPhone/iPod designed to help in performing various vector intensive computations on a portable device. VCalc was created out of a need to perform vector calcuations like those required in intro physics courses, such as that particularly emphasized in the great “Matter and Interactions” curriculum developed by Ruth Chabay and Bruce Sherwood. You can learn more about Matter and Interactions at:
While VCalc is pretty ugly right now, and has fairly limited functionality, I still find it useful for 90% of my phone calculator needs. ;-) Be assured that I’ll be adding features and improving its appearance as time goes on.
To use VCalc simply enter scalers (with no commas) or vectors (with components separated by commas) by clicking on the number & comma keys on the keypad. When you’re finished entering a number/vector, click “Enter”. That puts the number on the “stack”. Once on the stack a number/vector can be a part of an operation. Most operations act on each component of a vector (e.g., x^2 squares each component of a vector) but there are some special operations like “dot product” (y dot x) and “cross product” (y cross x) in which the two topmost vectors on the stack are involved. In general if two vectors are operated on by a binary opertor (e.g., “+”,”-” etc.) each component of the second vector on the stack (called “y”) is the left operand with each component of the top vector (called “x”) acting as the right operand. The resulting vector is left on the stack. For this reason vectors that are operated on need to have the same number of components as the other operand in the binary operation. One special case is scaler operation (e.g., scaler multiplication) in which one of the vectors has only one component. In that case each component of the other vector is joined in the binary operation by the one component of the scaler.
There are two special operators that may be unfamiliar “xhat” creates a unit vector from any vector (a special vector of unit magnitude that points in the same direction as the original vector) and “||” which computes the magnitude of the top vector on the stack.
There is a typing convenience feature. If you want to enter a vector where all the components have the same order of magnitude (a frequent need) you can enter the vector without the power of ten. Then just hit ‘e9 x’ for example and it will multiply the whole vector by 1 x 10^9. Basically, you don’t have to type the ‘1’ in front of the ‘e’ if you’re entering a scaler.
Do you need to undo an operation? Just shake. ;-)
Finally, “Dup”, “Drop”, “Swap” and “Roll” manipulate the stack itself in obvious ways.