Ce face math.fma()
„Fused multiply-add”: fma(x, y, z) calculează x * y + z ca și cum ar avea precizie infinită și rotunjește o singură dată, la final. Expresia x * y + z rotunjește de două ori (după înmulțire și după adunare), ceea ce poate pierde cifre în calcule științifice.
Parametri
| Parametru | Descriere |
|---|---|
x, y, z |
Numerele. |
Ce returnează
Un float.
Exemple
Exemplul 1: Diferența de precizie
Numărul 0.1 nu este stocat exact. Expresia obișnuită rotunjește produsul la 1.0 și dă 0.0; fma păstrează eroarea reală de reprezentare.
import math
x = 0.1
print(x * 10 - 1.0, math.fma(x, 10, -1.0))
print(math.fma(2, 3, 4))
Rezultat
0.0 5.551115123125783e-17
10.0
Greșeli frecvente
- Folosești funcția pe Python mai vechi de 3.13 și primești
AttributeError.
Comenzi înrudite
math.fsum(): Adună numere zecimale cu precizie maximă, fără erorile de rotunjire acumulate.math.prod() și math.sumprod(): Produsul tuturor elementelor și suma produselor a două liste (produs scalar).