# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _angka
else:
    import _angka

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


FALSE = _angka.FALSE
TRUE = _angka.TRUE
class AgxSlice(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    start = property(_angka.AgxSlice_start_get, _angka.AgxSlice_start_set)
    step = property(_angka.AgxSlice_step_get, _angka.AgxSlice_step_set)
    stop = property(_angka.AgxSlice_stop_get, _angka.AgxSlice_stop_set)

    def __init__(self):
        _angka.AgxSlice_swiginit(self, _angka.new_AgxSlice())
    __swig_destroy__ = _angka.delete_AgxSlice

# Register AgxSlice in _angka:
_angka.AgxSlice_swigregister(AgxSlice)


def agx_print_integer(val):
    return _angka.agx_print_integer(val)

def agx_print_double(val):
    return _angka.agx_print_double(val)

def agx_print_string(val):
    return _angka.agx_print_string(val)

def agx_string_length_integer(val):
    return _angka.agx_string_length_integer(val)

def agx_string_length_string(str):
    return _angka.agx_string_length_string(str)

def agx_string_length_double(val):
    return _angka.agx_string_length_double(val)

def agx_string_from_double_set(fmt, val):
    return _angka.agx_string_from_double_set(fmt, val)

def agx_string_from_integer(val):
    return _angka.agx_string_from_integer(val)

def agx_string_append_integer(target, val, isInitial):
    return _angka.agx_string_append_integer(target, val, isInitial)

def agx_string_from_double(val):
    return _angka.agx_string_from_double(val)

def agx_string_append_double(target, val, isInitial):
    return _angka.agx_string_append_double(target, val, isInitial)

def agx_print_values(*args):
    return _angka.agx_print_values(*args)

def agx_print_values_space(*args):
    return _angka.agx_print_values_space(*args)

def agx_print_values_new_line(*args):
    return _angka.agx_print_values_new_line(*args)

def agx_random(min, max):
    return _angka.agx_random(min, max)

def agx_data_delete(__ptr):
    return _angka.agx_data_delete(__ptr)
class AgxVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    p_r_nums = property(_angka.AgxVector_p_r_nums_get, _angka.AgxVector_p_r_nums_set)
    size = property(_angka.AgxVector_size_get, _angka.AgxVector_size_set)

    def __init__(self):
        _angka.AgxVector_swiginit(self, _angka.new_AgxVector())
    __swig_destroy__ = _angka.delete_AgxVector

# Register AgxVector in _angka:
_angka.AgxVector_swigregister(AgxVector)


def agx_vector_new(size):
    return _angka.agx_vector_new(size)

def agx_vector_set_item(vec, index, val):
    return _angka.agx_vector_set_item(vec, index, val)

def agx_vector_get_item(vec, index):
    return _angka.agx_vector_get_item(vec, index)

def agx_vector_to_string(vec, islong):
    return _angka.agx_vector_to_string(vec, islong)

def agx_vector_delete(vec):
    return _angka.agx_vector_delete(vec)

def agx_vector_new_random(size, min, max):
    return _angka.agx_vector_new_random(size, min, max)

def agx_vector_print(vec, islong):
    return _angka.agx_vector_print(vec, islong)

def agx_vector_append_value(vec, val):
    return _angka.agx_vector_append_value(vec, val)

def agx_vector_append_vector(vec_target, vec_another):
    return _angka.agx_vector_append_vector(vec_target, vec_another)

def agx_vector_print_partial(vec):
    return _angka.agx_vector_print_partial(vec)

def agx_vector_print_full(vec):
    return _angka.agx_vector_print_full(vec)

def agx_vector_add_by_value(vec, val):
    return _angka.agx_vector_add_by_value(vec, val)

def agx_vector_substract_by_value(vec, val):
    return _angka.agx_vector_substract_by_value(vec, val)

def agx_vector_multiply_by_value(vec, val):
    return _angka.agx_vector_multiply_by_value(vec, val)

def agx_vector_divide_by_value(vec, val):
    return _angka.agx_vector_divide_by_value(vec, val)

def agx_vector_change_elements_by_value(vec, val):
    return _angka.agx_vector_change_elements_by_value(vec, val)

def agx_vector_new_constant(size, val):
    return _angka.agx_vector_new_constant(size, val)

def agx_vector_new_duplicate_size(vec):
    return _angka.agx_vector_new_duplicate_size(vec)

def agx_vector_copy_elements(src, target):
    return _angka.agx_vector_copy_elements(src, target)

def agx_vector_new_copy(vec):
    return _angka.agx_vector_new_copy(vec)

def agx_vector_new_zero(size):
    return _angka.agx_vector_new_zero(size)

def agx_vector_new_linspace(min, max, size):
    return _angka.agx_vector_new_linspace(min, max, size)

def agx_vector_new_arange(min, step, max):
    return _angka.agx_vector_new_arange(min, step, max)

def agx_vector_new_arange_double(min, step, max):
    return _angka.agx_vector_new_arange_double(min, step, max)

def agx_vector_min(vec):
    return _angka.agx_vector_min(vec)

def agx_vector_max(vec):
    return _angka.agx_vector_max(vec)

def agx_vector_new_values(*args):
    return _angka.agx_vector_new_values(*args)

def agx_vector_input_function(vec, function):
    return _angka.agx_vector_input_function(vec, function)

def agx_vector_sin(vec):
    return _angka.agx_vector_sin(vec)

def agx_sin(val):
    return _angka.agx_sin(val)

def agx_vector_isexist(vec, idx1, idx2, val):
    return _angka.agx_vector_isexist(vec, idx1, idx2, val)

def agx_vector_sort(vec):
    return _angka.agx_vector_sort(vec)
class AgxMatrix(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    p_r_nums = property(_angka.AgxMatrix_p_r_nums_get, _angka.AgxMatrix_p_r_nums_set)
    r_shape = property(_angka.AgxMatrix_r_shape_get, _angka.AgxMatrix_r_shape_set)
    size = property(_angka.AgxMatrix_size_get, _angka.AgxMatrix_size_set)

    def __init__(self):
        _angka.AgxMatrix_swiginit(self, _angka.new_AgxMatrix())
    __swig_destroy__ = _angka.delete_AgxMatrix

# Register AgxMatrix in _angka:
_angka.AgxMatrix_swigregister(AgxMatrix)


def agx_matrix_new(row, column):
    return _angka.agx_matrix_new(row, column)

def agx_matrix_delete(mat):
    return _angka.agx_matrix_delete(mat)

def agx_matrix_change_elements_by_value(mat, val):
    return _angka.agx_matrix_change_elements_by_value(mat, val)

def agx_matrix_new_constant(row, column, val):
    return _angka.agx_matrix_new_constant(row, column, val)

def agx_matrix_new_random(row, column, min, max):
    return _angka.agx_matrix_new_random(row, column, min, max)

def agx_matrix_row_col_to_index(mat, row, col):
    return _angka.agx_matrix_row_col_to_index(mat, row, col)

def agx_matrix_set_item(mat, row, col, val):
    return _angka.agx_matrix_set_item(mat, row, col, val)

def agx_matrix_get_item(mat, row, col):
    return _angka.agx_matrix_get_item(mat, row, col)

def agx_matrix_to_string(mat, islong):
    return _angka.agx_matrix_to_string(mat, islong)

def agx_matrix_print(mat, islong):
    return _angka.agx_matrix_print(mat, islong)

def agx_matrix_print_partial(mat):
    return _angka.agx_matrix_print_partial(mat)

def agx_matrix_print_full(mat):
    return _angka.agx_matrix_print_full(mat)

def agx_matrix_add_by_value(mat, val):
    return _angka.agx_matrix_add_by_value(mat, val)

def agx_matrix_substract_by_value(mat, val):
    return _angka.agx_matrix_substract_by_value(mat, val)

def agx_matrix_multiply_by_value(mat, val):
    return _angka.agx_matrix_multiply_by_value(mat, val)

def agx_matrix_divide_by_value(mat, val):
    return _angka.agx_matrix_divide_by_value(mat, val)

def agx_matrix_new_duplicate_size(mat):
    return _angka.agx_matrix_new_duplicate_size(mat)

def agx_matrix_copy_elements(src, target):
    return _angka.agx_matrix_copy_elements(src, target)

def agx_matrix_copy_shape(src, target):
    return _angka.agx_matrix_copy_shape(src, target)

def agx_matrix_transpose(mat):
    return _angka.agx_matrix_transpose(mat)

def agx_matrix_new_copy(mat):
    return _angka.agx_matrix_new_copy(mat)

def agx_matrix_new_from_vector(vec):
    return _angka.agx_matrix_new_from_vector(vec)

def agx_matrix_new_identity(size):
    return _angka.agx_matrix_new_identity(size)

def agx_matrix_new_zero(row, col):
    return _angka.agx_matrix_new_zero(row, col)

def agx_matrix_new_multiplication(mat1, mat2):
    return _angka.agx_matrix_new_multiplication(mat1, mat2)

def agx_vector_new_from_matrix(mat):
    return _angka.agx_vector_new_from_matrix(mat)

def agx_matrix_new_extract_column(mat, col):
    return _angka.agx_matrix_new_extract_column(mat, col)

def agx_matrix_new_extract_row(mat, row):
    return _angka.agx_matrix_new_extract_row(mat, row)

def agx_matrix_new_extract_row_col(mat, row1, row2, col1, col2):
    return _angka.agx_matrix_new_extract_row_col(mat, row1, row2, col1, col2)

def agx_matrix_min(mat):
    return _angka.agx_matrix_min(mat)

def agx_matrix_max(mat):
    return _angka.agx_matrix_max(mat)
VRGB = _angka.VRGB
AGV_PLOT = _angka.AGV_PLOT
AGV_SCATTER = _angka.AGV_SCATTER
AGV_IMAGE = _angka.AGV_IMAGE
AGV_CONTOUR = _angka.AGV_CONTOUR
class AgxColor(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    r = property(_angka.AgxColor_r_get, _angka.AgxColor_r_set)
    g = property(_angka.AgxColor_g_get, _angka.AgxColor_g_set)
    b = property(_angka.AgxColor_b_get, _angka.AgxColor_b_set)
    a = property(_angka.AgxColor_a_get, _angka.AgxColor_a_set)
    val = property(_angka.AgxColor_val_get, _angka.AgxColor_val_set)
    size = property(_angka.AgxColor_size_get, _angka.AgxColor_size_set)

    def __init__(self):
        _angka.AgxColor_swiginit(self, _angka.new_AgxColor())
    __swig_destroy__ = _angka.delete_AgxColor

# Register AgxColor in _angka:
_angka.AgxColor_swigregister(AgxColor)

class AgxPlotData(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    vecx = property(_angka.AgxPlotData_vecx_get, _angka.AgxPlotData_vecx_set)
    vecy = property(_angka.AgxPlotData_vecy_get, _angka.AgxPlotData_vecy_set)

    def __init__(self):
        _angka.AgxPlotData_swiginit(self, _angka.new_AgxPlotData())
    __swig_destroy__ = _angka.delete_AgxPlotData

# Register AgxPlotData in _angka:
_angka.AgxPlotData_swigregister(AgxPlotData)

class AgxCoordDouble(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_angka.AgxCoordDouble_x_get, _angka.AgxCoordDouble_x_set)
    y = property(_angka.AgxCoordDouble_y_get, _angka.AgxCoordDouble_y_set)

    def __init__(self):
        _angka.AgxCoordDouble_swiginit(self, _angka.new_AgxCoordDouble())
    __swig_destroy__ = _angka.delete_AgxCoordDouble

# Register AgxCoordDouble in _angka:
_angka.AgxCoordDouble_swigregister(AgxCoordDouble)

class AgxCoordInt(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_angka.AgxCoordInt_x_get, _angka.AgxCoordInt_x_set)
    y = property(_angka.AgxCoordInt_y_get, _angka.AgxCoordInt_y_set)

    def __init__(self):
        _angka.AgxCoordInt_swiginit(self, _angka.new_AgxCoordInt())
    __swig_destroy__ = _angka.delete_AgxCoordInt

# Register AgxCoordInt in _angka:
_angka.AgxCoordInt_swigregister(AgxCoordInt)

class AgvCanvas(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    p_r_type = property(_angka.AgvCanvas_p_r_type_get, _angka.AgvCanvas_p_r_type_set)
    p_r_linewidth = property(_angka.AgvCanvas_p_r_linewidth_get, _angka.AgvCanvas_p_r_linewidth_set)
    p_r_radius = property(_angka.AgvCanvas_p_r_radius_get, _angka.AgvCanvas_p_r_radius_set)
    row = property(_angka.AgvCanvas_row_get, _angka.AgvCanvas_row_set)
    col = property(_angka.AgvCanvas_col_get, _angka.AgvCanvas_col_set)
    index = property(_angka.AgvCanvas_index_get, _angka.AgvCanvas_index_set)
    grid = property(_angka.AgvCanvas_grid_get, _angka.AgvCanvas_grid_set)
    min = property(_angka.AgvCanvas_min_get, _angka.AgvCanvas_min_set)
    max = property(_angka.AgvCanvas_max_get, _angka.AgvCanvas_max_set)
    p_r_vecx = property(_angka.AgvCanvas_p_r_vecx_get, _angka.AgvCanvas_p_r_vecx_set)
    p_r_vecy = property(_angka.AgvCanvas_p_r_vecy_get, _angka.AgvCanvas_p_r_vecy_set)
    p_r_mat = property(_angka.AgvCanvas_p_r_mat_get, _angka.AgvCanvas_p_r_mat_set)
    p_r_color = property(_angka.AgvCanvas_p_r_color_get, _angka.AgvCanvas_p_r_color_set)
    p_r_color_outside = property(_angka.AgvCanvas_p_r_color_outside_get, _angka.AgvCanvas_p_r_color_outside_set)
    p_r_color_pallete = property(_angka.AgvCanvas_p_r_color_pallete_get, _angka.AgvCanvas_p_r_color_pallete_set)
    numOfVec = property(_angka.AgvCanvas_numOfVec_get, _angka.AgvCanvas_numOfVec_set)

    def __init__(self):
        _angka.AgvCanvas_swiginit(self, _angka.new_AgvCanvas())
    __swig_destroy__ = _angka.delete_AgvCanvas

# Register AgvCanvas in _angka:
_angka.AgvCanvas_swigregister(AgvCanvas)

class AgvFigure(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    row = property(_angka.AgvFigure_row_get, _angka.AgvFigure_row_set)
    col = property(_angka.AgvFigure_col_get, _angka.AgvFigure_col_set)
    size = property(_angka.AgvFigure_size_get, _angka.AgvFigure_size_set)
    p_r_canvas = property(_angka.AgvFigure_p_r_canvas_get, _angka.AgvFigure_p_r_canvas_set)

    def __init__(self):
        _angka.AgvFigure_swiginit(self, _angka.new_AgvFigure())
    __swig_destroy__ = _angka.delete_AgvFigure

# Register AgvFigure in _angka:
_angka.AgvFigure_swigregister(AgvFigure)


def agv_color_pallete_set(clr, index, r, g, b, a, val):
    return _angka.agv_color_pallete_set(clr, index, r, g, b, a, val)

def agv_figure_new(row, col):
    return _angka.agv_figure_new(row, col)

def agv_figure_delete(fig):
    return _angka.agv_figure_delete(fig)

def agv_subplots(row, col):
    return _angka.agv_subplots(row, col)

def agv_set_canvas(fig, index):
    return _angka.agv_set_canvas(fig, index)

def agv_plot(can, vecx, vecy):
    return _angka.agv_plot(can, vecx, vecy)

def agv_scatter(can, vecx, vecy):
    return _angka.agv_scatter(can, vecx, vecy)

def agv_imshow(can, mat):
    return _angka.agv_imshow(can, mat)

def agv_color_pallete_canvas_set_size(can, line, size):
    return _angka.agv_color_pallete_canvas_set_size(can, line, size)

def agv_xlim(can, min, max):
    return _angka.agv_xlim(can, min, max)

def agv_ylim(can, min, max):
    return _angka.agv_ylim(can, min, max)

def agv_show(fig):
    return _angka.agv_show(fig)

def agv_set_color_alpha(can, line, red, green, blue, alpha):
    return _angka.agv_set_color_alpha(can, line, red, green, blue, alpha)

def agv_set_color_alpha_line(can, line, red, green, blue, alpha):
    return _angka.agv_set_color_alpha_line(can, line, red, green, blue, alpha)

def agv_set_radius(can, line, radius):
    return _angka.agv_set_radius(can, line, radius)

def agv_set_linewidth(can, line, linewidth):
    return _angka.agv_set_linewidth(can, line, linewidth)

def agv_set_grid(can, boolean):
    return _angka.agv_set_grid(can, boolean)


