libfixmath

libfixmath
libfixmath
개발자Ben Brewer (일명 플랫머시)
안정된 릴리스
r64 / 2012년 2월 2일, 10년 전(2012-02-02)
저장소
기입처C99
운영 체제크로스 플랫폼
유형고정 소수점 연산 라이브러리
면허증.MIT
웹 사이트code.google.com/p/libfixmath Edit this on Wikidata

libfixmath는 플랫폼에 의존하지 않는 고정 소수점 연산 라이브러리입니다.이것은 개발자에게 Q16.16 고정 소수점 숫자에 사용하기 위한 표준 math.h 함수와 유사한 인터페이스를 제공합니다.libfixmath에는 stdint.h64비트 정수 산술(GCC [1]등)을 지원하는 컴파일러 이외의 외부 의존관계가 없습니다.조건부 컴파일러 옵션은 64비트 연산을 [2]지원하지 않는 마이크로컨트롤러DSP용 컴파일러가 많기 때문에 64비트 대응 컴파일러의 요건을 없애기 위해 존재합니다.

역사

libfixmath는 원래 Ben Brewer(일명 플랫머시)에 의해 개발되었으며 Dingoo [3]SDK의 일부로 처음 공개되었습니다.그 이후로 FGL이라고 [4]불리는 소프트웨어 3D 그래픽 라이브러리를 구현하기 위해 사용되었습니다.

Q16.16 기능

이름. 묘사
fix16_acos 역코사인
fix16_asin 역사인
fix16_atan 일변수 역접선
fix16_atan2 2-파라미터 역접선
fix16_cos 코사인
fix16_exp 지수 함수
fix16_sin 사인
fix16_sqrt 제곱근
fix16_tan 접선
fix16_mul 곱셈
fix16_div 나누기
fix16_sadd 포화상태의 추가
fix16_smul 포화상태의 곱셈
fix16_sdiv 포화상태의 나누기

기타 기능

이름. 묘사
fix16_to_dbl Q16.16더블로 변환
fix16_to_float Q16.16플로트로 변환
fix16_to_int Q16.16정수로 변환합니다.
fix16_from_dbl Q16.16으로 더블 변환
fix16_from_float 플로트를 Q16.16으로 변환
fix16_from_int 정수를 Q16.16으로 변환하다

성능

가장 부하가 높은 기능(atan2)의 벤치마크 결과는 다음과 같습니다.

이름. 플로트와 비교한 시간
ARM Cortex-M0 26.3%
Marvell PXA270 (ARM) (312 MHz) 58.45%
인텔 T5500 120%
인텔 ATOM N280 141%

참고: 이러한 결과는 캐싱 최적화를 [5]끈 상태에서 fixtest를 사용하여 계산되었습니다.

라이선스

libfixmath는 MIT 라이선스(허용 자유 소프트웨어 라이선스)에 따라 출시되며 자유 소프트웨어입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "libfixmath Project Page".
  2. ^ "64-bit Compiler Support Issues".
  3. ^ "Dingoo SDK Project Page".
  4. ^ "FGL Flatmush/Fixed-Point Graphics Library Project Page".
  5. ^ "fixtest Download Page".

외부 링크