Equation Engine

20170249284 · 2017-08-31

    Inventors

    Cpc classification

    International classification

    Abstract

    This invention, the Equation Engine assists users to solve problems using equations. The Equation Engine helps users to select an equation from a local or remote database of equations, to collect values and units for the variables, and to solve for the unknown. The Equation Engine provides means for the user to solve problems by equating two equations. The Equation Engine provides means for a user to easily combine equations using equators. The Equation Engine provides one-button access to a tool for quickly solving the Quadratic Formula. The Equation Engine provides one-button access to a tool for quickly computing the mass for chemical species.

    Claims

    1. A computer-implemented method for a real or virtual user to select and manipulate equations comprising: selecting a symbolic equation; reducing the number of unknowns in said equation to one; collecting a value for each variable in the equation, except for said unknown; and displaying the solution.

    2. The method as claimed in claim 1 wherein said symbolic equation as solved for said unknown variable is displayed.

    3. The method as claimed in claim 1 wherein said symbolic equation for said unknown variable is displayed where said collected values are substituted for said values of variables.

    4. The method as claimed in claim 1 wherein said symbolic equation for said unknown variable is displayed where said collected values are substituted for said values of variables are at least partially combined.

    5. A computer-implemented method for a real or virtual user employing equators comprising: displaying equators.

    6. The method as claimed in claim 5 wherein said method comprises converting equations to equators.

    7. The method as claimed in claim 5 wherein said method comprises simplifying equations by multiplying equators and simplifying, the result.

    Description

    DESCRIPTION OF DRAWINGS

    [0108] FIGS. 1A-1E illustrate a powerful way that composite TextViews can be used to input data and display an atom or monatomic ion in chemical expressions and/or equations in an embodiment of the Equation Engine.

    [0109] FIGS. 2A-2D illustrate the use of multiple Element TextViews to create a Compound TextView for a molecule or polyatomic ion.

    [0110] FIGS. 3A-30 illustrate molecules containing more than one of a given polyatomic ion. The aboves and belows are null in these figures, for simplicity.

    [0111] FIG. 4 illustrates a Right Brace TextView and Left Brace TextView, analogous to the Right Parenthesis TextView and Left Parenthesis TextView described elsewhere herein.

    [0112] FIGS. 5, 6A-6D, 7A-7C, 8A-8D illustrate TextViews that are useful for creating and displaying chemical equations on a computer-based display.

    [0113] FIGS. 9, 10A-B, 11, 12A-B illustrate examples of Equation Engine mathematical expressions utilizing composite TextViews.

    [0114] FIG. 13 illustrates an alternative navigation means utilizing a special keyboard subset.

    [0115] FIG. 14 illustrates the Quadratic Formula.

    [0116] FIGS. 15A-B illustrate examples of array display formats for entering and displaying a variable in an equation.

    [0117] FIGS. 16A-F illustrate examples of array display formats for entering and displaying multiple variables in an equation.

    [0118] FIG. 17 illustrates an example display with numerous means the EE provides for a user to select an equation to be solved.

    [0119] FIG. 18 illustrates an example first operational screen on an Apple iPhone.

    [0120] FIGS. 19-24 illustrate an example of the means whereby a user selects and solves an equation.

    [0121] FIGS. 25-29 illustrate an example of the means whereby a user solves a problem by relating two equations.

    [0122] FIGS. 25-29 illustrate an example of the means whereby a user solves a problem by relating two equations.

    [0123] FIGS. 30-31 illustrate an example of the means whereby a user selects one or two equations using the variable/constant input array.

    [0124] FIGS. 32-36 illustrate an example of the means whereby a user solves two-state equations.

    [0125] FIGS. 37-38 illustrate an example of the means whereby a user solves the quadratic equation.

    [0126] FIGS. 39-41 illustrate an example of the means whereby a user quickly computes a number of quantities regarding an input chemical species, such as a molecule, formula unit, ion, or element. It provides the mass of the species, the molar mass of each of its elements, the total molar mass of each element in the species, and the percent mass of each element in the species.

    [0127] FIG. 42-48 illustrate the Factor Evaluator.

    [0128] FIG. 49 illustrates an example of Apple Swift code that stores information needed for a given equation.

    [0129] FIG. 50 lists pseudo-code for the algorithm for selecting an equation using the EE.

    [0130] FIG. 51 lists pseudo-code for the algorithm for solving an equation using the EE.

    DETAILED DESCRIPTION

    [0131] FIGS. 1A-1E illustrate a powerful way that composite TextViews can be used to input data and display an atom or monatomic ion in chemical expressions and/or equations in an embodiment of the Equation Engine. In a context where a chemical expression can be or is anticipated by the Equation Engine and the user enters a number (in this case a “4”) followed by the symbol for an element (or an “e”, as illustrated in FIG. 6E) in an undifferentiated Equation Engine TextView, the Equation Engine generates a particular type of composite TextView, an Element TextView comprising 8 or 9 connected TextViews. The number fills the optional Element Coefficient TextView and the symbol for the element (in this case “Hg”) automatically fills the Element Symbol TextView. If only the symbol for an element is entered (without the coefficient) into a TextView, an. Element TextView is generated, the Element Coefficient TextView is displayed as empty, but the value treated as 1. If the user then enters a value in the range of isotopic masses or the average mass of the specified element, that value (in this case “201”) automatically fills the

    [0132] Element Atomic Mass pre-superscript TextView and the atomic number (in this case “80”) automatically fills the Element Atomic Number pre-subscript TextView as illustrated. If the user then enters a number, not followed by a sign (in this case a “3”) it automatically fills the Element Atomic Quantity post-subscript TextView and designates the number of the atoms or ions of this element are present. This can be the number of atoms of the element in a molecule or a polyatomic ion. If the user then enters a number, followed by a sign (in this case a “2+”) it automatically fills the Element Ionic Charge post-superscript TextView and designates the charge on each of the ions of this atom. If only the sign is entered, it is displayed and the absolute value of the charge is treated as 1. After entering the element symbol, if the user enters one of the state values such as “l”, “s”, “g”, “aq”, etc. that state value enters the illustrated. Element State TextView in parentheses. When in an Element TextView, a period is entered that is not part of an atomic mass TextView a raised dot automatically populates, an Element Dot TextView between the post-subscript and post-superscript. This is typically used to designate a hydrate. Note that which of these Element TextView fields is intended can be nearly always be inferred by its value. If there is ambiguity, the Equation Engine can make its best guess and the user can override it. Above the pre-scripts and symbol can be the “above”, an Element Above TextView that the user can use to designate the amount of that element in the reaction. Below the pre-scripts and symbol can be the “below”, an Element Below TextView that the user can use to designate the amount of that element in the reaction, or if that is designated in the above, it can designate the number of moles. Typically, the user can enter an amount in the above or in the below and the Equation Engine can calculate the other and fill it in. If the user wants the above or below computed and filled in and does not provide the above or below information for this element, the user can select that as a general option or simply enter a “?” in the requested field. In some embodiments, the Equation Engine will automatically compute and fill in element-level aboves and belows for all elements when not already specified. FIG. 1A illustrates the Element Coefficient TextView being separate from Element TextView to show its borders. Actually, Element Coefficient TextView it is part of the Element TextView as illustrated in FIG. 1B. FIGS. 1A and 1B show the borders of the Element's TextViews as lines. This is useful when editing the data for a given element. At other times, it is easier to read when, as illustrated in FIG. 1C, the outlines are not shown for all of the TextViews for an element with the probable exception of the aboves and/or belows. FIGS. 1A, 1B and 1C illustrate the display of the element when the atomic mass and/or number are to be displayed. FIGS. 1D and 1F illustrate the display of the element when neither the atomic mass nor atomic number is to be displayed. In this case, the TextViews for those fields are squeezed to zero width, allowing the coefficient to be closer to the atomic symbol. FIGS. 1A-1E also illustrate how different measures of the substance can be in the aboves versus the belows. Thus, when the user enters “4Hg2+3l.”, the Element TextView illustrated in FIG. 1E is generated and populated, only the aboves and belows are not populated. The user can enter a value in the Element Above and/or Below or the Molecule Above and/or Below to get the Element Above and/or Below populated.

    [0133] FIGS. 2A-2D illustrate the use of multiple Element TextViews to create a Compound TextView for a molecule or polyatomic ion. FIG. 2A illustrates two Element TextViews separated for clarity. They are not typically displayed separately in the preferred embodiments. FIGS. 23-2D illustrate the concatenation of those two element TextViews to create a Compound TextView. An additional feature illustrated in FIGS. 2A-2D are aboves and belows for the amounts associated with the designated molecule or polyatomic ion. The Element prescript TextViews in both elements are shrunk as they are mused, but illustrated. The post-subscript for Ag is present. All of the other postscripts are unused, but illustrated. The coefficient for O, while shown as shrunken, will actually have no width as it is empty (but interpreted as having a value of 1). Note that the values for the masses of Ag and O are included in their respective aboves and will have been entered by the user or computed by the Equation Engine. FIGS. 2B and 2C illustrate that the data in the above for O has been changed by the Equation Engine to reflect that in the compound. The 0.694 g of O corresponds to the 17.4 g of Ag which is the limiting reactant in the formation of the silver oxide. FIGS. 2B and 2C also illustrate the total mass of the silver oxide in the Compound Above TextView and the number of moles of the compound in the Compound Below TextView, based upon the mass of the limiting reactant. FIGS. 2A-2D illustrate an example where the Element Below TextViews are all null. The Element Below TextViews are empty, but shown with a nonzero height. In preferred embodiments, those heights are zero, unless an Element TextView is selected for editing. In that case, it will have a finite height to permit the user to enter data therein. FIGS. 2C and 2D illustrate the outlines of the TextViews not being displayed except for the Element Above and Below TextViews and the Compound Above and Below TextViews. The null Element Below TextViews in FIGS. 2C and 2D and the Element Above TextView in FIG. 2D are illustrated as having a nonzero height for purpose of illustration. The only time that null aboves and belows have a finite height is when they are selected for editing. When the user enters “2Ag20”, the Compound TextView illustrated in FIG. 2D is generated, without values hi the Compound Above and Below.

    [0134] FIGS. 3A-3G illustrate a molecule containing more than one of a given polyatomic ion. The aboves and, belows are null in these figures, for simplicity. FIG. 3A illustrates a separation between the A1 Monatomic Ion TextView, the Left Parenthesis TextView, the perchlorate TextView, and the Right Parenthesis TextView. The separation between these TextViews is for illustration purposes and will not appear in preferred embodiments. Note that the Right Parenthesis TextView includes a post superscript TextView, a “dot” TextView, and a post subscript TextView comprise the Right Parenthesis TextView. FIG. 3B illustrates the TextViews in their normal orientation, but with all of the TextViews outlined, which is only the case when editing the molecule. FIG. 3C illustrates the normal display of the molecule while displaying the charges on the ions and the dot which will typically be used only when followed by a coefficient and “H2O”, designating a hydrate. FIGS. 3D and 3E illustrate the molecule without displaying the charges on the ions. When the user enters “Al(ClO4)3”, the Compound TextView illustrated in FIG. 3E is generated. In an alternative embodiment, when the user enters a left parenthesis, the left parenthesis is generated along with its matching Right Parenthesis TextView, with the cursor between the pair of parentheses. When the user enters “Al2(SO4)3.16H2O” the EE generates a compound TextView. FIG. 3F illustrates what said compound TextView would look like if the borders were displayed to the user. FIG. 3G illustrates how said compound TextView is typically displayed to the user.

    [0135] FIG. 4 illustrates a Right Brace TextView and Left Brace TextView, analogous to the Right Parenthesis TextView and Left Parenthesis TextView described elsewhere herein.

    [0136] FIGS. 5, 6A-D, 7A-C, 8A-D illustrate TextViews that are useful for creating and displaying chemical equations on a computer-based display. When entering a chemical equation, when the user enters “+”, (as FIG. 5 illustrates) the TextView containing a plus sign is generated and typically goes between reactants or products in chemical equations. If after a Plus TextView, the user enters an “e” or an integer immediately followed by an “e”, an electron TextView, as illustrated in FIG. 6A, is generated. The charge and the above and below TextViews are automatically generated. When entering a chemical reaction, if the user enters “heat”, “light”, or “energy” a TextView is generated, as illustrated in FIGS. 6B-6D respectively, including an above and/or below for the user to enter information about that “reactant” or “product”, such as the quantity or type (such as the frequency of the light). When entering a chemical reaction, if the user enters “->”, “<-” or “<->” a TextView is generated, as illustrated in FIGS. 7A-7C respectively. These symbols separate the reactants from the products and indicate the direction of the reaction. FIGS. 8A-8D illustrate TextViews for entering thermodynamic information in chemical reactions. When entering a chemical reaction, if the user enters “dH0f=”, a TextView as illustrated in FIG. 8A is generated and the cursor is as illustrated allowing the input of a value with units. This value is treated as the standard heat of formation for the reaction. When entering a chemical reaction, if the user enters “dS0f=”, a TextView as illustrated in FIG. 8B is generated and the cursor is as illustrated allowing the input of a value with units. This value is treated as the standard entropy for the reaction. This value is treated as the standard Gibbs Free Energy for the reaction. When entering a chemical reaction, if the user enters “T=”, a TextView as illustrated in FIG. 8C is generated and the cursor is as illustrated allowing the input of a value with units. This value is treated as the temperature for the reaction. When entering a chemical reaction, if the user enters “dG0f=”, a TextView as illustrated in FIG. 8D is generated and the cursor is as illustrated allowing the input of a value with units. This disclosure makes it clear that the full range of symbols used in Chemistry and all other areas can be generated and navigated.

    [0137] In preferred embodiments of the Equation Engine, any of the Equation Engine TextViews may be entered in any other Equation Engine TextView. However, the precedence for interpretation of which TextView is being entered is determined by what is most likely in the given context.

    [0138] FIGS. 5, 6A-D, 7A-C, 8A-D, 9, 10A-B, 11, 12A-B display the outlines of the TextViews comprising their respective composite TextViews. As mentioned elsewhere herein, those outlines are shown for clarity. Those outlines might be visible during editing, but typically will not be displayed otherwise.

    [0139] FIGS. 9, 10A-B, 11, 12A-B illustrate examples of Equation Engine mathematical expressions utilizing, composite TextViews. In a TextView, when a user enters “(”, it triggers the generation of a Parenthesis Pair TextView as illustrated in FIG. 9 with a left parenthesis, aright parenthesis and the cursor (as illustrated by the “¦”) in a Parenthesis Pair Internal TextView for everything within the parentheses. If a second Parenthesis Pair TextView is entered inside a first Parenthesis Pair Internal TextView, the Equation Engine can color code the parentheses such that left and right parentheses of the outermost pair of parentheses are one color, the first inner level of parentheses a second, but different color, etc so that it is easy to determine which parentheses match each other.

    [0140] In a TextView, when a user enters “(2πr)/”. The “/” triggers the generation of a Rational Expression Text View as illustrated in FIG. 10A and FIG. 10B with the cursor in the denominator TextView as illustrated by the “¦”. The parentheses around the “2πr” will cause that entire expression to populate the numerator TextView of this Rational Expression TextView. FIG. 10B illustrates a Picket Pence Rational Expression TextView which can be used to generate Picket Fence strings of factors as used by some in Dimensional Analysis problems. Normal rational expressions and the last rational expression in a picket fence display will typically use Rational Expression TextViews as illustrated in FIG. 10A. To generate a rational expression TextView displaying the numerator next to the denominator e.g. “a/b”, the user might, for example, enter “a/b” to distinguish it from the display illustrated in FIG. 10A.

    [0141] Operators, such as the root or radical symbol, can be selected by entering a string, such as “sqrt” or by selecting it from an array of operators. Either way, the Radical TextView, as illustrated in FIG. 11, is generated. The cursor is within the TextView under the radical, symbol. To enter data in the TextView that designates the root (illustrated as populated by a “3”), the user can, for example, select that TextView by touching it, mousing to it, or entering a key sequence, such as an “ESC” character. An alternative means for a user to specify a composite TextView is to select it from a menu various composite TextViews of from a specialized keyboard displayed by the Equation Engine.

    [0142] Likewise FIGS. 12A and 12B illustrate the use of composite TextViews to simplify the entry and display of expressions. The Sigma TextView can be selected by entering a string, such as “sigma” or by selecting it from an array of operators. Either way, the Sigma TextView, as illustrated in FIGS. 12A and 12B, is generated. The Sigma TextView comprises six TextViews, the TextView that contains the sigma symbol and the other five TextViews. Two TextViews are below the sigma, two are above the sigma and one TextView is to the right of the sigma. When the Sigma TextView is generated, the cursor is within the TextView under the sigma symbol. When the user is done entering in that TextView, the user can enter “return” (or some other key sequence) and will be placed in another TextView. This process is repeated for a standard sequence of TextViews until complete. This is called Cyclic Navigation as the Equation Engine cycles through the TextViews that make up the composite TextView. The user can edit a specific TextView in the Sigma TextView by directly selecting that TextView.

    [0143] An alternative means for navigation is to employ a special character to designate where the user wants to navigate next. For example, when the user types “̂”, the Equation Engine can generate a TextView for a superscript. When in the superscript, if the user enters another “̂”, a superscript to the current superscript can be generated.

    [0144] FIG. 13 illustrates an alternative navigation means utilizing a special keyboard subset. The up-right arrow navigates to or creates the post superscript and moves the cursor to the post superscript. The down-right arrow navigates to or creates the post subscript and moves the cursor to the post subscript. The up-left arrow navigates to or creates the pre-superscript and moves the cursor to the pre-superscript. The down-left arrow navigates to or creates the pre-subscript and moves the cursor to the pre-subscript. The up arrow navigates to or creates the above and moves the cursor to the above. The down arrow navigates to or creates the below and moves the cursor to the below. The center box navigates to the center TextView or creates and moves the cursor to the center TextView. Alternatively, once the composite TextView is created, the user can tap the appropriate sub TextView or the user can swipe in the direction roughly corresponding to the direction of the arrows.

    [0145] The Equation Engine can determine from the input text stream which of the TextViews comprising an Element TextView is to be filled with which input text. In general, the Equation interprets input strings as they would be verbalized and/or entered into a calculator and display the equation as it is typically illustrated in books for the appropriate discipline. For example, the Quadratic Formula can be entered as x=(−b+−sqrt(b̂2−4ac))/(2a) and displayed as illustrated in FIG. 14. The space between the first “2” and the second “-” tells the Equation Engine that the “-” is not in the exponent with the “2”. In preferred embodiments, the input string and the equation as illustrated in FIG. 14 are both displayed and the user can edit either with the changes propagated to the other. This is true for all pairs of input strings and their Equation Engine representations.

    [0146] FIGS. 15A-B illustrate two examples of means to display the properties of a variable in an equation. Both illustrate fields for entering and/or displaying the extent, symbol, value, and units of one variable in an equation. FIG. 15A illustrates a row of fields where the extent field is first, the symbol field as used in the desired equation, an “=” sign, a field for entering/displaying the value of that variable, and a field for entering/displaying the units that the user wants to use. In this, and in all similar rows, the user can enter the extent, the symbol, and/or the units, typically providing enough information for the EE to select the relevant equation. When that is not enough information to reduce the number of relevant equations to one, it will be enough for the EE to display all possible equations meeting those constraints. The user can then directly select the equation to use. FIG. 15B is the same as FIG. 15A, except the extent field is moved to the end of the row. Each field's border is displayed to simplify distinguishing between them. Field borders can be shades of grey, rather than black to tweak distinguishing between fields and simplifying the visible display. Variants, illustrated elsewhere herein, do not display the borders of each of the fields in a row.

    [0147] FIGS. 16A-F illustrate examples of array display formats for entering and displaying, multiple variables in an equation. FIG. 16A illustrates multiple rows, one for each variable, similar to that described in FIG. 15A, except that a “:” is between the extent field and the symbol field. Each row is separate, with separate top and bottom borders. FIG. 16B illustrates multiples rows, like FIG. 16A, except that the bottom border of the top row is the same as top border of the bottom row. FIG. 16C illustrates multiples rows, like FIG. 16B, except that the borders between the fields in each row are not displayed. FIG. 16D illustrates multiples rows, like FIG. 16C, except that the borders between the rows are not displayed. FIG. 16E illustrates multiples rows, like FIG. 16C, except that a field is added above the first variable row that designates which state that this set of variable rows refers to. FIG. 16F illustrates multiples rows, like FIG. 16D, except that a field is added above the first variable row that designates which state that this set of variable rows refers to and has rounded border corners and there is no line between the State designation field and the first variable row.

    [0148] FIG. 17 illustrates 170, a subset of a display embodying numerous means the EE can provide for a user to select an equation to be solved. Free-form variables/values entry TextView 171 contains placeholder line 172 “Free-form variables/values entry” explaining that this field is for entering variables and/or values freeform. TextView 171 also contains placeholder line 173 informing the user that if he enters variables by “extent, symbol or units” the EE can display the needed equation. TextView 171 also contains placeholder line 174 informing the user that if he enters “values (or ‘?’) with units”, the EE can determine what equation is needed and solve the equation for the unknown. If the units entered in 171 don't determine a unique equation, the limited number of equations that meet those constraints will be displayed. The user can then choose which of the displayed equations for the EE to solve. TextField 175 contains the placeholder “enter the name of the equation:”. The EE matches the input string to the closest equation name. The keyboard is designated by 177. TextField 178 contains the placeholder “enter equation”. The EE matches the input string to the closest equation in symbolic form. TextField 179 contains the placeholder “find an equation by topic:”. The EE matches the input string to equations that match that topic and displays them for final selection by the user. Array of TextFields 175 can be any of the arrays of variable rows as exemplified in FIG. 16. EE can use autofill in any or all of these input fields, with the exception of the “value” fields. An embodiment of the EE combines fields 171, 175, 178, and 179 in a single TextView. In that case, the EE would determine whether the input was: an equation name; an equation topic; variables by extent, symbol or units; or values with units.

    [0149] FIG. 18 illustrates an example first operational screen 180 on an Apple iPhone. Overall background 1810 supports three subdivisions 1830, 1840, and 1850. Tapping History button 1805 invokes the display of past screens of solutions. Everywhere herein where the white “H” is displayed represents a History button. The background for the tools for selecting equations, comparators, and units factors (Equation Solver) is 1840. The background for the tools for selecting a single equation is 1820. To quickly access solving problems using the quadratic formula, the user can tap button 1830. To quickly access the EE's chemistry-related computations, such as the EE's computation of molecular mass or formula mass of an element or compound, the user can tap button 1850. The user can tap button 1821 to access tools like TextView 171. The user can tap button 1822 to access tools like TextField 178. The user can tap button 1823 to access tools like TextField 176. The user can tap button 1824 to access tools like TextView 179. The user can tap button 1825 to access tools like TextField array 175. The user can tap button 1826 to access tools to relate two equations like those illustrated in FIGS. 25-29. The user can tap button 1827 to access tools to relate two states of one equation like those illustrated in FIGS. 32-36. The user can tap button 1828 to access tools to manipulate factors like comparators and units factors like those illustrated in FIGS. 43-49.

    [0150] FIG. 19 illustrates an example of the screen displayed when button 1821 is tapped. The EE places the cursor at the upper left corner of editable TextView 1921. Tapping button 1913 causes the screen to return to FIG. 18. Herein, whenever the white “<” is displayed, it is intended to be a button that takes the user back to the screen that invoked it and in the state it was in at the time of the invocation. In the app, this “white” “<” is blue in keeping with Apple's standard. Tapping “reset” button 1915 causes all of the user-entered input on this screen to be deleted and the cursor returned to the location beginning of the field that it was in at the time button 1915 was tapped. Herein, whenever a white “reset” is displayed, it is intended to have the same effect. Tapping button 1940 causes the EE to display a screen like FIGS. 32-36. As the user taps the keys on virtual keyboard 1960 to enter input into one of the input fields, the others are updated when possible. The “H” and “reset” buttons will typically be displayed in blue in an app. When the user sees the equation sought displayed in 1922 or its name in 1923, he can tap that field to select that equation and the EE will display a screen like 220 or 230, depending upon the amount of data collected. At any point, the user can tap on 1925 and the EE will display a screen like 220 or 230. If there is sufficient data in 1925, the EE will solve the equation and display a screen like 240.

    [0151] FIG. 20 illustrates 200, an example of the screen displayed when button 1822, 1823, 1824 or 1825 is tapped. The EE places the cursor in the corresponding editable TextField or TextView 2022, 2023, 2024 or 2025 respectively. As the user enters input using virtual keyboard 2060 other fields are filled in as soon as possible.

    [0152] FIG. 21 illustrates 210, an example of the screen 200 displayed after button 1822 is tapped. The EE places the cursor in the editable TextField or TextView 2122. As the user enters “PV=nRT” (the cursor is shown to the immediate right of the “T”) using, virtual keyboard 2160 fields 2123 and 2124 are filled in.

    [0153] FIG. 22 illustrates 220, an example of the screen 210 displayed after the user enters “return”. The equation in TextField 2222 is reformatted in a typeset form. In 2222 and everywhere herein, whenever an equation is displayed, tapping it will cause it to be displayed as an equator. Likewise, in 2222 and everywhere herein, whenever an equator is displayed, tapping, it will cause it to be displayed as an equation. Thus, tapping an equation or equator will cause it to toggle between the two. In 2222 and everywhere else herein, whenever an equator is displayed, swiping up on it will cause its inverse to be displayed. Variable input array 2225 has been expanded to 5 rows, one row for each variable and constant. The extents and symbols for those variables and the constant are automatically filled-in. The value and units of “R” are not filled-in because the value and units of “R” depend on the units of the variables as selected, by the user. Alternatively, the EE can fill-in the units that are standard for this equation. In this case, the value and units of “R” can be automatically filled-in by the EE. Note also that lines are no longer displayed between the variable input rows. As detailed above, many variants of this field are possible. Different variants might be preferred at different stages of the input process. The cursor now will be automatically placed in the beginning, of the value field of the first variable input row, in this case to the right of “P=”. Virtual keyboard 2260 is used to enter data in these fields. Button 2230 when tapped causes a pop-up to display. Said pop-up provides a means to select more information on this equation as listed elsewhere herein.

    [0154] FIG. 23 illustrates 230, an example of the screen 220 displayed after the user has provided the value and units information needed for each of the variables and just before the EE automatically solves and displays the equation (see FIG. 24). 2360 is the virtual keyboard. Note that an alternative is to display the units right next to the values. One way to implement this to determine the width of the value TextField, then make the xOrigin of the units field equal to the xOrigin of the value field plus the width of the value field. The “?” in variable input array 2325 indicates that the volume of the gas sample is the unknown.

    [0155] FIG. 24 illustrates 240, an example of the screen 230 displayed after the user has provided the value and units information needed for each of the variables and just after the EE has automatically solved and displayed the equation. The virtual keyboard has been dismissed. UILabel 2427 displays the equation solved for the unknown (“V”). UILabel 2428 displays the equation solved for the unknown (“V”) with the symbols of the variables and the constant substituted with the values of the variables and the constant. The “+273.15” illustrates that the temperature, input as degrees Celsius, needed to be converted to Kelvin to achieve the correct solution. The “ . . . ” designates that the value for “R” is rounded to save space. Transparently to the user, the EE converts all input values to the EE's standard units for the given equation, solves the equation, then converts the solution to the units selected by the user for the solution. UILabel 2429 displays the solved value and units and correct number of significant figures for the unknown. The EE uses the number of significant for each input value and stored (or input) constant and the standard rules for calculating the number of significant figures to determine the correct number of significant figures for the solution. Tapping button 2430 causes the EE to display a pop-up window with many more figures beyond those with significance. This is needed as problems presented in books and/or by teachers often do not use decimal points well, resulting in solutions with only one or two significant figures. This pop-up also provides means for the user to store the value and units and to associate them with a name that can be used as input in any appropriate location in embodiments of the EE. Herein, wherever a solution is displayed, it can be tapped or the “+” horizontal to it can be tapped to invoke said pop-up.

    [0156] FIG. 25 illustrates 250, an example of the screen displayed after the user has tapped button 1826 or otherwise selected to relate two equations. UILabel 2512 informs the user that the current operation is to “Relate 2 Equations”. Editable UITextView 2514 has a placeholder requesting the user to “enter an extent, symbol or unit, e.g. pressure, P, or kPa:” and the EE will “List all equations sharing a given extent”. The user employs virtual keyboard 2560 to enter that input.

    [0157] FIG. 26 illustrates 260, an example of the screen displayed after the user has entered “Force” return. The virtual keyboard 2560 is retired. Noneditable UITextField (or UILabel) 2614 provides feedback showing the extent selected by the user, in this case “Force”. UILabel 2616 instructs the user to “tap 2 equations to equate”. Vertical scrolling UIScrollView 2628 lists all available equations containing the selected extent, in this case “force”. Being a UIScrollView, the user can scroll vertically through the list to see and select equations that are not currently in view.

    [0158] FIG. 27 illustrates 270, an example of the screen displayed after the user has selected equations

    [00023] F = G .Math. m 1 .Math. m 2 r 2 .Math. .Math. and .Math. .Math. F = m .Math. v 2 R .

    UILabel 2712 shows the gravitation force set equal to the centripetal force. Two variable input arrays are displayed in editable UITextField array 2716, the left one for the gravitational force equation and right one for the centripetal force equation. The user will employ virtual keyboard 2760 to enter the values and units for the displayed variables. If

    [00024] P = F A

    had been selected, it would have been displayed as “P*A” as relating the equations requires that they both be solved for the same extent, in this case “force”.

    [0159] FIG. 28 illustrates 280, an example of screen 270 displayed immediately after the user has filled-in the two editable UITextField arrays in 2816 and before the EE has computed the solution. When the user enters “M.sub.earth” in the mass 1 field's value UITextField, it is automatically reformatted to “M.sub.earth,” and interpreted as the mass of the earth. The actual value and units are not displayed here. Likewise, when the user enters “Rearth” it is automatically reformatted to “R.sub.earth” and interpreted as the radius of the earth. Note that the user can perform operations in the value field, e.g. “±173 miles”. Also, one value can be set to another as illustrated “m=m.sub.2”. This sets “m” to 579 kg. The “? m/s” indicates that the velocity is the unknown and the units that the solution is to be computed and displayed in m/s. The user inputs data using virtual keyboard 2860.

    [0160] FIG. 29 illustrates 290, an example of screen 280 displayed after the user has filled-in the two editable UITextField arrays in 2816 and after the EE has computed the solution. UILabel or UIScrollView 2912 displays the “Refine Input” and “Solution” phases in the solution process. The “Refine Input” phase translates all input into EE standard units. Here, “m.sub.1” vas set equal to “M.sub.earth” by the user and converted to 5.97219E24 kg by the EE. “r” was set equal to “R.sub.earth+173 miles” by the user, then to 6.95E6 m by the EE, with the conversion arithmetic shown. “m” was set equal to “m.sub.2” by the user, the value and units of “m.sub.2”. “R” was set equal to “r” by the user and hence to 6.95E6 m as computed above. In the solution phase, the symbolic representations of the equations are set equal with equal variables given the same symbol. The next line illustrates the simplified equation. The next line shows the equation solved for the unknown variable in symbols. The next line shows the equation solved for the unknown variable with the values substituted for the symbols. The final line shows the unknown variable solved and displayed in the user-selected units.

    [0161] FIG. 30 illustrates 300, an example of the screen displayed after when 1825 is tapped. This indicates that the user wants to directly fill in the variable input array 3012. FIG. 30 also illustrates that the user has entered or selected “force” as the extent of the first variable and “distance” as the extent of the second variable via virtual keyboard 3060. After two variable/constants have had input entered, the EE generates another variable/constant input row for each new variable/constant so that more variable/constants a can be input. Thus, a third row appears after the first two have had data input into them. UILabel 3014 suggests that the user “select an equation or enter more information above”.

    [0162] FIG. 31 illustrates 310, an example of screen 300 displayed after “m” is entered via virtual keyboard 3160 into the symbol UITextField of the third variable/constant row. This extra constraint reduces the matching equations in UIScrollView to two. A fourth variable/constant row is generated in generated in variable input array 3112. If an equation is selected, a screen like 220 is displayed with the information displayed appropriate to that equation.

    [0163] FIG. 32 illustrates 320, an example of the screen displayed after the user has selected one of the many ways to equate two states of an equation. For example, the user can tap button 1827, button 1940, entering the name of a two-state equation (such as “the Combined Gas Law”); entering a two-state equation; or tapping a “2 states” button (e.g. 2232). Some equations are inherently two-state equations, like the Combined Gas Law, but many other equations can be made into two-state equations. The EE makes available two-state versions of all relevant otherwise non-two-state equations. If an equation contains a constant, the EE displays it as solved for the constant and sets the two states equal, eliminating the constant. For example, Coulomb's Law is written as

    [00025] F = k e .Math. q 1 .Math. q 2 r 2 ,

    where k.sub.e is a constant, solved for the constant

    [00026] k e = F .Math. r 2 q 1 .Math. q 2

    so EE makes it available as the two-state equation:

    [00027] F i .Math. r i 2 q 1 .Math. .Math. i .Math. q 2 .Math. .Math. i = F f .Math. r f 2 q 1 .Math. .Math. f .Math. q 2 .Math. .Math. f

    or its inverse:

    [00028] q 1 .Math. .Math. i .Math. q 2 .Math. .Math. i F i .Math. r i 2 = q 1 .Math. .Math. f .Math. q 2 .Math. .Math. f F f .Math. r f 2

    [0164] Note that “i” and “f” are used instead of “1” and “2” for subscripts because “1” and “2” are already used to designate charge 1 and charge 2.

    [0165] Where there are no constants in the equation, the EE stores or produces an equator (detailed elsewhere herein). For example, the equator for

    [00029] F = E .Math. q .Math. .Math. is .Math. .Math. E .Math. q = F .

    A two-state version of this equation is:

    [00030] E 1 .Math. q 1 F 1 = E 2 .Math. q 2 F 2

    or its inverse:

    [00031] F 1 E 1 .Math. q 1 = F 2 E 2 .Math. q 2

    [0166] Selecting one of these equations is very similar to selecting a one-state equation. The user can enter the name an equation in editable UITextField 3223 using virtual keyboard 3260. The user can enter the topic of a subset of equation in editable UITextField 3224. The user can enter an equation in editable UITextField 3222. The user can enter extents, symbols, values and units for both states in editable UITextField variable/constant input array 3225. UIScrollView 3227 displays a single formatted equation when an equation name or equation is entered. UIScrollView 3227 displays multiple formatted equations when the EE doesn't have enough information to reduce the number of eligible equations to one.

    [0167] FIG. 33 illustrates 330, an example of screen 320 displayed after the user has entered “F=Eq” in the equation input UITextField 3322 or “E-field force” in the equation name UITextField 3323. The equation topic UITextField has been filled-in and 3227 displays the formatted one-state equation. The user is instructed to “tap to chose one:” and of the two-state equations displayed for this one-state equation. Until that choice is made, the order of the variables is not known and 3325 cannot be further filled in. The virtual keyboard is 3360.

    [0168] FIG. 34 illustrates 340, an example of screen 330 displayed after the user has tapped the first of the two-state equations displayed in 3227. The selected two-state equation replaces “State 1” and “State 2” in UILabel 3428. A third input variable row has been added to 3425 to support the three variables in the one-state equation. The extents and their symbols are displayed in 3425. Now the EE is awaiting the user's entry of the values and units of the variables via virtual keyboard 3460.

    [0169] FIG. 35 illustrates 350, an example of screen 340 displayed after the user has entered all of the values needed in 3525, but before the EE has dismissed virtual keyboard 3560 and computed and displayed the solution. Rather than an absolute value for “E.sub.1”, the user enters the relative value “2.74.Math.E.sub.2”. When relative values are used, the referred to variable is entered for the value of that variable, i.e. “E.sub.2=E.sub.2”. Likewise, “q.sub.2=42.9.Math.q.sub.1”. Similarly, because “F.sub.2” is the unknown and “F.sub.1=F.sub.1”, the equation is solved in terms of “F.sub.1”.

    [0170] FIG. 36 illustrates 360, an example of screen 350 displayed after the user has entered all of the values needed in 3525 and after the EE has computed and displayed the solution in 3612.

    [0171] FIG. 37 illustrates 370, an example of the screen displayed after the user has tapped button 1830. UILabel 3722 displays the quadratic formula, the equation that the quadratic formula solves, the symbols for the coefficients “a=”, “b=”, and “c=” and a UITextField next to the right of each coefficient's “=” with the placeholder “enter value:”. When 370 is displayed, the cursor is automatically placed in the UITextField for “a=”. After the user enters the value in the “a=” UITextField and enters “return” via virtual keyboard 3760, the cursor automatically is place in the “b=” UITextField. After the user enters the value in the “b=” UITextField and enters “return”, the cursor automatically is place in the “c=” UITextField. After the user enters the value in the “c=” UITextField and enters “return”, the EE solves the quadratic formula.

    [0172] FIG. 38 illustrates 380, an example of the screen displayed after the user has entered the values for “a”, “b”, and “c”, i.e. after the user has entered the value for “c” and entered “return”. UILabel 3822 displays the equation the values of “a”, “b”, and “c” still in their respective editable UITextFields (so they can still be edited at this stage). UILabel 3822 also displays the values of “a”, “b”, and “c” substituted in the general quadratic equation. UILabel 3832 illustrates the quadratic formula with the values entered by the user substituted for “a”, “b”, and “c”. UILabel 3834 illustrates the quadratic formula with the first level of simplification and the exact value if the solutions. UILabel 3836 illustrates the solutions in decimal form.

    [0173] FIG. 39 illustrates 390, an example of the screen displayed after the user has tapped button 1850. The user employs virtual keyboard 3960 to enter the formula of an element, compound, ion, or other chemical species into editable UITextField 3912. The formatted formula is displayed in UILabel 3914. If the entered formula in 3912 and/or the formatted formula in 3914 become too large, the font size in that field is reduced so that it can fit.

    [0174] FIG. 40 illustrates 400, an example of the screen displayed after the user has entered the formula using virtual keyboard 4060, but before he has entered “return” and while in 4012. The cursor is shown at the end of the entered formula. UILabel 4014 illustrates the displayed formatted formula.

    [0175] FIG. 41 illustrates 410, an example of the screen displayed after the user has entered the formula using virtual keyboard 4060 and just after he has entered “return” while in 4012. Formatted formula 4112 is displayed in a field with 4132, the formula mass to the appropriate significant figures. The EE determines that this is an ionic compound, and thus the appropriate description is “formula mass”. Below the formula mass is displayed an array of UILabels (or a UITableView) displaying each constituent atom, the number of each of those atoms in the chemical species, the molar mass of each of those atoms, the total mass of the atoms of each species in the compound, and the percent mass of each atom. These values are useful in common stoichiometric problems. Any of the values can be tapped to create the pop-up described elsewhere herein that permits the user to save its value and units as a named constant.

    [0176] FIG. 42 illustrates screen 420 which is invoked when button 1828 is tapped. UITextView 4212 displays selected factors. Value and units data for each variable in a factor will be displayed in 4214. To add a factor, the user taps the “equator” button, the “greator” button, the “lessor” or the “units factor” button in 4216. To solve for the factors selected, the user taps the “solve” button in 4216.

    [0177] FIG. 43 illustrates screen 430. When the user taps any button in 4216, except “units factor”, screen 190 is displayed, permitting the user to select an equation using many methods. When the equation is selected, the EE converts it to an equator and displays said equator in 4312 and a number below the equator, in this case a “1”. The same number followed by a “:” is displayed in 4314. Then in 4414, the list of symbols in the equator is displayed. Next to each symbol is an “=” followed by a field for the value of the variable represented by the symbol and a field for said variable's units. The standard units for the variable are added. The user can tap any variable units field and enter or select other units to be used. Screen 430 represents the state of the screen before the user has entered values or altered units using virtual keyboard 4360. When a factor is added, the symbols for its variable are subscripted by the number below it unless it is designated as the unknown or if the symbol is already subscripted (e.g. F.sub.e). If the user taps “units factor”, no equation or equator needs to be selected. The next number label (for example “4” is displayed below the ratio “numerator.sub.4/denominator.sub.4”. A line is generated in 4314 for the user to enter the values and units for “numerator.sub.4” and “denominator.sub.4”. Note that it is not necessary for the values of some variables to have units.

    [0178] FIG. 44 illustrates screen 440. This represents the state of the screen after the user has entered “?” for the value of “KE”, “m@chip” for the value of m.sub.1 and “v@chip” for the value of v.sub.1 in 4415. Because the KE is designated as, the unknown, its symbol is unchanged. But m.sub.1 and v.sub.1 are replaced with m.sub.chip and v.sub.chip respectively in 4412. The “@” designates that the immediately following text is a subscript.

    [0179] FIG. 45 illustrates screen 450. This represents the state of the screen after the user has tapped “equator” again and selected a second equator. Again, the EE has entered the selected equator with a “2” below it in 4512 and the label “2:” followed by the symbols in the second equator, subscripted by “2”, except of “F.sub.c” and “R.sub.orbit”.

    [0180] FIG. 46 illustrates screen 460. This represents the state of the screen after the user has entered the values for the second equation's variables. “hearth” or “R@earth” is recognized as the constant representing the radius of the earth. In this example, the values for the variables are filled in after each equator is selected and before the next. This is unnecessary. Those values can be entered at any time prior to the EE solving the system of factors.

    [0181] FIG. 47 illustrates screen 470. This represents the state of the screen after the user has tapped “equator” a third time and selected a third equator. The user has entered all of the values he chooses to.

    [0182] FIG. 48 illustrates screen 480. This represents the state of the screen after the “solve” button in 4716 was tapped. Views 4812 and 4814 are moved. The first line in 4812 is the same as the contents of 4712. The second line in 4812 illustrates the equator solution of the first line in 4812. The third line in 4812 illustrates said equator solution translated to an equation. In this case, the user had chosen not to enter any numerical values. Had numerical values been entered, they would have been evaluated as illustrated elsewhere herein.

    [0183] FIG. 49 illustrates an example of Apple Swift code that stores information needed for a given equation, in this case the Ideal Gas Law where pressure is in Pascals. This can be a Class or Struct. Each equation has a unique integer .equationID used to identify that equation in a list of IDs. The name is used in searches of equations by name. The .standardForm is a string that can be used to display the equation as it is generally known. The .variableSymbols and .variableUnits arrays are in the same order so that there is a one-to-one mapping between the .variableSymbols and their units (and, hence their extents). The same relationship exists between the lists of constants and their symbols. The same relationship exists between the .orderOfVariablesAndConstants and the .equationsForCalculation and .equationsForDisplay. Thus, once the equation is determined, if the user selects “n” (the third in the list) as the unknown, the EE knows to use the third of the .equationsForCalculation and the third of the .equationsForDisplay. There are two .equatorsForDisplay and .equatorsForCalculation, one the multiplicative inverse of the order. These two lists are in the same order so that when the user chooses one of the displayed equators, the EE knows which one to calculate with. The .sortedVariableIDs and .sortedConstantIDs are constructed at compile time and each constitutes a list of integers. Each integer is a unique identifier for each variable's extent (or units when there is ambiguity) and constant, respectively. The EE builds a .sortedVariableIDs and .sortedConstantIDs from the user's input of extents, units, and/or symbols and compared to the .sortedVariableIDs and .sortedConstantIDs equations to determine which equation the user wants. If the user's list is incomplete, there might be many matches, all of which can be displayed and the user can directly chose between them. The .discussion provides the user a brief discussion regarding equation when requested. The underscores in the discussion indicate that these terms provide hyperlinks to more information on them. The .more string provides links to more information detailed elsewhere herein.

    [0184] FIG. 50 lists pseudo-code for selecting an equation using the EE.

    [0185] FIG. 51 lists pseudo-code for solving an equation using the EE.