**Features**

* Standard Math Operators : Supports addition, subtraction, multiplication, division, exponentiation, and modulus.
* Math Functions : Includes functions like **sin**, **cos**, **sqrt**, **ln**, etc.
* Logical operations: Includes operations like logical not,equal,not equal,logical or etc.
***
**Definitions**

* Whitespace characters are ignored.
* Constants can be integers, decimal numbers, or in scientific notation (e.g.  ***1e3*** for ***1000***). A leading zero is not required (e.g. ***.5*** for ***0.5***)
* Input values are represented by the expressions x, y, z, t.
* Output value is represented by the expression w.
* 	**x** : Input 1
* 	**y** : Input 2
* 	**z** : Input 3
* 	**t** : Input 4
* 	**w** : Output value
***
**Operators**

* ***+*** : Addition
* ***-*** : Subtraction/Negation
* ******* : Multiplication
* ***/*** : Division
* ***^*** : Exponentiation
* ***%*** : Modulus
***
**Logical Operators**

* **!** : Logical not
* **==** : Equal
* **!=** : Not equal
* **<=** : Lower or equal
* **>=** : Greater or equal
* **&&** : Logical AND
* **||** : Logical OR
* **&** : Bitwise and
* **|** : Bitwise or
***
**Functions**

* **abs** 		: Absolute value.
* **acos** 		: Arc cosine function.
* **asin** 		: Arc sine function.
* **atan** 		: Arc tangent function. 
* **atan2** 	: Two-argument arc tangent function. 
* **ceil** 		: Rounds up to the nearest integer.
* **cos** 		: Cosine function.
* **cosh** 		: Hyperbolic cosine function. 
* **exp** 		: Exponential function. 
* **floor** 	: Rounds down to the nearest integer.
* **ln** 		: Natural logarithm. 
* **log** 		: Base-10 logarithm.
* **log10** 	: Base-10 logarithm.
* **pow** 		: Exponential function. Takes two arguments, the base and the exponent.
* **sin** 		: Sine function. 
* **sinh** 		: Hyperbolic sine function.
* **sqrt** 		: Square root function. 
* **tan** 		: Tangent function. 
* **tanh** 		: Hyperbolic tangent function.
* **fac** 		: Factorial function.
* **ncr** 		: Combinations function. Takes two arguments, and returns the number of combinations. 
* **npr** 		: Permutations function. Takes two arguments, and returns the number of permutations.
* **rand** 		: Random number generator function. Takes two arguments, and returns the random number. Example: rand(min,max)
* **round** 	: Rounding function. Takes one argument and returns the rounded number.
* **xor** 		: Bitwise 'xor' operation function. Takes two arguments. Example: xor(x,y)
***
**Constants**

* ***pi***	: Pi
* ***e***	: Euler's Number
***
**Examples**

* **5 + 5** evaluates to `10`
* **(5 * 5)** evaluates to `25`
* **sqrt(25)** evaluates to `5`
* **fac 5** evaluates to `120`
* **ncr(6,2)** evaluates to `15`
* **npr(6,2)** evaluates to `30`
* **(x==y)*z** evaluates to `25`(x=5,y=5,z=25)
* **(((x&&y)*z)%t)** evaluates to `1`(x=2,y=3,z=25,t=3)
* **(x^.25)** evaluates to `3.49`(x=150)
* **fac t** evaluates to `120`(t=5)
* **atan(x)** evaluates to `1.47`(x=10)
* **ncr(x,2)** evaluates to `21`(x=7)
* **exp(x)** evaluates to `54.56`(x=4)
* **rand(10,30)** evaluates to a number between 10 and 30.
* **round(x)** evaluates to `21`(x=21.4)