Skip to content

Instantly share code, notes, and snippets.

@ChadSki
Created September 15, 2013 23:57
Show Gist options
  • Select an option

  • Save ChadSki/6575365 to your computer and use it in GitHub Desktop.

Select an option

Save ChadSki/6575365 to your computer and use it in GitHub Desktop.
Cython and dispatch tables part II
primitive_getter = {
'float32' : lambda int address: (<float*>address)[0],
'float64' : lambda int address: (<double*>address)[0],
'int8' : lambda int address: (<int8_t*>address)[0],
'int16' : lambda int address: (<int16_t*>address)[0],
'int32' : lambda int address: (<int32_t*>address)[0],
'int64' : lambda int address: (<int64_t*>address)[0],
'uint8' : lambda int address: (<uint8_t*>address)[0],
'uint16' : lambda int address: (<uint16_t*>address)[0],
'uint32' : lambda int address: (<uint32_t*>address)[0],
'uint64' : lambda int address: (<uint64_t*>address)[0],
}
def s_float32(int address, float value): (<float*>address)[0] = value
def s_float64(int address, float value): (<double*>address)[0] = value
def s_int8(int address, int value): (<int8_t*>address)[0] = value
def s_int16(int address, int value): (<int16_t*>address)[0] = value
def s_int32(int address, int value): (<int32_t*>address)[0] = value
def s_int64(int address, int value): (<int64_t*>address)[0] = value
def s_uint8(int address, int value): (<uint8_t*>address)[0] = value
def s_uint16(int address, int value): (<uint16_t*>address)[0] = value
def s_uint32(int address, int value): (<uint32_t*>address)[0] = value
def s_uint64(int address, int value): (<uint64_t*>address)[0] = value
primitive_setter = {
'float32' : s_float32,
'float64' : s_float64,
'int8' : s_int8,
'int16' : s_int16,
'int32' : s_int32,
'int64' : s_int64,
'uint8' : s_uint8,
'uint16' : s_uint16,
'uint32' : s_uint32,
'uint64' : s_uint64,
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment