0도부터 90도(2/π)까지의 삼각함수 값을 미리 배열에 계산해둔 다음에 interpolation해서 쓰면 될 듯.
ㅅㅅㅅ(125.128)2015-04-23 20:51
sin이나 cos이면 referential transparency할테니까 메모라이징해서 쓰면 속도향상이 될거임
ㅋㅋㅋㅋ(108.59)2015-04-23 20:51
대개 그런 경우는 전체 구성을 잘못한거지.
codesafer(codesafer)2015-04-23 20:52
FFT 코드 같은거 참고해봐라.
codesafer(codesafer)2015-04-23 20:53
미리 const 배열에 계산해서 쓰는사람 많던데.
과제도우미(1.217)2015-04-23 20:56
빠른 답변들 감사.. 하나하나씩 참고해서 알아봐야겠네요
ㅁㅈ(unknowngolem)2015-04-23 20:56
정확도가 많이 필요하지 않으면 sin보다 sinf가 더 빠름
ㅇ(58.239)2015-04-23 20:57
뭐를 하기 위해 sin cos 을 하는건데?
codesafer(codesafer)2015-04-23 20:57
공간상 물체 회전이용
ㅁㅈ(unknowngolem)2015-04-23 20:59
값이 어느정도 일정하면 cache를 도입해도 되지만 특수한 경우에만 해당되고 ㅅㅅㅅ말대로 lookup table 구성해서 interpolation하는게 제일 빠를듯. 다만 정확성을 꽤 희생해야 함
ㅇ(58.239)2015-04-23 20:59
OpenGL glRotatef를 안 쓰고 직접 수치를 구하는 식으루
ㅁㅈ(unknowngolem)2015-04-23 20:59
아니면 메모리를 많이 쓰던가..
ㅇ(58.239)2015-04-23 20:59
일단 sinf 써서 해보길. sinf가 미세하게나마 더 빠름
ㅇ(58.239)2015-04-23 20:59
보간이 여기에도 쓰이는군요ㅜ
ㅁㅈ(unknowngolem)2015-04-23 21:00
회전을 어떤 단위로 하는지 회전의 각도 입력 소스가 뭔지
codesafer(codesafer)2015-04-23 21:00
taylor series랑 각종 최적화 방법을 이용해서 원하는 정확도에 맞게 삼각함수를 바닥부터 구현할 수도 있지만 배보다 배꼽이 크게 될지도
ㅇ(58.239)2015-04-23 21:00
음.. 루프를 많이 도는 데다가 다른 계산식까지 합치니 f 붙여도 아직까진 체감은 안 되는 듯 하네요 쨋든 도움 감사!
ㅁㅈ(unknowngolem)2015-04-23 21:01
잠시.. 문제 소스 전체 올려볼게요
ㅁㅈ(unknowngolem)2015-04-23 21:02
cache랑 lookup table을 따로 얘기하는거 재밌네 ㅎㅎ lookup table은 메모리 안먹나 봅니다 ㅋ
ㅋㅋㅋㅋ(108.59)2015-04-23 21:09
메모라이징에 대응하는 개념으로 cache를 말했는데 실수 값은 기본적으로 discrete하지 않으니까 sin, cos의 반복 계산을 줄이는 용도로 cache가 부적절할 수도 있고 lookup table은 미리 일정 범위의 전체 값을 계산해서 table을 만들어 놓은다음 거기서 찾는걸 말한거
ㅇ(58.239)2015-04-23 21:13
내가 보기엔 lookup table이 cache보다 적절한 방법인것 같다
ㅇ(58.239)2015-04-23 21:14
그리고 누가 lookup table이 메모리 안먹는다고 했는지좀 찾아서 말해줄래
ㅇ(58.239)2015-04-23 21:15
참 신기하네 ㅋ 미리 다 만들지 말고 필요할때 하나씩 만들면 된다고 한거 가지고 그런 얘기를 하니 그런거지 ㅎㅎ interpolation은 내가 한 얘기도 아닌데 왜 얘기 안했다고 나한테 따지는건가??
ㅋㅋㅋㅋ(108.59)2015-04-23 21:26
필요할 때 하나씩 만들려면 table에서 칸을 찾아서 써져있는지 체크해야 하니까 추가적인 분기가 필요하게 되고 따라서 lookup table에 값을 미리 써놓는게 좋다고 생각하는데. 뭐가 더 좋다고 말하는거에 그렇게 민감하게 반응할 필요는 없다고 생각하는데? 내가 말한게 틀렸으면 그냥 직설적으로 틀렸다고 해
ㅇ(58.239)2015-04-23 21:31
그렇게 돌려말하면 난 무슨 말인지 알아먹기가 힘들어
ㅇ(58.239)2015-04-23 21:32
그럼 쉽게 얘기해봄 미리 다 안구해도 된다고 한거 가지고 마치 interpolation은 안해도 된다느니 얘기한거처럼 내 얘기를 딱 정해놓고 공격하는 듯이 말하니까 하는 얘기아냐 "메모라이징에 대응하는 개념으로 cache를 말했는데"라고 너도 인정하고 있잖아
ㅋㅋㅋㅋ(108.59)2015-04-23 21:38
코세는 또 왜 ㅂㄷㅂㄷ거리고 있는거냐 ㅎㅎ 아저씨 존나 스몰마인드인거 같네 ㅋ
ㅋㅋㅋㅋ(108.59)2015-04-23 21:40
그렇게 생각하고 말한거 맞는데? 여기서 내가 무슨말을 더 해야할지 모르겠다. 공격하듯이 들렸으면 미안함
ㅇ(58.239)2015-04-23 21:42
interpolation은 sin함수를 부를때 해도 됨 실수를 정수로 변환한다거나 해서 별개라고
ㅋㅋㅋㅋ(108.59)2015-04-23 21:43
그렇게 생각하고 말한거 맞다는데 코세 아저씨 왜 이러시나 ㅋㅋㅋㅋㅋㅋㅋ
ㅋㅋㅋㅋ(108.59)2015-04-23 21:46
스몰 마인드 아저씨 너무 ㅂㄷㅂㄷ하는거 아니심? 자위나 하고 주무시지여 ㅎㅎ
ㅋㅋㅋㅋ(108.59)2015-04-23 21:49
별로 싸우고 싶은 생각은 없는데 정리해서 말하자면... 첫째는 cache 사용하려고 하면 값을 일정한 범위로 밀어넣어야 하니까 추가적인 부하가 발생할 가능성이 있다는 말이고 두 번째는 호출할 때마다 cache에 값이 있는지 검사해야 하니까 거기서도 부하가 발생할 수 있다는 말임. interpolation 아예 염두해두지 않은건 아니고 그에 관한 문제를 추가 계산 없이 깔끔하게 해결할 방법이 떠오르지 않았을 뿐
ㅇ(58.239)2015-04-23 21:55
특정한 상황에서 cache가 더 좋을수 있다는건 인정하고 공격하듯이 들렸으면 미안함. 끝
ㅇ(58.239)2015-04-23 21:56
lookup table에서 index값을 찾을때에는 추가 계산이 없음? 똑같지 ㅋ 후자 얘기는 나중에 말 추가한거고
ㅋㅋㅋㅋ(108.59)2015-04-23 21:58
좁쌀만한 지식가지고 아무데나 칼날 세우니 이불 많이 차겠다. 타인의 말을 니 맘대로 난도질 하진 마라.
0도부터 90도(2/π)까지의 삼각함수 값을 미리 배열에 계산해둔 다음에 interpolation해서 쓰면 될 듯.
sin이나 cos이면 referential transparency할테니까 메모라이징해서 쓰면 속도향상이 될거임
대개 그런 경우는 전체 구성을 잘못한거지.
FFT 코드 같은거 참고해봐라.
미리 const 배열에 계산해서 쓰는사람 많던데.
빠른 답변들 감사.. 하나하나씩 참고해서 알아봐야겠네요
정확도가 많이 필요하지 않으면 sin보다 sinf가 더 빠름
뭐를 하기 위해 sin cos 을 하는건데?
공간상 물체 회전이용
값이 어느정도 일정하면 cache를 도입해도 되지만 특수한 경우에만 해당되고 ㅅㅅㅅ말대로 lookup table 구성해서 interpolation하는게 제일 빠를듯. 다만 정확성을 꽤 희생해야 함
OpenGL glRotatef를 안 쓰고 직접 수치를 구하는 식으루
아니면 메모리를 많이 쓰던가..
일단 sinf 써서 해보길. sinf가 미세하게나마 더 빠름
보간이 여기에도 쓰이는군요ㅜ
회전을 어떤 단위로 하는지 회전의 각도 입력 소스가 뭔지
taylor series랑 각종 최적화 방법을 이용해서 원하는 정확도에 맞게 삼각함수를 바닥부터 구현할 수도 있지만 배보다 배꼽이 크게 될지도
음.. 루프를 많이 도는 데다가 다른 계산식까지 합치니 f 붙여도 아직까진 체감은 안 되는 듯 하네요 쨋든 도움 감사!
잠시.. 문제 소스 전체 올려볼게요
cache랑 lookup table을 따로 얘기하는거 재밌네 ㅎㅎ lookup table은 메모리 안먹나 봅니다 ㅋ
메모라이징에 대응하는 개념으로 cache를 말했는데 실수 값은 기본적으로 discrete하지 않으니까 sin, cos의 반복 계산을 줄이는 용도로 cache가 부적절할 수도 있고 lookup table은 미리 일정 범위의 전체 값을 계산해서 table을 만들어 놓은다음 거기서 찾는걸 말한거
내가 보기엔 lookup table이 cache보다 적절한 방법인것 같다
그리고 누가 lookup table이 메모리 안먹는다고 했는지좀 찾아서 말해줄래
참 신기하네 ㅋ 미리 다 만들지 말고 필요할때 하나씩 만들면 된다고 한거 가지고 그런 얘기를 하니 그런거지 ㅎㅎ interpolation은 내가 한 얘기도 아닌데 왜 얘기 안했다고 나한테 따지는건가??
필요할 때 하나씩 만들려면 table에서 칸을 찾아서 써져있는지 체크해야 하니까 추가적인 분기가 필요하게 되고 따라서 lookup table에 값을 미리 써놓는게 좋다고 생각하는데. 뭐가 더 좋다고 말하는거에 그렇게 민감하게 반응할 필요는 없다고 생각하는데? 내가 말한게 틀렸으면 그냥 직설적으로 틀렸다고 해
그렇게 돌려말하면 난 무슨 말인지 알아먹기가 힘들어
그럼 쉽게 얘기해봄 미리 다 안구해도 된다고 한거 가지고 마치 interpolation은 안해도 된다느니 얘기한거처럼 내 얘기를 딱 정해놓고 공격하는 듯이 말하니까 하는 얘기아냐 "메모라이징에 대응하는 개념으로 cache를 말했는데"라고 너도 인정하고 있잖아
코세는 또 왜 ㅂㄷㅂㄷ거리고 있는거냐 ㅎㅎ 아저씨 존나 스몰마인드인거 같네 ㅋ
그렇게 생각하고 말한거 맞는데? 여기서 내가 무슨말을 더 해야할지 모르겠다. 공격하듯이 들렸으면 미안함
interpolation은 sin함수를 부를때 해도 됨 실수를 정수로 변환한다거나 해서 별개라고
그렇게 생각하고 말한거 맞다는데 코세 아저씨 왜 이러시나 ㅋㅋㅋㅋㅋㅋㅋ
스몰 마인드 아저씨 너무 ㅂㄷㅂㄷ하는거 아니심? 자위나 하고 주무시지여 ㅎㅎ
별로 싸우고 싶은 생각은 없는데 정리해서 말하자면... 첫째는 cache 사용하려고 하면 값을 일정한 범위로 밀어넣어야 하니까 추가적인 부하가 발생할 가능성이 있다는 말이고 두 번째는 호출할 때마다 cache에 값이 있는지 검사해야 하니까 거기서도 부하가 발생할 수 있다는 말임. interpolation 아예 염두해두지 않은건 아니고 그에 관한 문제를 추가 계산 없이 깔끔하게 해결할 방법이 떠오르지 않았을 뿐
특정한 상황에서 cache가 더 좋을수 있다는건 인정하고 공격하듯이 들렸으면 미안함. 끝
lookup table에서 index값을 찾을때에는 추가 계산이 없음? 똑같지 ㅋ 후자 얘기는 나중에 말 추가한거고
좁쌀만한 지식가지고 아무데나 칼날 세우니 이불 많이 차겠다. 타인의 말을 니 맘대로 난도질 하진 마라.