Libbeef është një përkthim në gjuhën programuese Rust i bibliotekës libbf të Fabrice Bellard, e cila shërben për llogaritje me precizion arbitrar në formatin floating-point. Emri i projektit rrjedh nga shkurtesa për "Beeg Float". Kjo bibliotekë lidh vlerën me një format të përcaktuar në kohën e kompilimit, duke mundësuar që operacionet si shumëzimi apo funksionet trigonometrike, si sinusi, të përdorin 128-bit precizion dhe rrethimin "round-to-nearest-even" automatikisht, pa kërkuar argumente shtesë në çdo thirrje.
Sipas dokumentacionit të projektit, libbeef zbaton të njëjtat algoritme si versioni origjinal në C: shumëzimin bazuar në NTT, iterimin Newton për pjesëtimin dhe rrënjën katrore, si dhe metodat AGM/binary-splitting për funksionet transcendentale. Në operacionet me 300k bit, libbeef rezulton rreth 2 herë më i shpejtë se libbf dhe 1.3 herë më i shpejtë se GMP, ndërsa tejkalon 4 herë shpejtësinë e bibliotekës num-bigint.
Për funksionet transcendentale, libbeef arrin ose tejkalon performancën e libbf-së në C për funksionet sin, cos, tan dhe pow, ndërsa mbetet brenda një diference prej 15% për log dhe atan. Për pjesëtimin dhe rrënjën katrore, ekziston një diferencë prej rreth 3 herë ndaj GMP/MPFR, e cila është një veti e qasjes së libbf-së ndaj metodës Newton-reciprocal.
Libbeef është shkruar në Rust të pastër dhe nuk ka varësi nga sistemi, duke mos kërkuar kompilator C ose biblioteka të jashtme. Kjo mundëson ndërtimin e tij në çdo platformë që mbështet rustc, përfshirë WASM dhe sistemet e ngulitura. Biblioteka është e gatshme për mjedise "no_std", duke kërkuar vetëm alokim, dhe ofrohet nën licencën MIT, e cila është më lejuese krahasuar me licencën LGPL të GMP ose MPFR.
Burimi: github.com
