Example #1
0
def attach_prox_ctypes(lib, single_precision=False):
	if 'ok_float' not in lib.__dict__:
		attach_base_ctypes(lib, single_precision)

	ok_float = lib.ok_float

	# function struct
	class ok_function(Structure):
		_fields_ = [('h', c_uint),
					('a', ok_float),
					('b', ok_float),
					('c', ok_float),
					('d', ok_float),
					('e', ok_float)]
	lib.function = ok_function
	lib.function_p = POINTER(lib.function)

	# function vector struct
	class ok_function_vector(Structure):
		_fields_ = [('size', c_size_t),
					('objectives', lib.function_p)]
	lib.function_vector = ok_function_vector
	lib.function_vector_p = POINTER(lib.function_vector)

	lib.function_enums = OKFunctionEnums()
Example #2
0
def attach_operator_projector_ctypes_ccalls(lib, single_precision=False):
	if 'ok_float' not in lib.__dict__:
		attach_base_ctypes(lib, single_precision)
	if 'operator_p' not in lib.__dict__:
		attach_operator_ctypes(lib, single_precision)
	if 'projector_p' not in lib.__dict__:
		attach_projector_ctypes(lib, single_precision)

	ok_float = lib.ok_float
	vector_p = lib.vector_p
	operator_p = lib.operator_p
	projector_p = lib.projector_p

	# types
	class indirect_projector(Structure):
		_fields_ = [('A', operator_p),
					('cgls_work', c_void_p),
					('flag', c_uint)]

	lib.indirect_projector = indirect_projector
	lib.indirect_projector_p = POINTER(lib.indirect_projector)
	indirect_projector_p = lib.indirect_projector_p

	class indirect_projector_generic(Structure):
		_fields_ = [('A', operator_p),
					('cgls_work', c_void_p),
					('linalg_handle', c_void_p),
					('normA', ok_float),
					('normalized', c_int),
					('flag', c_uint)]

	lib.indirect_projector_generic = indirect_projector_generic
	lib.indirect_projector_generic_p = POINTER(lib.indirect_projector_generic)


	# calls
	lib.indirect_projector_alloc.argtypes = [indirect_projector_p, operator_p]
	lib.indirect_projector_initialize.argtypes = [c_void_p,
												  indirect_projector_p, c_int]
	lib.indirect_projector_project.argtypes = [c_void_p, indirect_projector_p,
											   vector_p, vector_p, vector_p,
											   vector_p]
	lib.indirect_projector_free.argtypes = [indirect_projector_p]
	lib.indirect_projector_generic_alloc.argtypes = [operator_p]

	lib.indirect_projector_alloc.restype = c_uint
	lib.indirect_projector_initialize.restype = c_uint
	lib.indirect_projector_project.restype = c_uint
	lib.indirect_projector_free.restype = c_uint
	lib.indirect_projector_generic_alloc.restype = projector_p
Example #3
0
def attach_operator_projector_ctypes_ccalls(lib, single_precision=False):
    if 'ok_float' not in lib.__dict__:
        attach_base_ctypes(lib, single_precision)
    if 'operator_p' not in lib.__dict__:
        attach_operator_ctypes(lib, single_precision)
    if 'projector_p' not in lib.__dict__:
        attach_projector_ctypes(lib, single_precision)

    ok_float = lib.ok_float
    vector_p = lib.vector_p
    operator_p = lib.operator_p
    projector_p = lib.projector_p

    # types
    class indirect_projector(Structure):
        _fields_ = [('A', operator_p), ('cgls_work', c_void_p),
                    ('flag', c_uint)]

    lib.indirect_projector = indirect_projector
    lib.indirect_projector_p = POINTER(lib.indirect_projector)
    indirect_projector_p = lib.indirect_projector_p

    class indirect_projector_generic(Structure):
        _fields_ = [('A', operator_p), ('cgls_work', c_void_p),
                    ('linalg_handle', c_void_p), ('normA', ok_float),
                    ('normalized', c_int), ('flag', c_uint)]

    lib.indirect_projector_generic = indirect_projector_generic
    lib.indirect_projector_generic_p = POINTER(lib.indirect_projector_generic)

    # calls
    lib.indirect_projector_alloc.argtypes = [indirect_projector_p, operator_p]
    lib.indirect_projector_initialize.argtypes = [
        c_void_p, indirect_projector_p, c_int
    ]
    lib.indirect_projector_project.argtypes = [
        c_void_p, indirect_projector_p, vector_p, vector_p, vector_p, vector_p
    ]
    lib.indirect_projector_free.argtypes = [indirect_projector_p]
    lib.indirect_projector_generic_alloc.argtypes = [operator_p]

    lib.indirect_projector_alloc.restype = c_uint
    lib.indirect_projector_initialize.restype = c_uint
    lib.indirect_projector_project.restype = c_uint
    lib.indirect_projector_free.restype = c_uint
    lib.indirect_projector_generic_alloc.restype = projector_p
Example #4
0
def attach_prox_ctypes(lib, single_precision=False):
    if 'ok_float' not in lib.__dict__:
        attach_base_ctypes(lib, single_precision)

    ok_float = lib.ok_float

    # function struct
    class ok_function(Structure):
        _fields_ = [('h', c_uint), ('a', ok_float), ('b', ok_float),
                    ('c', ok_float), ('d', ok_float), ('e', ok_float)]

    lib.function = ok_function
    lib.function_p = POINTER(lib.function)

    # function vector struct
    class ok_function_vector(Structure):
        _fields_ = [('size', c_size_t), ('objectives', lib.function_p)]

    lib.function_vector = ok_function_vector
    lib.function_vector_p = POINTER(lib.function_vector)

    lib.function_enums = OKFunctionEnums()