new cuda.types vocab containing CUDA vector types (int2, float4, etc.) with CUDA alignment

db4
Joe Groff 2010-05-12 13:48:44 -07:00
parent cc2cee1ae3
commit 860e871fe6
1 changed files with 292 additions and 0 deletions

View File

@ -0,0 +1,292 @@
! (c)2010 Joe Groff bsd license
USING: accessors alien.c-types classes.struct kernel math ;
FROM: alien.c-types => float ;
IN: cuda.types
STRUCT: char1
{ x char } ;
STRUCT: char2
{ x char }
{ y char } ;
STRUCT: char3
{ x char }
{ y char }
{ z char } ;
STRUCT: char4
{ x char }
{ y char }
{ z char }
{ w char } ;
STRUCT: uchar1
{ x uchar } ;
STRUCT: uchar2
{ x uchar }
{ y uchar } ;
STRUCT: uchar3
{ x uchar }
{ y uchar }
{ z uchar } ;
STRUCT: uchar4
{ x uchar }
{ y uchar }
{ z uchar }
{ w uchar } ;
STRUCT: short1
{ x short } ;
STRUCT: short2
{ x short }
{ y short } ;
STRUCT: short3
{ x short }
{ y short }
{ z short } ;
STRUCT: short4
{ x short }
{ y short }
{ z short }
{ w short } ;
STRUCT: ushort1
{ x ushort } ;
STRUCT: ushort2
{ x ushort }
{ y ushort } ;
STRUCT: ushort3
{ x ushort }
{ y ushort }
{ z ushort } ;
STRUCT: ushort4
{ x ushort }
{ y ushort }
{ z ushort }
{ w ushort } ;
STRUCT: int1
{ x int } ;
STRUCT: int2
{ x int }
{ y int } ;
STRUCT: int3
{ x int }
{ y int }
{ z int } ;
STRUCT: int4
{ x int }
{ y int }
{ z int }
{ w int } ;
STRUCT: uint1
{ x uint } ;
STRUCT: uint2
{ x uint }
{ y uint } ;
STRUCT: uint3
{ x uint }
{ y uint }
{ z uint } ;
STRUCT: uint4
{ x uint }
{ y uint }
{ z uint }
{ w uint } ;
STRUCT: long1
{ x long } ;
STRUCT: long2
{ x long }
{ y long } ;
STRUCT: long3
{ x long }
{ y long }
{ z long } ;
STRUCT: long4
{ x long }
{ y long }
{ z long }
{ w long } ;
STRUCT: ulong1
{ x ulong } ;
STRUCT: ulong2
{ x ulong }
{ y ulong } ;
STRUCT: ulong3
{ x ulong }
{ y ulong }
{ z ulong } ;
STRUCT: ulong4
{ x ulong }
{ y ulong }
{ z ulong }
{ w ulong } ;
STRUCT: longlong1
{ x longlong } ;
STRUCT: longlong2
{ x longlong }
{ y longlong } ;
STRUCT: longlong3
{ x longlong }
{ y longlong }
{ z longlong } ;
STRUCT: longlong4
{ x longlong }
{ y longlong }
{ z longlong }
{ w longlong } ;
STRUCT: ulonglong1
{ x ulonglong } ;
STRUCT: ulonglong2
{ x ulonglong }
{ y ulonglong } ;
STRUCT: ulonglong3
{ x ulonglong }
{ y ulonglong }
{ z ulonglong } ;
STRUCT: ulonglong4
{ x ulonglong }
{ y ulonglong }
{ z ulonglong }
{ w ulonglong } ;
STRUCT: float1
{ x float } ;
STRUCT: float2
{ x float }
{ y float } ;
STRUCT: float3
{ x float }
{ y float }
{ z float } ;
STRUCT: float4
{ x float }
{ y float }
{ z float }
{ w float } ;
STRUCT: double1
{ x double } ;
STRUCT: double2
{ x double }
{ y double } ;
STRUCT: double3
{ x double }
{ y double }
{ z double } ;
STRUCT: double4
{ x double }
{ y double }
{ z double }
{ w double } ;
char2 c-type
2 >>align
2 >>align-first
drop
char4 c-type
4 >>align
4 >>align-first
drop
uchar2 c-type
2 >>align
2 >>align-first
drop
uchar4 c-type
4 >>align
4 >>align-first
drop
short2 c-type
4 >>align
4 >>align-first
drop
short4 c-type
8 >>align
8 >>align-first
drop
ushort2 c-type
4 >>align
4 >>align-first
drop
ushort4 c-type
8 >>align
8 >>align-first
drop
int2 c-type
8 >>align
8 >>align-first
drop
int4 c-type
16 >>align
16 >>align-first
drop
uint2 c-type
8 >>align
8 >>align-first
drop
uint4 c-type
16 >>align
16 >>align-first
drop
long2 c-type
long heap-size 2 * >>align
long heap-size 2 * >>align-first
drop
long4 c-type
16 >>align
16 >>align-first
drop
ulong2 c-type
long heap-size 2 * >>align
long heap-size 2 * >>align-first
drop
ulong4 c-type
16 >>align
16 >>align-first
drop
longlong2 c-type
16 >>align
16 >>align-first
drop
longlong4 c-type
16 >>align
16 >>align-first
drop
ulonglong2 c-type
16 >>align
16 >>align-first
drop
ulonglong4 c-type
16 >>align
16 >>align-first
drop
float2 c-type
8 >>align
8 >>align-first
drop
float4 c-type
16 >>align
16 >>align-first
drop
double2 c-type
16 >>align
16 >>align-first
drop
double4 c-type
16 >>align
16 >>align-first
drop