Векторний тип даних описується як ім'я базового типу плюс кількість вимірів, наприклад float4. Даний запис означає, що буде виділена пам'ять під чотири змінні типу float, котрі у оперативній пам'яті будуть розташовані підряд. Над векторними типами можна проводити базові математичні операції типу +,-,*,/ також можна проводити операцію присвоєння. Доступ до певного компоненту типу векторна змінна можна отримати через символ «.» після чого вказується ім'я компоненту.
Використання
OpenCL
У OpenCL векторні типи даних можуть будуватися на основі наступних базових типів даних: [u]char, [u]short, [u]int, [u]long, float, double, half [1]. Стандарт визначає наступну кількість вимірів для векторного типу: 2, 4, 8 та 16. У таблиці нижче наведені імена компонентів з вказаними порядком [2].
Імена v.x, v.y, v.z, v.w, можуть використовуватися лише у векторах розмірністю 2 та 4.
CUDA
У CUDA векторні типи даних розмірності 2, 3 та 4 можуть будуватися на основі наступних базових типів даних: [u]char, [u]short, [u]int, [u]long, float, а також розмірністю 2 на основі типів: [u]longlong, double[3].
Посилання
OpenCL Vector Data Types. OpenCL documentation. Khronos Group.
а) Постройте плоскость, проходящую через точки K, L и М - для этого надо просто соединить эти точки.
б) Найдите угол между этой плоскостью и плоскостью основания АВС. Продлим отрезки КМ и KL до пересечения с плоскостью АВС. Для этого достаточно продлить стороны АС и АВ. Точки пресечения - это Д и Е. Примем длину отрезка АК за 1. Из треугольника АКД отрезок АД = 1 / tg 60 = 1 / √3. Аналогично АЕ = 1 / tg 45 = = 1 / 1 = 1. Угол ЕАД равен 60 градусов (по заданию). По теореме косинусов Находим гипотенузы в треугольниках АКД и АКЕ. КЕ = √(1²+1²) = √2 (острые углы по 45 градусов). Теперь определены 3 стороны в треугольнике КЕД, угол наклона которого к плоскости АВС надо найти. Для этого двугранный угол между основой и треугольником КДЕ надо рассечь плоскостью, перпендикулярной их линии пересечения ЕД. Находим высоты в треугольниках АЕД и КЕД по формуле: АЕ ДЕ АД p 2p S = 1 0.8694729 0.5773503 1.2234116 2.446823135 0.25 haе hде hад 0.5 0.57506 0.86603
КЕ ДЕ КД p 2p S = 1.4142136 0.869473 1.154701 1.719194 3.43839 0.501492 hке hде hкд 0.7092 1.15356 0.86861. Отношение высот hде и hде - это косинус искомого угла: cos α = 0.57506 / 1.15356 = 0.498510913. ответ: α = 1.048916149 радиан = 60.09846842°.
Відповідь:
Векторний тип даних описується як ім'я базового типу плюс кількість вимірів, наприклад float4. Даний запис означає, що буде виділена пам'ять під чотири змінні типу float, котрі у оперативній пам'яті будуть розташовані підряд. Над векторними типами можна проводити базові математичні операції типу +,-,*,/ також можна проводити операцію присвоєння. Доступ до певного компоненту типу векторна змінна можна отримати через символ «.» після чого вказується ім'я компоненту.
Використання
OpenCL
У OpenCL векторні типи даних можуть будуватися на основі наступних базових типів даних: [u]char, [u]short, [u]int, [u]long, float, double, half [1]. Стандарт визначає наступну кількість вимірів для векторного типу: 2, 4, 8 та 16. У таблиці нижче наведені імена компонентів з вказаними порядком [2].
Ім'я\N 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
floatN v v.x, v.s0 v.y, v.s1 v.z, v.s2 v.w, v.s3 v.s4 v.s5 v.s6 v.s7 v.s8 v.s9 v.sa, v.sA v.sb, v.sB v.sc, v.sC v.sd, v.sD v.se, v.sE v.sf, v.sF
Імена v.x, v.y, v.z, v.w, можуть використовуватися лише у векторах розмірністю 2 та 4.
CUDA
У CUDA векторні типи даних розмірності 2, 3 та 4 можуть будуватися на основі наступних базових типів даних: [u]char, [u]short, [u]int, [u]long, float, а також розмірністю 2 на основі типів: [u]longlong, double[3].
Посилання
OpenCL Vector Data Types. OpenCL documentation. Khronos Group.
OpenCL Vector Dimension. OpenCL quick reference card. Khronos Group.
CUDA Vector Data Types.
Див. також
Добуток Адамара
Структура даних
Пояснення: