Quartz는 그래픽에 CGFloat
을 사용합니다. CGFloat
은 프로세서에 따라 Float
또는 Double
입니다.CGFloat가 Float인지 Double인지 확인하는 방법
가속 프레임 워크에는 동일한 기능의 다양한 변형이 있습니다. 예를 들어 Double의 경우 dgetrf_, Float의 경우 sgetrf_입니다.
이 두 가지를 함께 사용해야합니다. 어느 곳에서나 Double을 사 용하여 쿼츠를 사용할 때마다 CGFloat로 변환하거나 CGFloat의 실제 유형을 결정하고 적절한 Accelerate 함수를 사용할 수 있습니다.
내 코드베이스 전체에 CGFloat's
과 Double
유형을 섞어 놓는 것은별로 매력이 없으며 매번 수천 또는 수백만 개의 값을 CGFloat로 변환 할 때마다 매우 효과적입니다.
이 순간 나는 두 번째 옵션을 선택했습니다. (그렇지 않아야합니까?)
제 질문은 : CGFloat
의 실제 유형을 어떻게 알 수 있습니까?
if ??? //pseudo-code: CGFloat is Double
{
dgetrf_(...)
}
else
{
sgetrf_(...)
}
x86_64 + arm64 대신 여기 \ LP64 \ __를 테스트 할 수 있습니다. –
고마워, 나는 대답에 그것을 추가 할 것이다. – ColGraff