LUA의 표준 (또는 가장 잘 지원되는) 대형 수 (임의의 정밀) 라이브러리는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/288707

  •  08-07-2019
  •  | 
  •  

문제

나는 반올림 할 수없는 많은 숫자로 일하고 있습니다. LUA의 표준 수학 라이브러리를 사용하면 일부 내부 한도를지나 정밀도를 보존하는 편리한 방법이없는 것 같습니다. 또한 큰 숫자로 작업하도록로드 할 수있는 여러 라이브러리가 있습니다.

  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 ( #2와 동일 할 수 있음)
  4. http://www.gammon.com.au/scripts/doc.php?general=lua_bc (하지만 나는 어떤 출처도 찾을 수 없다)

더욱이 있습니다 많은 도서관 C에서는 LUA에서 호출 할 수 있습니다.

이 라이브러리 중 하나 이상에 대한 경험이 있습니까?

도움이 되었습니까?

해결책

그만큼 LMAPM 라이브러리 LUA 언어의 저자 중 한 명인 Luiz Figueiredo.

다른 팁

사용 LBC LBC가 독립적이기 때문에 LMAPM 대신 더 쉬울 것입니다.

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)

프로젝트 Euler 문제를 해결하기 위해 Norman Ramsey의 제안을 사용했습니다. #16. 문제의 요점이 303 자리 정수를 정확하게 계산한다고 스포일러라고 생각하지 않습니다.

라이브러리를 설치하고 사용하는 데 필요한 단계는 다음과 같습니다.

  1. LUA는 동적 로딩을 활성화하여 구축해야합니다. Cygwin을 사용하지만 변경했습니다 PLAT 안에 src/Makefile 되려고 linux. 기본값, none, 동적 하중을 활성화하지 않습니다.

  2. 그만큼 C 컴파일러가 찾을 수있는 어딘가에 빌드 및 설치해야합니다. 나는 넣었다 libmapm.a 안에 /usr/local/lib/. 다음 m_apm.h 그리고 m_apm_lc.h 갔다 /usr/local/include/.

  3. makefile에 대한 lmamp LUA 및 MAMP 라이브러리의 올바른 위치로 변경되어야합니다. 나를 위해, 그것은 두 번째 선언을하지 않는 것을 의미합니다. LUA, LUAINC, LUALIB, 그리고 LUABIN 그리고 선언 편집 MAMP.

  4. 드디어, mapm.so Lua가 찾을 수있는 곳에 배치해야합니다. 나는 그것을 넣었다 /usr/local/lib/lua/5.1/.

제안에 감사드립니다!

정말 대답 할 수는 없지만 추가하겠습니다 LGMP, GMP 결합. 사용되지 않습니다.

내 전문 분야는 아니지만 GNU 다중 정밀 산술 라이브러리가 여기서 상당히 표준이 될 것으로 기대합니다.

그렇지는 않지만 임의 정도, Lua Dynumber, IBM 탈퇴를위한 LUA 5.1 래퍼는 제안 된 일반 소수점 산술 표준 IEEE 754R을 구현합니다. LUA 5.1 산술 연산자와 반올림 모드에 대한 완전한 제어 및 최대 69 자리의 정밀도가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top