Mate - online symbolic calculator by Tusanga


Calculation
- Getting started
- Expressions
- Statements
- Functions
- Examples
- Questions
Resources

Calculation / Expressions

The following is meant as a reference guide for the system. It describes the different expressions, data types and operators that are supported.

      
Basic data types   Arithmetic operators   Relations   Boolean operators   Intervals   Complex numbers   Vectors and matrices   Sets   Choices   Evaluation   Constants   


Expressions

Basic data types
Basic data types include integers, rational numbers, floats, booleans and textstrings.
Example : 123; 4/6; 14.6; 2e-6; true; "Hello world!"

Numbers are assumed to be decimal when not otherwise indicated. Numbers in other number systems are entered as 0b1101 (binary), 0o700 (octal), 0d100 (decimal), 0x2f (hex) or 0h2f (hex). Yet other systems can be used: xxx|yy, where xxx is a number in the number system with basis yy<=36. Roman numerals er entered as mcmlxxxiv|r.
Example : 123|8; 123.45|12;

Textstrings are bounded by double quotes. A backslash is used to indicate a double quote or a backslash in a textstring.
Example : "The \"best\" task ever"; "This is a single backslash \\ in the middle of a textstring";

Arithmetic operators
+ Addition
- Subtraction
* Multiplication
/ Division
! Faculty function
mod Integer modulo, i.e. the rest
div Integer division, the rest is discarded
^ Power
% Percent


Relations
Relations between two expressions are expressed using the following operators:
< less than
<= less than or equal
> greater than
>= greater than or equal
= = equal
<> not equal

The result of a relation is an boolean expression.

Boolean operators
Boolean operators are:
and (&&) Conjunction
nand Negation of conjunction
or (||) Disjunction
nor Negation of disjunction
xor (^^) Exclusive disjunction
not (~) Negation
-> Conditional / implication
<- Reverse conditional / implication
<-> Biconditional / biimplication

For four of the boolean operators the word form and the symbol are interchangeable. (x and y) is the same as (x && y)
For bitvectors the bv... functions are available. Please see the functions page.

Intervals
Intervals are entered as [x..y], ]x..y], [x..y[ and ]x..y[.
Example : [2..6[

Complex numbers
Complex numbers are constructed using the imaginary unit (i).
Example : 2+3*i

Vectors and matrices
Vectors and matrices are entered using braces {} as delimiters. Use commas to separate elements of a row vector or of a row in a matrix - use semicolons to separate rows in a matrix.
Example : rowvector:= {1,2,3}; columnvector:={4;5;6}; matrix:={1,2;3,4}

Indices to a matrix are surrounded by square bracket [].
Example : M[2,3]:= 24

Operators only working on matrices and vectors include:
.* Matrix multiplication, element by element
./ Matrix division, element by element
.^ Matrix power operator, element by element
` Matrix transposing

Example : a:={1,2;3,4}; a.*a; a./a; a.^a; a`

Sets
Sets are stored and manipulated as vectors.
Example : a:={1,2,3,4}; b:={3,4,5,6}; intersect(a,b)

Choices
Choices are made with the expression if-then-else.
Syntax : if <boolean expression> then <expression> else <expression>
Example : if 3>a then [1..2] else [3..4[

Evaluation
The evaluation of an expression can be delayed using the delay operator (').
Example : 2+'a+3'

When the first character entered is a ', the whole input is assumed to be a comment.
Example : ' This is a comment

The function eval(exp,level) evaluates the expression up to a certain level:
1: Basic rules of arithmetic, e.g. 2 + 3 = 5, are applied. Variables and functions are not evaluated
2: Variable names are substituted with their definition once. Function call parameters are evaluated
3: (Standard) Variables are treated like on level 2, only recursively. Functions are evaluated
4: Expressions are evaluated to floating point values were applicable
Function evalf(exp) is defined as eval(exp,4)

Constants
A number of constants are known to the system:
i, pi, e and inf.

goto top
This free online symbolic calculator and solver enables you to define variables and functions as well as to evaluate expressions containing numbers in any number system from 2 (binary) over 8 (octal), 10 (decimal) and 16 (hexadecimal) to 36, roman numerals, complex numbers, intervals, variables, matrices, function calls, Boolean values (true and false) and operators (and, or, not ...), relations (e.g. greater than) and the if-then-else control structure. Comments are C-style /* */ or //. Plots are available using the plot statement.

Tell a friend - Share - About - Terms of use - Privacy policy - Contact - Impressum - FAQ - Member login
Version 0.3 release 6 Copyright © 1996-2008 by Tusanga. All rights reserved
Last updated: October 16, 2008