/extra/cuda/types/types.factor

http://github.com/abeaumont/factor · Factor · 292 lines · 267 code · 24 blank · 1 comment · 1 complexity · 846a87143de4dd0c21036fe66a5e1788 MD5 · raw file

  1. ! (c)2010 Joe Groff bsd license
  2. USING: accessors alien.c-types classes.struct kernel math ;
  3. FROM: alien.c-types => float ;
  4. IN: cuda.types
  5. STRUCT: char1
  6. { x char } ;
  7. STRUCT: char2
  8. { x char }
  9. { y char } ;
  10. STRUCT: char3
  11. { x char }
  12. { y char }
  13. { z char } ;
  14. STRUCT: char4
  15. { x char }
  16. { y char }
  17. { z char }
  18. { w char } ;
  19. STRUCT: uchar1
  20. { x uchar } ;
  21. STRUCT: uchar2
  22. { x uchar }
  23. { y uchar } ;
  24. STRUCT: uchar3
  25. { x uchar }
  26. { y uchar }
  27. { z uchar } ;
  28. STRUCT: uchar4
  29. { x uchar }
  30. { y uchar }
  31. { z uchar }
  32. { w uchar } ;
  33. STRUCT: short1
  34. { x short } ;
  35. STRUCT: short2
  36. { x short }
  37. { y short } ;
  38. STRUCT: short3
  39. { x short }
  40. { y short }
  41. { z short } ;
  42. STRUCT: short4
  43. { x short }
  44. { y short }
  45. { z short }
  46. { w short } ;
  47. STRUCT: ushort1
  48. { x ushort } ;
  49. STRUCT: ushort2
  50. { x ushort }
  51. { y ushort } ;
  52. STRUCT: ushort3
  53. { x ushort }
  54. { y ushort }
  55. { z ushort } ;
  56. STRUCT: ushort4
  57. { x ushort }
  58. { y ushort }
  59. { z ushort }
  60. { w ushort } ;
  61. STRUCT: int1
  62. { x int } ;
  63. STRUCT: int2
  64. { x int }
  65. { y int } ;
  66. STRUCT: int3
  67. { x int }
  68. { y int }
  69. { z int } ;
  70. STRUCT: int4
  71. { x int }
  72. { y int }
  73. { z int }
  74. { w int } ;
  75. STRUCT: uint1
  76. { x uint } ;
  77. STRUCT: uint2
  78. { x uint }
  79. { y uint } ;
  80. STRUCT: uint3
  81. { x uint }
  82. { y uint }
  83. { z uint } ;
  84. STRUCT: uint4
  85. { x uint }
  86. { y uint }
  87. { z uint }
  88. { w uint } ;
  89. STRUCT: long1
  90. { x long } ;
  91. STRUCT: long2
  92. { x long }
  93. { y long } ;
  94. STRUCT: long3
  95. { x long }
  96. { y long }
  97. { z long } ;
  98. STRUCT: long4
  99. { x long }
  100. { y long }
  101. { z long }
  102. { w long } ;
  103. STRUCT: ulong1
  104. { x ulong } ;
  105. STRUCT: ulong2
  106. { x ulong }
  107. { y ulong } ;
  108. STRUCT: ulong3
  109. { x ulong }
  110. { y ulong }
  111. { z ulong } ;
  112. STRUCT: ulong4
  113. { x ulong }
  114. { y ulong }
  115. { z ulong }
  116. { w ulong } ;
  117. STRUCT: longlong1
  118. { x longlong } ;
  119. STRUCT: longlong2
  120. { x longlong }
  121. { y longlong } ;
  122. STRUCT: longlong3
  123. { x longlong }
  124. { y longlong }
  125. { z longlong } ;
  126. STRUCT: longlong4
  127. { x longlong }
  128. { y longlong }
  129. { z longlong }
  130. { w longlong } ;
  131. STRUCT: ulonglong1
  132. { x ulonglong } ;
  133. STRUCT: ulonglong2
  134. { x ulonglong }
  135. { y ulonglong } ;
  136. STRUCT: ulonglong3
  137. { x ulonglong }
  138. { y ulonglong }
  139. { z ulonglong } ;
  140. STRUCT: ulonglong4
  141. { x ulonglong }
  142. { y ulonglong }
  143. { z ulonglong }
  144. { w ulonglong } ;
  145. STRUCT: float1
  146. { x float } ;
  147. STRUCT: float2
  148. { x float }
  149. { y float } ;
  150. STRUCT: float3
  151. { x float }
  152. { y float }
  153. { z float } ;
  154. STRUCT: float4
  155. { x float }
  156. { y float }
  157. { z float }
  158. { w float } ;
  159. STRUCT: double1
  160. { x double } ;
  161. STRUCT: double2
  162. { x double }
  163. { y double } ;
  164. STRUCT: double3
  165. { x double }
  166. { y double }
  167. { z double } ;
  168. STRUCT: double4
  169. { x double }
  170. { y double }
  171. { z double }
  172. { w double } ;
  173. char2 lookup-c-type
  174. 2 >>align
  175. 2 >>align-first
  176. drop
  177. char4 lookup-c-type
  178. 4 >>align
  179. 4 >>align-first
  180. drop
  181. uchar2 lookup-c-type
  182. 2 >>align
  183. 2 >>align-first
  184. drop
  185. uchar4 lookup-c-type
  186. 4 >>align
  187. 4 >>align-first
  188. drop
  189. short2 lookup-c-type
  190. 4 >>align
  191. 4 >>align-first
  192. drop
  193. short4 lookup-c-type
  194. 8 >>align
  195. 8 >>align-first
  196. drop
  197. ushort2 lookup-c-type
  198. 4 >>align
  199. 4 >>align-first
  200. drop
  201. ushort4 lookup-c-type
  202. 8 >>align
  203. 8 >>align-first
  204. drop
  205. int2 lookup-c-type
  206. 8 >>align
  207. 8 >>align-first
  208. drop
  209. int4 lookup-c-type
  210. 16 >>align
  211. 16 >>align-first
  212. drop
  213. uint2 lookup-c-type
  214. 8 >>align
  215. 8 >>align-first
  216. drop
  217. uint4 lookup-c-type
  218. 16 >>align
  219. 16 >>align-first
  220. drop
  221. long2 lookup-c-type
  222. long heap-size 2 * >>align
  223. long heap-size 2 * >>align-first
  224. drop
  225. long4 lookup-c-type
  226. 16 >>align
  227. 16 >>align-first
  228. drop
  229. ulong2 lookup-c-type
  230. long heap-size 2 * >>align
  231. long heap-size 2 * >>align-first
  232. drop
  233. ulong4 lookup-c-type
  234. 16 >>align
  235. 16 >>align-first
  236. drop
  237. longlong2 lookup-c-type
  238. 16 >>align
  239. 16 >>align-first
  240. drop
  241. longlong4 lookup-c-type
  242. 16 >>align
  243. 16 >>align-first
  244. drop
  245. ulonglong2 lookup-c-type
  246. 16 >>align
  247. 16 >>align-first
  248. drop
  249. ulonglong4 lookup-c-type
  250. 16 >>align
  251. 16 >>align-first
  252. drop
  253. float2 lookup-c-type
  254. 8 >>align
  255. 8 >>align-first
  256. drop
  257. float4 lookup-c-type
  258. 16 >>align
  259. 16 >>align-first
  260. drop
  261. double2 lookup-c-type
  262. 16 >>align
  263. 16 >>align-first
  264. drop
  265. double4 lookup-c-type
  266. 16 >>align
  267. 16 >>align-first
  268. drop