Кварц использует для своей графики CGFloat
. CGFloat
- либо Float
, либо Double
, в зависимости от процессора.Как определить, является ли CGFloat Float или Double
Ускоренный каркас имеет различные варианты одной и той же функции. Например, dgetrf_ для Double и sgetrf_ для Float's.
Я должен сделать эти две работы вместе. Либо я могу использовать Double везде и конвертировать их в CGFloat каждый раз, когда я использую кварц, или я могу (попытаться) определить фактический тип CGFloat и использовать соответствующую функцию ускорения.
Смешивание CGFloat's
и Double
типов по всей моей базе кода не очень привлекательно и конвертирует тысячи или миллионы значений в CGFloat, каждый раз не поражает меня как очень эффективный.
В этот момент я бы пошел со вторым вариантом. (Или не должен?)
Мой вопрос: как узнать фактический тип CGFloat
?
if ??? //pseudo-code: CGFloat is Double
{
dgetrf_(...)
}
else
{
sgetrf_(...)
}
Вы можете просто проверить \ __ LP64 \ __ здесь вместо x86_64 + arm64. –
Спасибо, я добавлю это к ответу. – ColGraff