diff --git a/README.md b/README.md index 0767b2b2966e9b2e674169b78be0684f5a43bf34..f75b8faa0e79732edc8892d21d1b24e9ba4c2c1c 100644 --- a/README.md +++ b/README.md @@ -169,9 +169,9 @@ ### 1. Type conversion - **longlong_to_fx** - long long 형 변수를 fx_s1516형으로 형 변환 + - long long 형 변수를 fx_s1516형으로 형 변환 - **fx_to_longlong** - fx_s1516형 변수를 long long 형으로 형 변환 + - fx_s1516형 변수를 long long 형으로 형 변환 ### 2. Multiplication @@ -210,11 +210,16 @@ - Sin Table ```bash - const fixed32 fx32_SinTable[92] = { 0,1143,2287,3429,4571,5711,6850,7986,9120,10252,11380,12504,13625,14742,15854,16961,18064,19160,20251,21336,22414,23486,24550,25606,26655,27696,28729,29752,30767,31772,32768,33753,34728,35693,36647,37589,38521,39440,40347,41243,42125,42995,43852,44695,45525,46340,47142,47929,48702,49460,50203,50931,51643,52339,53019,53683,54331,54963,55577,56175,56755,57319,57864,58393,58903,59395,59870,60326,60763,61183,61583,61965,62328,62672,62997,63302,63589,63856,64103,64331,64540,64729,64898,65047,65176,65286,65376,65446,65496,65526,65536,65526 - }; + const fixed32 fx32_SinTable[92] = + { + 0,1143,2287,3429,4571,5711,6850,7986,9120,10252,11380,12504,13625,14742,15854,16961,18064,19160,20251,21336,22414,23486,24550,25606,26655, 27696,28729,29752, + 30767,31772,32768,33753,34728,35693,36647,37589,38521,39440,40347,41243,42125,42995,43852,44695,45525,46340,47142, 47929,48702,49460,50203,50931,51643,52339, + 53019,53683,54331,54963,55577,56175,56755,57319,57864,58393,58903,59395,59870,60326,60763, 61183,61583,61965,62328,62672,62997,63302,63589,63856,64103,64331, + 64540,64729,64898,65047,65176,65286,65376,65446,65496,65526,65536,65526 + }; ``` - - 0 ~ 91도 까지의 sin 값을 저장하는 table이며 math 등 외부 라이브러리의 잦은 호출을 방지하여 성능상 이점을 준다. + 0 ~ 91도 까지의 sin 값을 저장하는 table이며 math 등 외부 라이브러리의 잦은 호출을 방지하여 성능상 이점을 준다. - 제일 먼저, 입력으로 받은 라디안 값 fa가 음수인지를 체크하여 만약 음수라면 부호를 -로 바꾸어 주고 계산을 위해 fa를 양수로 바꾼다. 이후 fa가 360보다 클 수도 있으므로 fa를 360으로 나눈 후 계산을 진행한다. @@ -258,7 +263,7 @@ fx_s1516_longlong_div2: 142857  -- time이 적을수록 빠른 함수이므로 mul2 > mul1 > mul3 > mul0 > mul4 순서로 속도가 빠른 것을 알 수 있다. +- time이 작을수록 빠른 함수이므로 mul2 > mul1 > mul3 > mul0 > mul4 순서로 속도가 빠른 것을 알 수 있다. - shift 연산 3번, 곱셈 연산 1번을 실행하는 mul4가 가장 느렸고, fixed64로 캐스팅하는 작업이 있는 mul0도 비교적 느린 것을 확인할 수 있었다. - 나머지 mul2, mul1, mul3 세 연산은 속도가 같거나 거의 차이가 없는 것을 확인할 수 있다. - 위 결과로 미루어 보아 캐스팅, shift 연산의 횟수 등이 실행 속도에 영향을 주는 것으로 예상해볼 수 있다. @@ -275,7 +280,7 @@ fx_s1516_longlong_div2: 142857 ## Test method -### Test file change +### test.c file change - ```ifdef``` 구문을 사용해 매크로에 따라 실행되는 구문이 다르게 수정하였다. - 매크로 종류