[Math] Qual è la libreria standard (o meglio supportata) di grande numero (precisione arbitraria) per Lua?


Answers

Usare lbc invece di lmapm sarebbe più facile perché lbc è autonomo.

require"bc"
s=bc.pow(2,1000):tostring()
z=0
for i=1,#s do
        z=z+s:byte(i)-("0"):byte(1)
end
print(z)
Question

Sto lavorando con numeri grandi che non posso arrotondare. Usando la libreria matematica standard di Lua, sembra che non ci sia un modo conveniente per mantenere la precisione oltre qualche limite interno. Vedo anche che ci sono diverse librerie che possono essere caricate per lavorare con grandi numeri:

  1. http://oss.digirati.com.br/luabignum/
  2. http://www.tc.umn.edu/~ringx004/mapm-main.html
  3. http://lua-users.org/lists/lua-l/2002-02/msg00312.html (potrebbe essere identico al # 2)
  4. http://www.gammon.com.au/scripts/doc.php?general=lua_bc (ma non riesco a trovare alcuna fonte)

Inoltre, ci sono molte librerie in C che potrebbero essere chiamate da Lua, se le associazioni sono stabilite.

Hai avuto esperienza con una o più di queste librerie?




Non posso davvero rispondere, ma aggiungerò LGMP , un binding GMP. Non usato.

Non è il mio campo di competenza, ma mi aspetterei che la libreria aritmetica di precisione multipla GNU sia piuttosto uno standard qui, no?