import ctypes libm = ctypes.CDLL('libm.so.6') sin = libm.sin class MyUnion(ctypes.Union): _fields_ = [("x{}".format(i), ctypes.c_double) for i in range(11)] sin.argtypes = [MyUnion] sin.restype = ctypes.c_double arg = MyUnion() arg.x0 = 3.1415 print(sin(arg))