# 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 _solver
else:
    import _solver

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__)


import astrometry.util.util
class verify_field_t(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    field = property(_solver.verify_field_t_field_get, _solver.verify_field_t_field_set)
    xy = property(_solver.verify_field_t_xy_get, _solver.verify_field_t_xy_set)
    fieldcopy = property(_solver.verify_field_t_fieldcopy_get, _solver.verify_field_t_fieldcopy_set)
    ftree = property(_solver.verify_field_t_ftree_get, _solver.verify_field_t_ftree_set)
    do_uniformize = property(_solver.verify_field_t_do_uniformize_get, _solver.verify_field_t_do_uniformize_set)
    do_dedup = property(_solver.verify_field_t_do_dedup_get, _solver.verify_field_t_do_dedup_set)
    do_ror = property(_solver.verify_field_t_do_ror_get, _solver.verify_field_t_do_ror_set)

    def __init__(self):
        _solver.verify_field_t_swiginit(self, _solver.new_verify_field_t())
    __swig_destroy__ = _solver.delete_verify_field_t

# Register verify_field_t in _solver:
_solver.verify_field_t_swigregister(verify_field_t)


def verify_field_preprocess(fieldxy):
    return _solver.verify_field_preprocess(fieldxy)

def verify_field_free(vf):
    return _solver.verify_field_free(vf)

def verify_count_hits(theta, besti, p_nmatch, p_nconflict, p_ndistractor):
    return _solver.verify_count_hits(theta, besti, p_nmatch, p_nconflict, p_ndistractor)

def verify_wcs(skdt, index_cutnside, sip, vf, verify_pix2, distractors, fieldW, fieldH, logratio_tobail, logratio_toaccept, logratio_tostoplooking, logodds, nfield, nindex, nmatch, nconflict, ndistractor):
    return _solver.verify_wcs(skdt, index_cutnside, sip, vf, verify_pix2, distractors, fieldW, fieldH, logratio_tobail, logratio_toaccept, logratio_tostoplooking, logodds, nfield, nindex, nmatch, nconflict, ndistractor)

def verify_hit(skdt, index_cutnside, mo, sip, vf, verify_pix2, distractors, fieldW, fieldH, logratio_tobail, logratio_toaccept, logratio_tostoplooking, distance_from_quad_bonus, fake_match):
    return _solver.verify_hit(skdt, index_cutnside, mo, sip, vf, verify_pix2, distractors, fieldW, fieldH, logratio_tobail, logratio_toaccept, logratio_tostoplooking, distance_from_quad_bonus, fake_match)
THETA_DISTRACTOR = _solver.THETA_DISTRACTOR
THETA_CONFLICT = _solver.THETA_CONFLICT
THETA_FILTERED = _solver.THETA_FILTERED
THETA_BAILEDOUT = _solver.THETA_BAILEDOUT
THETA_STOPPEDLOOKING = _solver.THETA_STOPPEDLOOKING

def verify_star_lists(refxys, NR, testxys, testsigma2s, NT, effective_area, distractors, logodds_bail, logodds_accept, p_besti, p_all_logodds, p_theta, p_worstlogodds, p_testperm):
    return _solver.verify_star_lists(refxys, NR, testxys, testsigma2s, NT, effective_area, distractors, logodds_bail, logodds_accept, p_besti, p_all_logodds, p_theta, p_worstlogodds, p_testperm)

def verify_get_uniformize_scale(cutnside, scale, W, H, uni_nw, uni_nh):
    return _solver.verify_get_uniformize_scale(cutnside, scale, W, H, uni_nw, uni_nh)

def verify_uniformize_field(xy, perm, N, fieldW, fieldH, nw, nh, p_bincounts, p_binids):
    return _solver.verify_uniformize_field(xy, perm, N, fieldW, fieldH, nw, nh, p_bincounts, p_binids)

def verify_uniformize_bin_centers(fieldW, fieldH, nw, nh):
    return _solver.verify_uniformize_bin_centers(fieldW, fieldH, nw, nh)

def verify_get_quad_center(vf, mo, centerpix, quadr2):
    return _solver.verify_get_quad_center(vf, mo, centerpix, quadr2)

def verify_get_index_stars(fieldcenter, fieldr2, skdt, sip, tan, fieldW, fieldH, p_indexradec, p_indexpix, p_starids, p_nindex):
    return _solver.verify_get_index_stars(fieldcenter, fieldr2, skdt, sip, tan, fieldW, fieldH, p_indexradec, p_indexpix, p_starids, p_nindex)

def verify_logodds_to_weight(lodds):
    return _solver.verify_logodds_to_weight(lodds)

def verify_free_matchobj(mo):
    return _solver.verify_free_matchobj(mo)

def verify_matchobj_deep_copy(mo, dest):
    return _solver.verify_matchobj_deep_copy(mo, dest)

def verify_get_ror2(Q2, area, distractors, NR, pix2):
    return _solver.verify_get_ror2(Q2, area, distractors, NR, pix2)

def verify_star_lists_ror(refxys, NR, testxys, testsigma2s, NT, pix2, gamma, qc, Q2, W, H, distractors, logodds_bail, logodds_stoplooking, p_besti, p_all_logodds, p_theta, p_worstlogodds, p_testperm, p_refperm):
    return _solver.verify_star_lists_ror(refxys, NR, testxys, testsigma2s, NT, pix2, gamma, qc, Q2, W, H, distractors, logodds_bail, logodds_stoplooking, p_besti, p_all_logodds, p_theta, p_worstlogodds, p_testperm, p_refperm)

def verify_star_lists_np(pyrefxy, pytestxy, pytestsig2, effective_area, distractors, logodds_bail, logodds_accept):
    return _solver.verify_star_lists_np(pyrefxy, pytestxy, pytestsig2, effective_area, distractors, logodds_bail, logodds_accept)


