**Caratteristiche**

* Operatori matematici standard : Supporta addizione, sottrazione, moltiplicazione, divisione, elevamento a potenza e modulo.
* Funzioni matematiche : Include funzioni come **sin**, **cos**, **sqrt**, **ln**, ecc.
* Operazioni logiche: Include operazioni come not logico, uguale, diverso, or logico, ecc.
***
**Definizioni**

* I caratteri di spazio vengono ignorati.
* Le costanti possono essere numeri interi, decimali o in notazione scientifica (es. ***1e3*** per ***1000***). Non è richiesto uno zero iniziale (es. ***.5*** per ***0.5***)
* I valori di ingresso sono rappresentati dalle espressioni x, y, z, t.
* Il valore di uscita è rappresentato dall'espressione w.
* 	**x** : Ingresso 1
* 	**y** : Ingresso 2
* 	**z** : Ingresso 3
* 	**t** : Ingresso 4
* 	**w** : Valore di uscita
***
**Operatori**

* ***+*** : Addizione
* ***-*** : Sottrazione/Negazione
* ******* : Moltiplicazione
* ***/*** : Divisione
* ***^*** : Elevamento a potenza
* ***%*** : Modulo
***
**Operatori logici**

* **!** : Not logico
* **==** : Uguale
* **!=** : Diverso
* **<=** : Minore o uguale
* **>=** : Maggiore o uguale
* **&&** : AND logico
* **||** : OR logico
* **&** : And bit a bit
* **|** : Or bit a bit
***
**Funzioni**

* **abs** 		: Valore assoluto.
* **acos** 		: Funzione arcocoseno.
* **asin** 		: Funzione arcoseno.
* **atan** 		: Funzione arcotangente. 
* **atan2** 	: Funzione arcotangente a due argomenti. 
* **ceil** 		: Arrotonda per eccesso all'intero più vicino.
* **cos** 		: Funzione coseno.
* **cosh** 		: Funzione coseno iperbolico. 
* **exp** 		: Funzione esponenziale. 
* **floor** 	: Arrotonda per difetto all'intero più vicino.
* **ln** 		: Logaritmo naturale. 
* **log** 		: Logaritmo in base 10.
* **log10** 	: Logaritmo in base 10.
* **pow** 		: Funzione esponenziale. Accetta due argomenti: la base e l'esponente.
* **sin** 		: Funzione seno. 
* **sinh** 		: Funzione seno iperbolico.
* **sqrt** 		: Funzione radice quadrata. 
* **tan** 		: Funzione tangente. 
* **tanh** 		: Funzione tangente iperbolica.
* **fac** 		: Funzione fattoriale.
* **ncr** 		: Funzione combinazioni. Accetta due argomenti e restituisce il numero di combinazioni. 
* **npr** 		: Funzione permutazioni. Accetta due argomenti e restituisce il numero di permutazioni.
* **rand** 		: Funzione generatore di numeri casuali. Accetta due argomenti e restituisce il numero casuale. Esempio: rand(min,max)
* **round** 	: Funzione di arrotondamento. Accetta un argomento e restituisce il numero arrotondato.
* **xor** 		: Funzione operazione 'xor' bit a bit. Accetta due argomenti. Esempio: xor(x,y)
***
**Costanti**

* ***pi***	: Pi greco
* ***e***	: Numero di Eulero
***
**Esempi**

* **5 + 5** restituisce `10`
* **(5 * 5)** restituisce `25`
* **sqrt(25)** restituisce `5`
* **fac 5** restituisce `120`
* **ncr(6,2)** restituisce `15`
* **npr(6,2)** restituisce `30`
* **(x==y)*z** restituisce `25` (x=5,y=5,z=25)
* **(((x&&y)*z)%t)** restituisce `1` (x=2,y=3,z=25,t=3)
* **(x^.25)** restituisce `3.49` (x=150)
* **fac t** restituisce `120` (t=5)
* **atan(x)** restituisce `1.47` (x=10)
* **ncr(x,2)** restituisce `21` (x=7)
* **exp(x)** restituisce `54.56` (x=4)
* **rand(10,30)** restituisce un numero compreso tra 10 e 30.
* **round(x)** restituisce `21` (x=21.4)