Documentation / MathType

  • Demos
  • Visit our website
  • Downloads
  • Contact us
  • MathType

    • Wiris Quizzes

      • Learning Lemur

        • CalcMe

          • MathPlayer

            • Store FAQ

              • VPAT for the electronic documentation

                • MathFlow

                  • BF FAQ

                    • Home
                    • MathType
                    • MathType Integrations
                    • MathType web interface features
                    • MathType web interface features

                    Expression evaluation

                    Reading time: 2min

                    MathType is provided with an evaluation engine for MathML. This engine computes a formula in order to obtain its decimal value. This feature should not be confused with Wiris CAS which is able to perform more complex operations.

                    For example, if x=8

                    The engine will be able to evaluate only well-formed formulas according to an internal built-in grammar.

                    As seen in the previous example, it is possible to predefine the value of some variables before the evaluation is done.

                    The decimal evaluation engine is related to MathType and content MathML in the sense that the evaluation consists on converting first from presentation MathML to content MathML. Then the resulting formula tree is traversed to perform the operations.

                    Using MathType to edit formulas suitable to be evaluated

                    The evaluation engine receives MathML. You can optionally use MathType 7 to edit formulas to be sent to the evaluation engine. You will get the advantage of a real-time syntax checker and a specialized toolbar. Elsewhere we describe how to embed MathType in a web page.

                    To enable the syntax checking and the evaluation toolbar, when initializing MathType you should add some parameters

                    editor = com.wiris.jsEditor.JsEditor.newInstance(
                     {'toolbar':'evaluate', 'checkSyntax': 'true'});
                    

                    or any time after the editor is created

                    editor.setParams({'toolbar':'evaluate', 'checkSyntax': 'true'})
                    

                    Formally, the syntax checker looks for a well-formed expression. Even if you won't be using content MathML though (and quite likely you won't be), the process will essentially let you know if something simply doesn't make sense -- like one plus times abc:

                    Calling the evaluation engine

                    The evaluation engine can be called using a Web service or doing a direct Java or .NET call.

                    Calling the evaluation engine with a Web service

                    A call to the Web service with both GET and POST methods are possible. In general, it is preferable the POST method in order to avoid size limitations. The call has the form:

                    www.wiris.net/demo/editor/evaluate?mml=mathml&var_name1=value1&...&var_nameN=valueN
                    

                    The encoding will be always the URL encoding with the underlying UTF-8 for non-ASCII characters.

                    Encode the MathML as the argument to the mml parameter. If you declare variables, they should have the form var_<name>=<value>.

                    For example,

                     www.wiris.net/demo/editor/evaluate?mml=<math><mn>1</mn><mo>-</mo><mn>2</mn></math>

                    And if we want to assign x = 8.5,

                     www.wiris.net/demo/editor/evaluate?mml=<math><mi>x</mi><mo>-</mo><mn>2</mn></math>&var_x=8.5
                    

                    Caution

                    Note the variable "x", when it appears as a parameter in the URL, is prepended by "var_" and the decimal separator is always ".".

                     

                    If there is any problem in the evaluation (for example, a syntax error or a division by zero), the Web service will fail with a 5xx error code.

                    Calling the evaluation engine with a direct Java or .NET call

                    To use this method, you will need a license to download and run the MathType server components. Available for Java and .NET.

                    The source code in Java:

                     PublicServicesInterface ps = PublicServices.getInstance();
                     Properties p = new Properties();
                     p.setProperty("x","8.5");
                     String content =
                     ps.evaluate("<math><mi>x</mi><mo>+</mo><mn>2</mn></math>", p, null);
                    

                    you will need to add the WIRISeditor.jar in the classpath.

                    The source code in c#:

                     PublicServicesInterface ps = PublicServices.getInstance();
                     Dictionary<string,string> d = new Dictionary<string,string> ();
                     d.set("x","8.5");
                     string content =
                     ps.evaluate("<math><mi>x</mi><mo>+</mo><mn>2</mn></math>", d, null);
                    

                    You will need to include a reference to the WIRISeditor.dll.

                    Was this article helpful?

                    Yes
                    No
                    Give feedback about this article

                    Related Articles

                    • MathType for WordPress
                    • Handwritten input

                    Expression evaluation

                    Using MathType to edit formulas suitable to be evaluated Calling the evaluation engine Calling the evaluation engine with a Web service Caution Calling the evaluation engine with a direct Java or .NET call

                    Making people’s STEM work more meaningful

                    MathType

                    • MathType for Office Tools
                    • MathType for Mac
                    • MathType for Microsoft 365
                    • MathType for Google Workspace
                    • MathType for LMS
                    • MathType for XML Editors
                    • Arabic notation
                    • Our products accessibility
                    • MathType is online

                    WirisQuizzes

                    Learning Lemur

                    Solutions for Education

                    • Blackboard Learn
                    • Brightspace by D2L
                    • Canvas
                    • Google Classroom
                    • Moodle
                    • Schoology

                    Solutions for Publishing Houses

                    Solutions for Technical Writers

                    Solutions for Chemistry

                    Integrations

                    • HTML Editors
                    • MathType in WordPress

                    Pricing

                    Company

                    Careers

                    Blog

                    Contact Us

                    Buy Now

                    Plugin Downloads

                    © Wiris 2025

                    • Cookie Settings
                    • Cookie Policy
                    • Terms of Use
                    • Privacy Policy / GDPR
                    • Student Data Privacy
                    • Compliance
                    • Powered by Helpjuice
                    Expand