Funzioni matematiche

Sono previste funzioni matematiche.

Funzioni trigonometriche

La tabella seguente descrive le funzioni trigonometriche fornite.
Tabella 1. Funzioni trigonometriche
Funzione Tipo di dati in ingresso Tipo di dati di output Descrizione
acos(x) precisione doppia precisione doppia Coseno inverso.
asin(x) precisione doppia precisione doppia Seno inverso.
atan(x) precisione doppia precisione doppia Tangente inversa.
atan2(x,y) precisione doppia precisione doppia Tangente inversa di x/y.
cos(x) precisione doppia precisione doppia Coseno.
cot(x) precisione doppia precisione doppia Cotangente.
degrees(x) precisione doppia precisione doppia Convertire i radianti in gradi.
pi() (nessuno) precisione doppia Pi greco (rapporto tra circonferenza e diametro).
radians(x) precisione doppia precisione doppia Convertire i gradi in radianti.
sin(x) precisione doppia precisione doppia Seno.
tan(x) precisione doppia precisione doppia Tangente.

Funzioni di numeri casuali

La tabella seguente descrive le funzioni di numero casuale fornite.
Tabella 2. Funzioni matematiche per numeri casuali
Funzione Tipo di dati in ingresso Tipo di dati di output Descrizione Esempio Risultato
random() (nessuno) precisione doppia Valore casuale superiore a 0 e inferiore a 1. random() 0.27116098407244
setseed(x)   (nessuno) Impostare il seme per la funzione 'random(). setseed(0.548) (codice di ritorno)

Funzioni numeriche

La tabella seguente descrive le funzioni numeriche fornite.
Tabella 3. Funzioni numeriche
Funzione Tipo di dati in ingresso Tipo di dati di output Descrizione Esempio Risultato
n! byteint, smallint, integer, bigint int8 Fattoriale del numero intero n:
n×(n-1)×...×1
5! 120
abs(x) byteint, smallint, integer, bigint, double precision, real, numeric come x Valore assoluto. abs (-17.4) 17.4
ceil(x) numerico numerico Il più piccolo numero intero non inferiore a x ceil (-42.8) -42
dceil(x) precisione doppia precisione doppia Il più piccolo numero intero non inferiore a x dceil (42.8) 43
dfloor(x) precisione doppia precisione doppia Il più grande intero non superiore all'argomento floor(42.8) 42
exp(x) doppia precisione, numerico come x Esponenziale. exp(1.0) 2.71828182845905
floor(x) numerico numerico il più grande intero non superiore all'argomento floor(-42.8) -43
fpow(a,b) numero reale numero reale a elevato alla potenza di b pow(9.0, 3.0) 729
ln(x) precisione doppia doppio logaritmo naturale ln(2.0) 0.693147180559945
log(x) numerico numerico logaritmo in base 10 log(100.0) 2
mod(x,y) doppia precisione, reale, numerico, byteint, smallint, intero, bigint Se il tipo di x o y è a doppia precisione o reale, il tipo di uscita è a doppia precisione; altrimenti, se x o y è numerico, l'uscita è numerica; altrimenti, x e y sono numeri interi e il tipo di dati di uscita è il più ampio dei due tipi di dati di ingresso Calcola il resto di x/y mod(9,4) 1
numeric_sqrt(x) numerico numerico radice quadrata numeric_sqrt(2) 1.4142
pow(a,b) precisione doppia DP a elevato alla potenza di b pow(9.0, 3.0) 729
round(x) doppia precisione, numerico Uguale all'input arrotondare al numero intero più vicino round(42.4) 42
round(v,n) v è numerico, n è byteint, smallint, integer, bigint numerico arrotondare a s cifre decimali round(2.4382,2) 2.44
sign(x) numerico numerico segno dell'argomento(-1,0,+1) sign(-8.4) -1
sqrt(x) precisione doppia doppio radice quadrata sqrt(2.0) 1.4142135623731
trunc(x) doppia precisione, numerico Uguale all'input troncare verso lo zero trunc(42.8) 42
trunc(v,n) v è numerico, n è byteint, smallint, integer, bigint numerico troncare a s cifre decimali trunc(2.4382,2) 2.43
Nota: il risultato della funzione 'pow deve essere contenuto in un FLOAT8 (un valore in virgola mobile a doppia precisione). Un FLOAT8 può contenere valori positivi o negativi di grandezza compresa tra 1.798 x 10308 e 4.941 x 10-324(circa).

Funzioni matematiche binarie

La tabella seguente descrive le funzioni matematiche binarie disponibili.
Tabella 4. Funzioni matematiche binarie
Funzione Descrizione Esempio Risultato
intNand(x,y) AND bitwise di x e y. int2and(3,6) 2 (smallint)
intNor(x,y) OR bitwise di x e y. int1or(3,6) 7 (byteint)
intNxor(x,y) OR esclusivo bitwise di x e y. int8xor(3,6) 5 (bigint)
intNnot(x) Bitwise NOT di x. int4xor(3) --4 (intero)
intNshl(x,y [,z]) AND bitwise di x e z (se specificato), quindi spostamento a sinistra di y bit (spostamento a sinistra, con maschera opzionale). int2shl(3,1,6) 4 (smallint)
intNshr(x,y [,z]) AND bitwise di x e z (se specificato), quindi spostamento a destra di y bit (spostamento a destra, con maschera opzionale). int2shr(3,1,6) 1 (smallint)
In ogni funzione, il segnaposto N rappresenta la dimensione del tipo di dati interi su cui la funzione opera e restituisce:
1
byteint (alias int1 )
2
smallint (alias int2 )
4
intero (alias int o int4)
8
bigint (alias int8 )