# This file was automatically generated by SWIG (http://www.swig.org).
# Version 2.0.4
#
# 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
if version_info >= (2,6,0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_util', [dirname(__file__)])
        except ImportError:
            import _util
            return _util
        if fp is not None:
            try:
                _mod = imp.load_module('_util', fp, pathname, description)
            finally:
                fp.close()
            return _mod
    _util = swig_import_helper()
    del swig_import_helper
else:
    import _util
del version_info
try:
    _swig_property = property
except NameError:
    pass # Python < 2.2 doesn't have 'property'.
def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
    if (name == "thisown"): return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name,None)
    if method: return method(self,value)
    if (not static):
        self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)

def _swig_setattr(self,class_type,name,value):
    return _swig_setattr_nondynamic(self,class_type,name,value,0)

def _swig_getattr(self,class_type,name):
    if (name == "thisown"): return self.this.own()
    method = class_type.__swig_getmethods__.get(name,None)
    if method: return method(self)
    raise AttributeError(name)

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

try:
    _object = object
    _newclass = 1
except AttributeError:
    class _object : pass
    _newclass = 0



def log_init(*args):
  return _util.log_init(*args)
log_init = _util.log_init

def log_get_level():
  return _util.log_get_level()
log_get_level = _util.log_get_level

def log_set_level(*args):
  return _util.log_set_level(*args)
log_set_level = _util.log_set_level
class coadd_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, coadd_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, coadd_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["img"] = _util.coadd_t_img_set
    __swig_getmethods__["img"] = _util.coadd_t_img_get
    if _newclass:img = _swig_property(_util.coadd_t_img_get, _util.coadd_t_img_set)
    __swig_setmethods__["weight"] = _util.coadd_t_weight_set
    __swig_getmethods__["weight"] = _util.coadd_t_weight_get
    if _newclass:weight = _swig_property(_util.coadd_t_weight_get, _util.coadd_t_weight_set)
    __swig_setmethods__["W"] = _util.coadd_t_W_set
    __swig_getmethods__["W"] = _util.coadd_t_W_get
    if _newclass:W = _swig_property(_util.coadd_t_W_get, _util.coadd_t_W_set)
    __swig_setmethods__["H"] = _util.coadd_t_H_set
    __swig_getmethods__["H"] = _util.coadd_t_H_get
    if _newclass:H = _swig_property(_util.coadd_t_H_get, _util.coadd_t_H_set)
    __swig_setmethods__["wcs"] = _util.coadd_t_wcs_set
    __swig_getmethods__["wcs"] = _util.coadd_t_wcs_get
    if _newclass:wcs = _swig_property(_util.coadd_t_wcs_get, _util.coadd_t_wcs_set)
    __swig_setmethods__["resample_func"] = _util.coadd_t_resample_func_set
    __swig_getmethods__["resample_func"] = _util.coadd_t_resample_func_get
    if _newclass:resample_func = _swig_property(_util.coadd_t_resample_func_get, _util.coadd_t_resample_func_set)
    __swig_setmethods__["resample_token"] = _util.coadd_t_resample_token_set
    __swig_getmethods__["resample_token"] = _util.coadd_t_resample_token_get
    if _newclass:resample_token = _swig_property(_util.coadd_t_resample_token_get, _util.coadd_t_resample_token_set)
    def __init__(self): 
        this = _util.new_coadd_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _util.delete_coadd_t
    __del__ = lambda self : None;
coadd_t_swigregister = _util.coadd_t_swigregister
coadd_t_swigregister(coadd_t)


def coadd_new(*args):
  return _util.coadd_new(*args)
coadd_new = _util.coadd_new

def coadd_new_from_wcs(*args):
  return _util.coadd_new_from_wcs(*args)
coadd_new_from_wcs = _util.coadd_new_from_wcs

def coadd_set_lanczos(*args):
  return _util.coadd_set_lanczos(*args)
coadd_set_lanczos = _util.coadd_set_lanczos

def coadd_add_image(*args):
  return _util.coadd_add_image(*args)
coadd_add_image = _util.coadd_add_image

def coadd_divide_by_weight(*args):
  return _util.coadd_divide_by_weight(*args)
coadd_divide_by_weight = _util.coadd_divide_by_weight

def coadd_get_snapshot(*args):
  return _util.coadd_get_snapshot(*args)
coadd_get_snapshot = _util.coadd_get_snapshot

def coadd_free(*args):
  return _util.coadd_free(*args)
coadd_free = _util.coadd_free

def coadd_debug(*args):
  return _util.coadd_debug(*args)
coadd_debug = _util.coadd_debug

def coadd_create_weight_image_from_range(*args):
  return _util.coadd_create_weight_image_from_range(*args)
coadd_create_weight_image_from_range = _util.coadd_create_weight_image_from_range

def coadd_weight_image_mask_value(*args):
  return _util.coadd_weight_image_mask_value(*args)
coadd_weight_image_mask_value = _util.coadd_weight_image_mask_value
class lanczos_args_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, lanczos_args_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, lanczos_args_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["order"] = _util.lanczos_args_t_order_set
    __swig_getmethods__["order"] = _util.lanczos_args_t_order_get
    if _newclass:order = _swig_property(_util.lanczos_args_t_order_get, _util.lanczos_args_t_order_set)
    __swig_setmethods__["weighted"] = _util.lanczos_args_t_weighted_set
    __swig_getmethods__["weighted"] = _util.lanczos_args_t_weighted_get
    if _newclass:weighted = _swig_property(_util.lanczos_args_t_weighted_get, _util.lanczos_args_t_weighted_set)
    def __init__(self): 
        this = _util.new_lanczos_args_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _util.delete_lanczos_args_t
    __del__ = lambda self : None;
lanczos_args_t_swigregister = _util.lanczos_args_t_swigregister
lanczos_args_t_swigregister(lanczos_args_t)


def lanczos(*args):
  return _util.lanczos(*args)
lanczos = _util.lanczos

def nearest_resample_f(*args):
  return _util.nearest_resample_f(*args)
nearest_resample_f = _util.nearest_resample_f

def lanczos_resample_f(*args):
  return _util.lanczos_resample_f(*args)
lanczos_resample_f = _util.lanczos_resample_f

def lanczos_resample_unw_sep_f(*args):
  return _util.lanczos_resample_unw_sep_f(*args)
lanczos_resample_unw_sep_f = _util.lanczos_resample_unw_sep_f

def nearest_resample_d(*args):
  return _util.nearest_resample_d(*args)
nearest_resample_d = _util.nearest_resample_d

def lanczos_resample_d(*args):
  return _util.lanczos_resample_d(*args)
lanczos_resample_d = _util.lanczos_resample_d
TRUE = _util.TRUE
FALSE = _util.FALSE

def print_array(*args):
  return _util.print_array(*args)
print_array = _util.print_array

def flat_median_f(*args):
  return _util.flat_median_f(*args)
flat_median_f = _util.flat_median_f

def median_smooth(*args):
  return _util.median_smooth(*args)
median_smooth = _util.median_smooth
L = _util.L

def lanczos5_interpolate(*args):
  return _util.lanczos5_interpolate(*args)
lanczos5_interpolate = _util.lanczos5_interpolate

def lanczos3_interpolate(*args):
  return _util.lanczos3_interpolate(*args)
lanczos3_interpolate = _util.lanczos3_interpolate

def lanczos3_filter(*args):
  return _util.lanczos3_filter(*args)
lanczos3_filter = _util.lanczos3_filter

def lanczos3_filter_table(*args):
  return _util.lanczos3_filter_table(*args)
lanczos3_filter_table = _util.lanczos3_filter_table

def lanczos_shift_image_c(*args):
  return _util.lanczos_shift_image_c(*args)
lanczos_shift_image_c = _util.lanczos_shift_image_c
def lanczos_shift_image(img, dx, dy, order=3, weight=None,
                        outimg=None, outweight=None):
    img = img.astype(float)
    if weight is not None:
        weight = weight.astype(float)
        assert(img.shape == weight.shape)
    if outimg is None:
        outimg = np.zeros_like(img)
    if outweight is not None:
        assert(outweight.shape == img.shape)

    # print 'outweight:', outweight

    lanczos_shift_image_c(img, weight, outimg, outweight, order, dx, dy)
    if outweight is None:
        return outimg
    return outimg,outweight
    
DEFAULT_INDEX_JITTER = _util.DEFAULT_INDEX_JITTER
class index_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, index_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, index_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["codekd"] = _util.index_t_codekd_set
    __swig_getmethods__["codekd"] = _util.index_t_codekd_get
    if _newclass:codekd = _swig_property(_util.index_t_codekd_get, _util.index_t_codekd_set)
    __swig_setmethods__["quads"] = _util.index_t_quads_set
    __swig_getmethods__["quads"] = _util.index_t_quads_get
    if _newclass:quads = _swig_property(_util.index_t_quads_get, _util.index_t_quads_set)
    __swig_setmethods__["starkd"] = _util.index_t_starkd_set
    __swig_getmethods__["starkd"] = _util.index_t_starkd_get
    if _newclass:starkd = _swig_property(_util.index_t_starkd_get, _util.index_t_starkd_set)
    __swig_setmethods__["fits"] = _util.index_t_fits_set
    __swig_getmethods__["fits"] = _util.index_t_fits_get
    if _newclass:fits = _swig_property(_util.index_t_fits_get, _util.index_t_fits_set)
    __swig_setmethods__["indexname"] = _util.index_t_indexname_set
    __swig_getmethods__["indexname"] = _util.index_t_indexname_get
    if _newclass:indexname = _swig_property(_util.index_t_indexname_get, _util.index_t_indexname_set)
    __swig_setmethods__["indexid"] = _util.index_t_indexid_set
    __swig_getmethods__["indexid"] = _util.index_t_indexid_get
    if _newclass:indexid = _swig_property(_util.index_t_indexid_get, _util.index_t_indexid_set)
    __swig_setmethods__["healpix"] = _util.index_t_healpix_set
    __swig_getmethods__["healpix"] = _util.index_t_healpix_get
    if _newclass:healpix = _swig_property(_util.index_t_healpix_get, _util.index_t_healpix_set)
    __swig_setmethods__["hpnside"] = _util.index_t_hpnside_set
    __swig_getmethods__["hpnside"] = _util.index_t_hpnside_get
    if _newclass:hpnside = _swig_property(_util.index_t_hpnside_get, _util.index_t_hpnside_set)
    __swig_setmethods__["index_jitter"] = _util.index_t_index_jitter_set
    __swig_getmethods__["index_jitter"] = _util.index_t_index_jitter_get
    if _newclass:index_jitter = _swig_property(_util.index_t_index_jitter_get, _util.index_t_index_jitter_set)
    __swig_setmethods__["cutnside"] = _util.index_t_cutnside_set
    __swig_getmethods__["cutnside"] = _util.index_t_cutnside_get
    if _newclass:cutnside = _swig_property(_util.index_t_cutnside_get, _util.index_t_cutnside_set)
    __swig_setmethods__["cutnsweep"] = _util.index_t_cutnsweep_set
    __swig_getmethods__["cutnsweep"] = _util.index_t_cutnsweep_get
    if _newclass:cutnsweep = _swig_property(_util.index_t_cutnsweep_get, _util.index_t_cutnsweep_set)
    __swig_setmethods__["cutdedup"] = _util.index_t_cutdedup_set
    __swig_getmethods__["cutdedup"] = _util.index_t_cutdedup_get
    if _newclass:cutdedup = _swig_property(_util.index_t_cutdedup_get, _util.index_t_cutdedup_set)
    __swig_setmethods__["cutband"] = _util.index_t_cutband_set
    __swig_getmethods__["cutband"] = _util.index_t_cutband_get
    if _newclass:cutband = _swig_property(_util.index_t_cutband_get, _util.index_t_cutband_set)
    __swig_setmethods__["cutmargin"] = _util.index_t_cutmargin_set
    __swig_getmethods__["cutmargin"] = _util.index_t_cutmargin_get
    if _newclass:cutmargin = _swig_property(_util.index_t_cutmargin_get, _util.index_t_cutmargin_set)
    __swig_setmethods__["circle"] = _util.index_t_circle_set
    __swig_getmethods__["circle"] = _util.index_t_circle_get
    if _newclass:circle = _swig_property(_util.index_t_circle_get, _util.index_t_circle_set)
    __swig_setmethods__["cx_less_than_dx"] = _util.index_t_cx_less_than_dx_set
    __swig_getmethods__["cx_less_than_dx"] = _util.index_t_cx_less_than_dx_get
    if _newclass:cx_less_than_dx = _swig_property(_util.index_t_cx_less_than_dx_get, _util.index_t_cx_less_than_dx_set)
    __swig_setmethods__["meanx_less_than_half"] = _util.index_t_meanx_less_than_half_set
    __swig_getmethods__["meanx_less_than_half"] = _util.index_t_meanx_less_than_half_get
    if _newclass:meanx_less_than_half = _swig_property(_util.index_t_meanx_less_than_half_get, _util.index_t_meanx_less_than_half_set)
    __swig_setmethods__["index_scale_upper"] = _util.index_t_index_scale_upper_set
    __swig_getmethods__["index_scale_upper"] = _util.index_t_index_scale_upper_get
    if _newclass:index_scale_upper = _swig_property(_util.index_t_index_scale_upper_get, _util.index_t_index_scale_upper_set)
    __swig_setmethods__["index_scale_lower"] = _util.index_t_index_scale_lower_set
    __swig_getmethods__["index_scale_lower"] = _util.index_t_index_scale_lower_get
    if _newclass:index_scale_lower = _swig_property(_util.index_t_index_scale_lower_get, _util.index_t_index_scale_lower_set)
    __swig_setmethods__["dimquads"] = _util.index_t_dimquads_set
    __swig_getmethods__["dimquads"] = _util.index_t_dimquads_get
    if _newclass:dimquads = _swig_property(_util.index_t_dimquads_get, _util.index_t_dimquads_set)
    __swig_setmethods__["nstars"] = _util.index_t_nstars_set
    __swig_getmethods__["nstars"] = _util.index_t_nstars_get
    if _newclass:nstars = _swig_property(_util.index_t_nstars_get, _util.index_t_nstars_set)
    __swig_setmethods__["nquads"] = _util.index_t_nquads_set
    __swig_getmethods__["nquads"] = _util.index_t_nquads_get
    if _newclass:nquads = _swig_property(_util.index_t_nquads_get, _util.index_t_nquads_set)
    def __init__(self): 
        this = _util.new_index_t()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _util.delete_index_t
    __del__ = lambda self : None;
index_t_swigregister = _util.index_t_swigregister
index_t_swigregister(index_t)


def index_dimquads(*args):
  return _util.index_dimquads(*args)
index_dimquads = _util.index_dimquads

def index_overlaps_scale_range(*args):
  return _util.index_overlaps_scale_range(*args)
index_overlaps_scale_range = _util.index_overlaps_scale_range

def index_is_within_range(*args):
  return _util.index_is_within_range(*args)
index_is_within_range = _util.index_is_within_range

def index_get_meta(*args):
  return _util.index_get_meta(*args)
index_get_meta = _util.index_get_meta

def index_is_file_index(*args):
  return _util.index_is_file_index(*args)
index_is_file_index = _util.index_is_file_index

def index_get_quad_filename(*args):
  return _util.index_get_quad_filename(*args)
index_get_quad_filename = _util.index_get_quad_filename

def index_get_qidx_filename(*args):
  return _util.index_get_qidx_filename(*args)
index_get_qidx_filename = _util.index_get_qidx_filename
INDEX_ONLY_LOAD_METADATA = _util.INDEX_ONLY_LOAD_METADATA

def index_get_quad_dim(*args):
  return _util.index_get_quad_dim(*args)
index_get_quad_dim = _util.index_get_quad_dim

def index_get_code_dim(*args):
  return _util.index_get_code_dim(*args)
index_get_code_dim = _util.index_get_code_dim

def index_nquads(*args):
  return _util.index_nquads(*args)
index_nquads = _util.index_nquads

def index_nstars(*args):
  return _util.index_nstars(*args)
index_nstars = _util.index_nstars

def index_build_from(*args):
  return _util.index_build_from(*args)
index_build_from = _util.index_build_from

def index_load(*args):
  return _util.index_load(*args)
index_load = _util.index_load

def index_unload(*args):
  return _util.index_unload(*args)
index_unload = _util.index_unload

def index_reload(*args):
  return _util.index_reload(*args)
index_reload = _util.index_reload

def index_close_fds(*args):
  return _util.index_close_fds(*args)
index_close_fds = _util.index_close_fds

def index_close(*args):
  return _util.index_close(*args)
index_close = _util.index_close

def index_free(*args):
  return _util.index_free(*args)
index_free = _util.index_free

def index_get_missing_cut_params(*args):
  return _util.index_get_missing_cut_params(*args)
index_get_missing_cut_params = _util.index_get_missing_cut_params
class quadfile(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, quadfile, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, quadfile, name)
    __repr__ = _swig_repr
    __swig_setmethods__["numquads"] = _util.quadfile_numquads_set
    __swig_getmethods__["numquads"] = _util.quadfile_numquads_get
    if _newclass:numquads = _swig_property(_util.quadfile_numquads_get, _util.quadfile_numquads_set)
    __swig_setmethods__["numstars"] = _util.quadfile_numstars_set
    __swig_getmethods__["numstars"] = _util.quadfile_numstars_get
    if _newclass:numstars = _swig_property(_util.quadfile_numstars_get, _util.quadfile_numstars_set)
    __swig_setmethods__["dimquads"] = _util.quadfile_dimquads_set
    __swig_getmethods__["dimquads"] = _util.quadfile_dimquads_get
    if _newclass:dimquads = _swig_property(_util.quadfile_dimquads_get, _util.quadfile_dimquads_set)
    __swig_setmethods__["index_scale_upper"] = _util.quadfile_index_scale_upper_set
    __swig_getmethods__["index_scale_upper"] = _util.quadfile_index_scale_upper_get
    if _newclass:index_scale_upper = _swig_property(_util.quadfile_index_scale_upper_get, _util.quadfile_index_scale_upper_set)
    __swig_setmethods__["index_scale_lower"] = _util.quadfile_index_scale_lower_set
    __swig_getmethods__["index_scale_lower"] = _util.quadfile_index_scale_lower_get
    if _newclass:index_scale_lower = _swig_property(_util.quadfile_index_scale_lower_get, _util.quadfile_index_scale_lower_set)
    __swig_setmethods__["indexid"] = _util.quadfile_indexid_set
    __swig_getmethods__["indexid"] = _util.quadfile_indexid_get
    if _newclass:indexid = _swig_property(_util.quadfile_indexid_get, _util.quadfile_indexid_set)
    __swig_setmethods__["healpix"] = _util.quadfile_healpix_set
    __swig_getmethods__["healpix"] = _util.quadfile_healpix_get
    if _newclass:healpix = _swig_property(_util.quadfile_healpix_get, _util.quadfile_healpix_set)
    __swig_setmethods__["hpnside"] = _util.quadfile_hpnside_set
    __swig_getmethods__["hpnside"] = _util.quadfile_hpnside_get
    if _newclass:hpnside = _swig_property(_util.quadfile_hpnside_get, _util.quadfile_hpnside_set)
    __swig_setmethods__["fb"] = _util.quadfile_fb_set
    __swig_getmethods__["fb"] = _util.quadfile_fb_get
    if _newclass:fb = _swig_property(_util.quadfile_fb_get, _util.quadfile_fb_set)
    __swig_setmethods__["quadarray"] = _util.quadfile_quadarray_set
    __swig_getmethods__["quadarray"] = _util.quadfile_quadarray_get
    if _newclass:quadarray = _swig_property(_util.quadfile_quadarray_get, _util.quadfile_quadarray_set)
    def __init__(self): 
        this = _util.new_quadfile()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _util.delete_quadfile
    __del__ = lambda self : None;
quadfile_swigregister = _util.quadfile_swigregister
quadfile_swigregister(quadfile)


def quadfile_open(*args):
  return _util.quadfile_open(*args)
quadfile_open = _util.quadfile_open

def quadfile_open_fits(*args):
  return _util.quadfile_open_fits(*args)
quadfile_open_fits = _util.quadfile_open_fits

def quadfile_get_filename(*args):
  return _util.quadfile_get_filename(*args)
quadfile_get_filename = _util.quadfile_get_filename

def quadfile_open_for_writing(*args):
  return _util.quadfile_open_for_writing(*args)
quadfile_open_for_writing = _util.quadfile_open_for_writing

def quadfile_open_in_memory():
  return _util.quadfile_open_in_memory()
quadfile_open_in_memory = _util.quadfile_open_in_memory

def quadfile_switch_to_reading(*args):
  return _util.quadfile_switch_to_reading(*args)
quadfile_switch_to_reading = _util.quadfile_switch_to_reading

def quadfile_close(*args):
  return _util.quadfile_close(*args)
quadfile_close = _util.quadfile_close

def quadfile_check(*args):
  return _util.quadfile_check(*args)
quadfile_check = _util.quadfile_check

def quadfile_get_stars(*args):
  return _util.quadfile_get_stars(*args)
quadfile_get_stars = _util.quadfile_get_stars

def quadfile_write_quad(*args):
  return _util.quadfile_write_quad(*args)
quadfile_write_quad = _util.quadfile_write_quad

def quadfile_dimquads(*args):
  return _util.quadfile_dimquads(*args)
quadfile_dimquads = _util.quadfile_dimquads

def quadfile_nquads(*args):
  return _util.quadfile_nquads(*args)
quadfile_nquads = _util.quadfile_nquads

def quadfile_fix_header(*args):
  return _util.quadfile_fix_header(*args)
quadfile_fix_header = _util.quadfile_fix_header

def quadfile_write_header(*args):
  return _util.quadfile_write_header(*args)
quadfile_write_header = _util.quadfile_write_header

def quadfile_get_index_scale_upper_arcsec(*args):
  return _util.quadfile_get_index_scale_upper_arcsec(*args)
quadfile_get_index_scale_upper_arcsec = _util.quadfile_get_index_scale_upper_arcsec

def quadfile_get_index_scale_lower_arcsec(*args):
  return _util.quadfile_get_index_scale_lower_arcsec(*args)
quadfile_get_index_scale_lower_arcsec = _util.quadfile_get_index_scale_lower_arcsec

def quadfile_get_header(*args):
  return _util.quadfile_get_header(*args)
quadfile_get_header = _util.quadfile_get_header

def quadfile_write_header_to(*args):
  return _util.quadfile_write_header_to(*args)
quadfile_write_header_to = _util.quadfile_write_header_to

def quadfile_write_all_quads_to(*args):
  return _util.quadfile_write_all_quads_to(*args)
quadfile_write_all_quads_to = _util.quadfile_write_all_quads_to
AN_FILETYPE_CODETREE = _util.AN_FILETYPE_CODETREE
CODETREE_NAME = _util.CODETREE_NAME
class codetree(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, codetree, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, codetree, name)
    __repr__ = _swig_repr
    __swig_setmethods__["tree"] = _util.codetree_tree_set
    __swig_getmethods__["tree"] = _util.codetree_tree_get
    if _newclass:tree = _swig_property(_util.codetree_tree_get, _util.codetree_tree_set)
    __swig_setmethods__["header"] = _util.codetree_header_set
    __swig_getmethods__["header"] = _util.codetree_header_get
    if _newclass:header = _swig_property(_util.codetree_header_get, _util.codetree_header_set)
    __swig_setmethods__["inverse_perm"] = _util.codetree_inverse_perm_set
    __swig_getmethods__["inverse_perm"] = _util.codetree_inverse_perm_get
    if _newclass:inverse_perm = _swig_property(_util.codetree_inverse_perm_get, _util.codetree_inverse_perm_set)
    def __init__(self): 
        this = _util.new_codetree()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _util.delete_codetree
    __del__ = lambda self : None;
codetree_swigregister = _util.codetree_swigregister
codetree_swigregister(codetree)


def codetree_open(*args):
  return _util.codetree_open(*args)
codetree_open = _util.codetree_open

def codetree_open_fits(*args):
  return _util.codetree_open_fits(*args)
codetree_open_fits = _util.codetree_open_fits

def codetree_get(*args):
  return _util.codetree_get(*args)
codetree_get = _util.codetree_get

def codetree_N(*args):
  return _util.codetree_N(*args)
codetree_N = _util.codetree_N

def codetree_nodes(*args):
  return _util.codetree_nodes(*args)
codetree_nodes = _util.codetree_nodes

def codetree_D(*args):
  return _util.codetree_D(*args)
codetree_D = _util.codetree_D

def codetree_get_permuted(*args):
  return _util.codetree_get_permuted(*args)
codetree_get_permuted = _util.codetree_get_permuted

def codetree_header(*args):
  return _util.codetree_header(*args)
codetree_header = _util.codetree_header

def codetree_close(*args):
  return _util.codetree_close(*args)
codetree_close = _util.codetree_close

def codetree_new():
  return _util.codetree_new()
codetree_new = _util.codetree_new

def codetree_append_to(*args):
  return _util.codetree_append_to(*args)
codetree_append_to = _util.codetree_append_to

def codetree_write_to_file(*args):
  return _util.codetree_write_to_file(*args)
codetree_write_to_file = _util.codetree_write_to_file

def codetree_write_to_file_flipped(*args):
  return _util.codetree_write_to_file_flipped(*args)
codetree_write_to_file_flipped = _util.codetree_write_to_file_flipped
AN_FILETYPE_STARTREE = _util.AN_FILETYPE_STARTREE
AN_FILETYPE_TAGALONG = _util.AN_FILETYPE_TAGALONG
STARTREE_NAME = _util.STARTREE_NAME
class startree_s(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, startree_s, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, startree_s, name)
    __repr__ = _swig_repr
    __swig_setmethods__["tree"] = _util.startree_s_tree_set
    __swig_getmethods__["tree"] = _util.startree_s_tree_get
    if _newclass:tree = _swig_property(_util.startree_s_tree_get, _util.startree_s_tree_set)
    __swig_setmethods__["header"] = _util.startree_s_header_set
    __swig_getmethods__["header"] = _util.startree_s_header_get
    if _newclass:header = _swig_property(_util.startree_s_header_get, _util.startree_s_header_set)
    __swig_setmethods__["inverse_perm"] = _util.startree_s_inverse_perm_set
    __swig_getmethods__["inverse_perm"] = _util.startree_s_inverse_perm_get
    if _newclass:inverse_perm = _swig_property(_util.startree_s_inverse_perm_get, _util.startree_s_inverse_perm_set)
    __swig_setmethods__["sweep"] = _util.startree_s_sweep_set
    __swig_getmethods__["sweep"] = _util.startree_s_sweep_get
    if _newclass:sweep = _swig_property(_util.startree_s_sweep_get, _util.startree_s_sweep_set)
    __swig_setmethods__["writing"] = _util.startree_s_writing_set
    __swig_getmethods__["writing"] = _util.startree_s_writing_get
    if _newclass:writing = _swig_property(_util.startree_s_writing_get, _util.startree_s_writing_set)
    __swig_setmethods__["tagalong"] = _util.startree_s_tagalong_set
    __swig_getmethods__["tagalong"] = _util.startree_s_tagalong_get
    if _newclass:tagalong = _swig_property(_util.startree_s_tagalong_get, _util.startree_s_tagalong_set)
    def __init__(self): 
        this = _util.new_startree_s()
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _util.delete_startree_s
    __del__ = lambda self : None;
startree_s_swigregister = _util.startree_s_swigregister
startree_s_swigregister(startree_s)


def startree_open(*args):
  return _util.startree_open(*args)
startree_open = _util.startree_open

def startree_open_fits(*args):
  return _util.startree_open_fits(*args)
startree_open_fits = _util.startree_open_fits

def startree_search_for(*args):
  return _util.startree_search_for(*args)
startree_search_for = _util.startree_search_for

def startree_search_for_radec(*args):
  return _util.startree_search_for_radec(*args)
startree_search_for_radec = _util.startree_search_for_radec

def startree_search(*args):
  return _util.startree_search(*args)
startree_search = _util.startree_search

def startree_get_data_column(*args):
  return _util.startree_get_data_column(*args)
startree_get_data_column = _util.startree_get_data_column

def startree_get_data_column_int64(*args):
  return _util.startree_get_data_column_int64(*args)
startree_get_data_column_int64 = _util.startree_get_data_column_int64

def startree_get_data_column_array(*args):
  return _util.startree_get_data_column_array(*args)
startree_get_data_column_array = _util.startree_get_data_column_array

def startree_free_data_column(*args):
  return _util.startree_free_data_column(*args)
startree_free_data_column = _util.startree_free_data_column

def startree_has_tagalong(*args):
  return _util.startree_has_tagalong(*args)
startree_has_tagalong = _util.startree_has_tagalong

def startree_get_tagalong(*args):
  return _util.startree_get_tagalong(*args)
startree_get_tagalong = _util.startree_get_tagalong

def startree_get_tagalong_column_names(*args):
  return _util.startree_get_tagalong_column_names(*args)
startree_get_tagalong_column_names = _util.startree_get_tagalong_column_names

def startree_get_tagalong_N_columns(*args):
  return _util.startree_get_tagalong_N_columns(*args)
startree_get_tagalong_N_columns = _util.startree_get_tagalong_N_columns

def startree_get_tagalong_column_name(*args):
  return _util.startree_get_tagalong_column_name(*args)
startree_get_tagalong_column_name = _util.startree_get_tagalong_column_name

def startree_get_tagalong_column_fits_type(*args):
  return _util.startree_get_tagalong_column_fits_type(*args)
startree_get_tagalong_column_fits_type = _util.startree_get_tagalong_column_fits_type

def startree_get_tagalong_column_array_size(*args):
  return _util.startree_get_tagalong_column_array_size(*args)
startree_get_tagalong_column_array_size = _util.startree_get_tagalong_column_array_size

def startree_get_cut_nside(*args):
  return _util.startree_get_cut_nside(*args)
startree_get_cut_nside = _util.startree_get_cut_nside

def startree_get_cut_nsweeps(*args):
  return _util.startree_get_cut_nsweeps(*args)
startree_get_cut_nsweeps = _util.startree_get_cut_nsweeps

def startree_get_cut_dedup(*args):
  return _util.startree_get_cut_dedup(*args)
startree_get_cut_dedup = _util.startree_get_cut_dedup

def startree_get_cut_band(*args):
  return _util.startree_get_cut_band(*args)
startree_get_cut_band = _util.startree_get_cut_band

def startree_get_cut_margin(*args):
  return _util.startree_get_cut_margin(*args)
startree_get_cut_margin = _util.startree_get_cut_margin

def startree_get_jitter(*args):
  return _util.startree_get_jitter(*args)
startree_get_jitter = _util.startree_get_jitter

def startree_set_jitter(*args):
  return _util.startree_set_jitter(*args)
startree_set_jitter = _util.startree_set_jitter

def startree_get_sweep(*args):
  return _util.startree_get_sweep(*args)
startree_get_sweep = _util.startree_get_sweep

def startree_N(*args):
  return _util.startree_N(*args)
startree_N = _util.startree_N

def startree_nodes(*args):
  return _util.startree_nodes(*args)
startree_nodes = _util.startree_nodes

def startree_D(*args):
  return _util.startree_D(*args)
startree_D = _util.startree_D

def startree_header(*args):
  return _util.startree_header(*args)
startree_header = _util.startree_header

def startree_get(*args):
  return _util.startree_get(*args)
startree_get = _util.startree_get

def startree_get_radec(*args):
  return _util.startree_get_radec(*args)
startree_get_radec = _util.startree_get_radec

def startree_close(*args):
  return _util.startree_close(*args)
startree_close = _util.startree_close

def startree_compute_inverse_perm(*args):
  return _util.startree_compute_inverse_perm(*args)
startree_compute_inverse_perm = _util.startree_compute_inverse_perm

def startree_check_inverse_perm(*args):
  return _util.startree_check_inverse_perm(*args)
startree_check_inverse_perm = _util.startree_check_inverse_perm

def startree_new():
  return _util.startree_new()
startree_new = _util.startree_new

def startree_write_to_file(*args):
  return _util.startree_write_to_file(*args)
startree_write_to_file = _util.startree_write_to_file

def startree_write_to_file_flipped(*args):
  return _util.startree_write_to_file_flipped(*args)
startree_write_to_file_flipped = _util.startree_write_to_file_flipped

def startree_append_to(*args):
  return _util.startree_append_to(*args)
startree_append_to = _util.startree_append_to
HP_MAX_INT_NSIDE = _util.HP_MAX_INT_NSIDE

def healpix_xy_to_ring(*args):
  return _util.healpix_xy_to_ring(*args)
healpix_xy_to_ring = _util.healpix_xy_to_ring

def healpix_ring_to_xy(*args):
  return _util.healpix_ring_to_xy(*args)
healpix_ring_to_xy = _util.healpix_ring_to_xy

def healpix_xy_to_nested(*args):
  return _util.healpix_xy_to_nested(*args)
healpix_xy_to_nested = _util.healpix_xy_to_nested

def healpix_nested_to_xy(*args):
  return _util.healpix_nested_to_xy(*args)
healpix_nested_to_xy = _util.healpix_nested_to_xy

def healpix_decompose_ring(*args):
  return _util.healpix_decompose_ring(*args)
healpix_decompose_ring = _util.healpix_decompose_ring

def healpix_compose_ring(*args):
  return _util.healpix_compose_ring(*args)
healpix_compose_ring = _util.healpix_compose_ring

def healpix_decompose_xy(*args):
  return _util.healpix_decompose_xy(*args)
healpix_decompose_xy = _util.healpix_decompose_xy

def healpix_decompose_xyl(*args):
  return _util.healpix_decompose_xyl(*args)
healpix_decompose_xyl = _util.healpix_decompose_xyl

def healpix_compose_xy(*args):
  return _util.healpix_compose_xy(*args)
healpix_compose_xy = _util.healpix_compose_xy

def healpix_compose_xyl(*args):
  return _util.healpix_compose_xyl(*args)
healpix_compose_xyl = _util.healpix_compose_xyl

def healpix_convert_xy_nside(*args):
  return _util.healpix_convert_xy_nside(*args)
healpix_convert_xy_nside = _util.healpix_convert_xy_nside

def healpix_convert_nside(*args):
  return _util.healpix_convert_nside(*args)
healpix_convert_nside = _util.healpix_convert_nside

def radectohealpix(*args):
  return _util.radectohealpix(*args)
radectohealpix = _util.radectohealpix

def radectohealpixf(*args):
  return _util.radectohealpixf(*args)
radectohealpixf = _util.radectohealpixf

def radectohealpixl(*args):
  return _util.radectohealpixl(*args)
radectohealpixl = _util.radectohealpixl

def radectohealpixlf(*args):
  return _util.radectohealpixlf(*args)
radectohealpixlf = _util.radectohealpixlf

def radecdegtohealpix(*args):
  return _util.radecdegtohealpix(*args)
radecdegtohealpix = _util.radecdegtohealpix

def radecdegtohealpixf(*args):
  return _util.radecdegtohealpixf(*args)
radecdegtohealpixf = _util.radecdegtohealpixf

def radecdegtohealpixl(*args):
  return _util.radecdegtohealpixl(*args)
radecdegtohealpixl = _util.radecdegtohealpixl

def radecdegtohealpixlf(*args):
  return _util.radecdegtohealpixlf(*args)
radecdegtohealpixlf = _util.radecdegtohealpixlf

def xyztohealpix(*args):
  return _util.xyztohealpix(*args)
xyztohealpix = _util.xyztohealpix

def xyztohealpixl(*args):
  return _util.xyztohealpixl(*args)
xyztohealpixl = _util.xyztohealpixl

def xyztohealpixf(*args):
  return _util.xyztohealpixf(*args)
xyztohealpixf = _util.xyztohealpixf

def xyztohealpixlf(*args):
  return _util.xyztohealpixlf(*args)
xyztohealpixlf = _util.xyztohealpixlf

def xyzarrtohealpix(*args):
  return _util.xyzarrtohealpix(*args)
xyzarrtohealpix = _util.xyzarrtohealpix

def xyzarrtohealpixl(*args):
  return _util.xyzarrtohealpixl(*args)
xyzarrtohealpixl = _util.xyzarrtohealpixl

def xyzarrtohealpixf(*args):
  return _util.xyzarrtohealpixf(*args)
xyzarrtohealpixf = _util.xyzarrtohealpixf

def healpix_to_xyz(*args):
  return _util.healpix_to_xyz(*args)
healpix_to_xyz = _util.healpix_to_xyz

def healpix_to_xyzarr(*args):
  return _util.healpix_to_xyzarr(*args)
healpix_to_xyzarr = _util.healpix_to_xyzarr

def healpix_to_radec(*args):
  return _util.healpix_to_radec(*args)
healpix_to_radec = _util.healpix_to_radec

def healpix_to_radecdeg(*args):
  return _util.healpix_to_radecdeg(*args)
healpix_to_radecdeg = _util.healpix_to_radecdeg

def healpixl_to_radecdeg(*args):
  return _util.healpixl_to_radecdeg(*args)
healpixl_to_radecdeg = _util.healpixl_to_radecdeg

def healpix_to_radecarr(*args):
  return _util.healpix_to_radecarr(*args)
healpix_to_radecarr = _util.healpix_to_radecarr

def healpix_to_radecdegarr(*args):
  return _util.healpix_to_radecdegarr(*args)
healpix_to_radecdegarr = _util.healpix_to_radecdegarr

def healpix_side_length_arcmin(*args):
  return _util.healpix_side_length_arcmin(*args)
healpix_side_length_arcmin = _util.healpix_side_length_arcmin

def healpix_nside_for_side_length_arcmin(*args):
  return _util.healpix_nside_for_side_length_arcmin(*args)
healpix_nside_for_side_length_arcmin = _util.healpix_nside_for_side_length_arcmin

def healpix_get_neighbours(*args):
  return _util.healpix_get_neighbours(*args)
healpix_get_neighbours = _util.healpix_get_neighbours

def healpix_get_neighboursl(*args):
  return _util.healpix_get_neighboursl(*args)
healpix_get_neighboursl = _util.healpix_get_neighboursl

def healpix_get_neighbours_within_range(*args):
  return _util.healpix_get_neighbours_within_range(*args)
healpix_get_neighbours_within_range = _util.healpix_get_neighbours_within_range

def healpix_get_neighbours_within_range_radec(*args):
  return _util.healpix_get_neighbours_within_range_radec(*args)
healpix_get_neighbours_within_range_radec = _util.healpix_get_neighbours_within_range_radec

def healpix_distance_to_radec(*args):
  return _util.healpix_distance_to_radec(*args)
healpix_distance_to_radec = _util.healpix_distance_to_radec

def healpix_distance_to_xyz(*args):
  return _util.healpix_distance_to_xyz(*args)
healpix_distance_to_xyz = _util.healpix_distance_to_xyz

def healpix_within_range_of_radec(*args):
  return _util.healpix_within_range_of_radec(*args)
healpix_within_range_of_radec = _util.healpix_within_range_of_radec

def healpix_within_range_of_xyz(*args):
  return _util.healpix_within_range_of_xyz(*args)
healpix_within_range_of_xyz = _util.healpix_within_range_of_xyz

def healpix_radec_bounds(*args):
  return _util.healpix_radec_bounds(*args)
healpix_radec_bounds = _util.healpix_radec_bounds

def healpix_rangesearch_xyz(*args):
  return _util.healpix_rangesearch_xyz(*args)
healpix_rangesearch_xyz = _util.healpix_rangesearch_xyz

def healpix_rangesearch_xyz_approx(*args):
  return _util.healpix_rangesearch_xyz_approx(*args)
healpix_rangesearch_xyz_approx = _util.healpix_rangesearch_xyz_approx

def healpix_rangesearch_radec_approx(*args):
  return _util.healpix_rangesearch_radec_approx(*args)
healpix_rangesearch_radec_approx = _util.healpix_rangesearch_radec_approx

def healpix_rangesearch_radec(*args):
  return _util.healpix_rangesearch_radec(*args)
healpix_rangesearch_radec = _util.healpix_rangesearch_radec

def healpix_region_search(*args):
  return _util.healpix_region_search(*args)
healpix_region_search = _util.healpix_region_search

def anwcs_wcslib_to_string(*args):
  return _util.anwcs_wcslib_to_string(*args)
anwcs_wcslib_to_string = _util.anwcs_wcslib_to_string
ANWCS_TYPE_WCSLIB = _util.ANWCS_TYPE_WCSLIB
ANWCS_TYPE_SIP = _util.ANWCS_TYPE_SIP
ANWCS_TYPE_WCSTOOLS = _util.ANWCS_TYPE_WCSTOOLS
class anwcs_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, anwcs_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, anwcs_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["type"] = _util.anwcs_t_type_set
    __swig_getmethods__["type"] = _util.anwcs_t_type_get
    if _newclass:type = _swig_property(_util.anwcs_t_type_get, _util.anwcs_t_type_set)
    __swig_setmethods__["data"] = _util.anwcs_t_data_set
    __swig_getmethods__["data"] = _util.anwcs_t_data_get
    if _newclass:data = _swig_property(_util.anwcs_t_data_get, _util.anwcs_t_data_set)
    def __init__(self, *args): 
        this = _util.new_anwcs_t(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _util.delete_anwcs_t
    __del__ = lambda self : None;
    def pixel_scale(self): return _util.anwcs_t_pixel_scale(self)
    def get_center(self): return _util.anwcs_t_get_center(self)
    def get_radius(self): return _util.anwcs_t_get_radius(self)
    def is_inside(self, *args): return _util.anwcs_t_is_inside(self, *args)
    def get_width(self): return _util.anwcs_t_get_width(self)
    def get_height(self): return _util.anwcs_t_get_height(self)
    def set_width(self, *args): return _util.anwcs_t_set_width(self, *args)
    def set_height(self, *args): return _util.anwcs_t_set_height(self, *args)
    def pixelxy2radec(self, *args): return _util.anwcs_t_pixelxy2radec(self, *args)
    def radec2pixelxy(self, *args): return _util.anwcs_t_radec2pixelxy(self, *args)
    def write_to(self, *args): return _util.anwcs_t_write_to(self, *args)
anwcs_t_swigregister = _util.anwcs_t_swigregister
anwcs_t_swigregister(anwcs_t)


def anwcs_walk_outline(*args):
  return _util.anwcs_walk_outline(*args)
anwcs_walk_outline = _util.anwcs_walk_outline

def anwcs_wcslib_from_string(*args):
  return _util.anwcs_wcslib_from_string(*args)
anwcs_wcslib_from_string = _util.anwcs_wcslib_from_string

def anwcs_open(*args):
  return _util.anwcs_open(*args)
anwcs_open = _util.anwcs_open

def anwcs_open_wcslib(*args):
  return _util.anwcs_open_wcslib(*args)
anwcs_open_wcslib = _util.anwcs_open_wcslib

def anwcs_open_wcstools(*args):
  return _util.anwcs_open_wcstools(*args)
anwcs_open_wcstools = _util.anwcs_open_wcstools

def anwcs_wcstools_from_string(*args):
  return _util.anwcs_wcstools_from_string(*args)
anwcs_wcstools_from_string = _util.anwcs_wcstools_from_string

def anwcs_open_sip(*args):
  return _util.anwcs_open_sip(*args)
anwcs_open_sip = _util.anwcs_open_sip

def anwcs_open_tan(*args):
  return _util.anwcs_open_tan(*args)
anwcs_open_tan = _util.anwcs_open_tan

def anwcs_new_sip(*args):
  return _util.anwcs_new_sip(*args)
anwcs_new_sip = _util.anwcs_new_sip

def anwcs_new_tan(*args):
  return _util.anwcs_new_tan(*args)
anwcs_new_tan = _util.anwcs_new_tan

def anwcs_create_box(*args):
  return _util.anwcs_create_box(*args)
anwcs_create_box = _util.anwcs_create_box

def anwcs_create_box_upsidedown(*args):
  return _util.anwcs_create_box_upsidedown(*args)
anwcs_create_box_upsidedown = _util.anwcs_create_box_upsidedown

def anwcs_create_hammer_aitoff(*args):
  return _util.anwcs_create_hammer_aitoff(*args)
anwcs_create_hammer_aitoff = _util.anwcs_create_hammer_aitoff

def anwcs_create_allsky_hammer_aitoff(*args):
  return _util.anwcs_create_allsky_hammer_aitoff(*args)
anwcs_create_allsky_hammer_aitoff = _util.anwcs_create_allsky_hammer_aitoff

def anwcs_create_allsky_hammer_aitoff2(*args):
  return _util.anwcs_create_allsky_hammer_aitoff2(*args)
anwcs_create_allsky_hammer_aitoff2 = _util.anwcs_create_allsky_hammer_aitoff2

def anwcs_write(*args):
  return _util.anwcs_write(*args)
anwcs_write = _util.anwcs_write

def anwcs_write_to(*args):
  return _util.anwcs_write_to(*args)
anwcs_write_to = _util.anwcs_write_to

def anwcs_add_to_header(*args):
  return _util.anwcs_add_to_header(*args)
anwcs_add_to_header = _util.anwcs_add_to_header

def anwcs_radec2pixelxy(*args):
  return _util.anwcs_radec2pixelxy(*args)
anwcs_radec2pixelxy = _util.anwcs_radec2pixelxy

def anwcs_pixelxy2radec(*args):
  return _util.anwcs_pixelxy2radec(*args)
anwcs_pixelxy2radec = _util.anwcs_pixelxy2radec

def anwcs_pixelxy2xyz(*args):
  return _util.anwcs_pixelxy2xyz(*args)
anwcs_pixelxy2xyz = _util.anwcs_pixelxy2xyz

def anwcs_xyz2pixelxy(*args):
  return _util.anwcs_xyz2pixelxy(*args)
anwcs_xyz2pixelxy = _util.anwcs_xyz2pixelxy

def anwcs_radec_is_inside_image(*args):
  return _util.anwcs_radec_is_inside_image(*args)
anwcs_radec_is_inside_image = _util.anwcs_radec_is_inside_image

def anwcs_get_cd_matrix(*args):
  return _util.anwcs_get_cd_matrix(*args)
anwcs_get_cd_matrix = _util.anwcs_get_cd_matrix

def anwcs_get_radec_bounds(*args):
  return _util.anwcs_get_radec_bounds(*args)
anwcs_get_radec_bounds = _util.anwcs_get_radec_bounds

def anwcs_print(*args):
  return _util.anwcs_print(*args)
anwcs_print = _util.anwcs_print

def anwcs_print_stdout(*args):
  return _util.anwcs_print_stdout(*args)
anwcs_print_stdout = _util.anwcs_print_stdout

def anwcs_get_radec_center_and_radius(*args):
  return _util.anwcs_get_radec_center_and_radius(*args)
anwcs_get_radec_center_and_radius = _util.anwcs_get_radec_center_and_radius

def anwcs_walk_image_boundary(*args):
  return _util.anwcs_walk_image_boundary(*args)
anwcs_walk_image_boundary = _util.anwcs_walk_image_boundary

def anwcs_find_discontinuity(*args):
  return _util.anwcs_find_discontinuity(*args)
anwcs_find_discontinuity = _util.anwcs_find_discontinuity

def anwcs_is_discontinuous(*args):
  return _util.anwcs_is_discontinuous(*args)
anwcs_is_discontinuous = _util.anwcs_is_discontinuous

def anwcs_walk_discontinuity(*args):
  return _util.anwcs_walk_discontinuity(*args)
anwcs_walk_discontinuity = _util.anwcs_walk_discontinuity

def anwcs_overlaps(*args):
  return _util.anwcs_overlaps(*args)
anwcs_overlaps = _util.anwcs_overlaps

def anwcs_imagew(*args):
  return _util.anwcs_imagew(*args)
anwcs_imagew = _util.anwcs_imagew

def anwcs_imageh(*args):
  return _util.anwcs_imageh(*args)
anwcs_imageh = _util.anwcs_imageh

def anwcs_set_size(*args):
  return _util.anwcs_set_size(*args)
anwcs_set_size = _util.anwcs_set_size

def anwcs_scale_wcs(*args):
  return _util.anwcs_scale_wcs(*args)
anwcs_scale_wcs = _util.anwcs_scale_wcs

def anwcs_rotate_wcs(*args):
  return _util.anwcs_rotate_wcs(*args)
anwcs_rotate_wcs = _util.anwcs_rotate_wcs

def anwcs_pixel_scale(*args):
  return _util.anwcs_pixel_scale(*args)
anwcs_pixel_scale = _util.anwcs_pixel_scale

def anwcs_free(*args):
  return _util.anwcs_free(*args)
anwcs_free = _util.anwcs_free

def anwcs_get_sip(*args):
  return _util.anwcs_get_sip(*args)
anwcs_get_sip = _util.anwcs_get_sip
anwcs = anwcs_t
anwcs.imagew = property(anwcs.get_width,  anwcs.set_width,  None, 'image width')
anwcs.imageh = property(anwcs.get_height, anwcs.set_height, None, 'image height')
anwcs.writeto = anwcs.write_to

def anwcs_from_string(s):
    return anwcs_t(s, -1, len(s))

def anwcs_get_header_string(self):
    s = anwcs_wcslib_to_string(self)
    return (s +
         'NAXIS   = 2' + ' '*69 +
         'NAXIS1  = % 20i' % self.imagew + ' '*50 +
         'NAXIS2  = % 20i' % self.imageh + ' '*50 +
         'END'+' '*77)
anwcs.getHeaderString = anwcs_get_header_string

def anwcs_get_cd(self):
    return anwcs_get_cd_matrix(self)
anwcs.get_cd = anwcs_get_cd

    
DIM_STARS = _util.DIM_STARS
DIM_XY = _util.DIM_XY
DQMAX = _util.DQMAX
DCMAX = _util.DCMAX

def dimquad2dimcode(*args):
  return _util.dimquad2dimcode(*args)
dimquad2dimcode = _util.dimquad2dimcode
ONE_OVER_SIXTY = _util.ONE_OVER_SIXTY
RAD_PER_DEG = _util.RAD_PER_DEG
RAD_PER_ARCMIN = _util.RAD_PER_ARCMIN
RAD_PER_ARCSEC = _util.RAD_PER_ARCSEC
DEG_PER_RAD = _util.DEG_PER_RAD
DEG_PER_ARCMIN = _util.DEG_PER_ARCMIN
DEG_PER_ARCSEC = _util.DEG_PER_ARCSEC
ARCMIN_PER_RAD = _util.ARCMIN_PER_RAD
ARCMIN_PER_DEG = _util.ARCMIN_PER_DEG
ARCMIN_PER_ARCSEC = _util.ARCMIN_PER_ARCSEC
ARCSEC_PER_RAD = _util.ARCSEC_PER_RAD
ARCSEC_PER_DEG = _util.ARCSEC_PER_DEG
ARCSEC_PER_ARCMIN = _util.ARCSEC_PER_ARCMIN

def rad2deg(*args):
  return _util.rad2deg(*args)
rad2deg = _util.rad2deg

def rad2arcmin(*args):
  return _util.rad2arcmin(*args)
rad2arcmin = _util.rad2arcmin

def rad2arcsec(*args):
  return _util.rad2arcsec(*args)
rad2arcsec = _util.rad2arcsec

def deg2rad(*args):
  return _util.deg2rad(*args)
deg2rad = _util.deg2rad

def deg2arcmin(*args):
  return _util.deg2arcmin(*args)
deg2arcmin = _util.deg2arcmin

def deg2arcsec(*args):
  return _util.deg2arcsec(*args)
deg2arcsec = _util.deg2arcsec

def arcmin2rad(*args):
  return _util.arcmin2rad(*args)
arcmin2rad = _util.arcmin2rad

def arcmin2deg(*args):
  return _util.arcmin2deg(*args)
arcmin2deg = _util.arcmin2deg

def arcmin2arcsec(*args):
  return _util.arcmin2arcsec(*args)
arcmin2arcsec = _util.arcmin2arcsec

def arcsec2rad(*args):
  return _util.arcsec2rad(*args)
arcsec2rad = _util.arcsec2rad

def arcsec2deg(*args):
  return _util.arcsec2deg(*args)
arcsec2deg = _util.arcsec2deg

def arcsec2arcmin(*args):
  return _util.arcsec2arcmin(*args)
arcsec2arcmin = _util.arcsec2arcmin
MJD_JD_OFFSET = _util.MJD_JD_OFFSET

def mjdtojd(*args):
  return _util.mjdtojd(*args)
mjdtojd = _util.mjdtojd

def jdtomjd(*args):
  return _util.jdtomjd(*args)
jdtomjd = _util.jdtomjd

def xy2ra(*args):
  return _util.xy2ra(*args)
xy2ra = _util.xy2ra

def z2dec(*args):
  return _util.z2dec(*args)
z2dec = _util.z2dec

def atora(*args):
  return _util.atora(*args)
atora = _util.atora

def atodec(*args):
  return _util.atodec(*args)
atodec = _util.atodec

def mag2flux(*args):
  return _util.mag2flux(*args)
mag2flux = _util.mag2flux

def radecrange2xyzrange(*args):
  return _util.radecrange2xyzrange(*args)
radecrange2xyzrange = _util.radecrange2xyzrange

def radec2xyz(*args):
  return _util.radec2xyz(*args)
radec2xyz = _util.radec2xyz

def xyz2radec(*args):
  return _util.xyz2radec(*args)
xyz2radec = _util.xyz2radec

def xyzarr2radec(*args):
  return _util.xyzarr2radec(*args)
xyzarr2radec = _util.xyzarr2radec

def xyzarr2radecarr(*args):
  return _util.xyzarr2radecarr(*args)
xyzarr2radecarr = _util.xyzarr2radecarr

def radec2xyzarr(*args):
  return _util.radec2xyzarr(*args)
radec2xyzarr = _util.radec2xyzarr

def radec2xyzarrmany(*args):
  return _util.radec2xyzarrmany(*args)
radec2xyzarrmany = _util.radec2xyzarrmany

def radecdeg2xyz(*args):
  return _util.radecdeg2xyz(*args)
radecdeg2xyz = _util.radecdeg2xyz

def xyzarr2radecdeg(*args):
  return _util.xyzarr2radecdeg(*args)
xyzarr2radecdeg = _util.xyzarr2radecdeg

def xyzarr2radecdegarr(*args):
  return _util.xyzarr2radecdegarr(*args)
xyzarr2radecdegarr = _util.xyzarr2radecdegarr

def radecdeg2xyzarr(*args):
  return _util.radecdeg2xyzarr(*args)
radecdeg2xyzarr = _util.radecdeg2xyzarr

def radecdegarr2xyzarr(*args):
  return _util.radecdegarr2xyzarr(*args)
radecdegarr2xyzarr = _util.radecdegarr2xyzarr

def radecdeg2xyzarrmany(*args):
  return _util.radecdeg2xyzarrmany(*args)
radecdeg2xyzarrmany = _util.radecdeg2xyzarrmany

def radec_derivatives(*args):
  return _util.radec_derivatives(*args)
radec_derivatives = _util.radec_derivatives

def distsq_between_radecdeg(*args):
  return _util.distsq_between_radecdeg(*args)
distsq_between_radecdeg = _util.distsq_between_radecdeg

def arcsec_between_radecdeg(*args):
  return _util.arcsec_between_radecdeg(*args)
arcsec_between_radecdeg = _util.arcsec_between_radecdeg

def deg_between_radecdeg(*args):
  return _util.deg_between_radecdeg(*args)
deg_between_radecdeg = _util.deg_between_radecdeg

def ra2mercx(*args):
  return _util.ra2mercx(*args)
ra2mercx = _util.ra2mercx

def dec2mercy(*args):
  return _util.dec2mercy(*args)
dec2mercy = _util.dec2mercy

def ra2hms(*args):
  return _util.ra2hms(*args)
ra2hms = _util.ra2hms

def dec2dms(*args):
  return _util.dec2dms(*args)
dec2dms = _util.dec2dms

def hms2ra(*args):
  return _util.hms2ra(*args)
hms2ra = _util.hms2ra

def dms2dec(*args):
  return _util.dms2dec(*args)
dms2dec = _util.dms2dec

def ra2hmsstring(*args):
  return _util.ra2hmsstring(*args)
ra2hmsstring = _util.ra2hmsstring

def dec2dmsstring(*args):
  return _util.dec2dmsstring(*args)
dec2dmsstring = _util.dec2dmsstring

def project_hammer_aitoff_x(*args):
  return _util.project_hammer_aitoff_x(*args)
project_hammer_aitoff_x = _util.project_hammer_aitoff_x

def project_equal_area(*args):
  return _util.project_equal_area(*args)
project_equal_area = _util.project_equal_area

def distsq2arc(*args):
  return _util.distsq2arc(*args)
distsq2arc = _util.distsq2arc

def distsq2rad(*args):
  return _util.distsq2rad(*args)
distsq2rad = _util.distsq2rad

def distsq2deg(*args):
  return _util.distsq2deg(*args)
distsq2deg = _util.distsq2deg

def dist2rad(*args):
  return _util.dist2rad(*args)
dist2rad = _util.dist2rad

def distsq2arcsec(*args):
  return _util.distsq2arcsec(*args)
distsq2arcsec = _util.distsq2arcsec

def dist2arcsec(*args):
  return _util.dist2arcsec(*args)
dist2arcsec = _util.dist2arcsec

def rad2distsq(*args):
  return _util.rad2distsq(*args)
rad2distsq = _util.rad2distsq

def rad2dist(*args):
  return _util.rad2dist(*args)
rad2dist = _util.rad2dist

def arcsec2distsq(*args):
  return _util.arcsec2distsq(*args)
arcsec2distsq = _util.arcsec2distsq

def arcsec2dist(*args):
  return _util.arcsec2dist(*args)
arcsec2dist = _util.arcsec2dist

def deg2dist(*args):
  return _util.deg2dist(*args)
deg2dist = _util.deg2dist

def deg2distsq(*args):
  return _util.deg2distsq(*args)
deg2distsq = _util.deg2distsq

def arcmin2dist(*args):
  return _util.arcmin2dist(*args)
arcmin2dist = _util.arcmin2dist

def arcmin2distsq(*args):
  return _util.arcmin2distsq(*args)
arcmin2distsq = _util.arcmin2distsq

def dist2deg(*args):
  return _util.dist2deg(*args)
dist2deg = _util.dist2deg
HELP_ERR = _util.HELP_ERR
OPT_ERR = _util.OPT_ERR

def make_rand_star(*args):
  return _util.make_rand_star(*args)
make_rand_star = _util.make_rand_star

def star_coords(*args):
  return _util.star_coords(*args)
star_coords = _util.star_coords

def star_midpoint(*args):
  return _util.star_midpoint(*args)
star_midpoint = _util.star_midpoint
SIP_MAXORDER = _util.SIP_MAXORDER
class tan_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, tan_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, tan_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["crval"] = _util.tan_t_crval_set
    __swig_getmethods__["crval"] = _util.tan_t_crval_get
    if _newclass:crval = _swig_property(_util.tan_t_crval_get, _util.tan_t_crval_set)
    __swig_setmethods__["crpix"] = _util.tan_t_crpix_set
    __swig_getmethods__["crpix"] = _util.tan_t_crpix_get
    if _newclass:crpix = _swig_property(_util.tan_t_crpix_get, _util.tan_t_crpix_set)
    __swig_setmethods__["cd"] = _util.tan_t_cd_set
    __swig_getmethods__["cd"] = _util.tan_t_cd_get
    if _newclass:cd = _swig_property(_util.tan_t_cd_get, _util.tan_t_cd_set)
    __swig_setmethods__["imagew"] = _util.tan_t_imagew_set
    __swig_getmethods__["imagew"] = _util.tan_t_imagew_get
    if _newclass:imagew = _swig_property(_util.tan_t_imagew_get, _util.tan_t_imagew_set)
    __swig_setmethods__["imageh"] = _util.tan_t_imageh_set
    __swig_getmethods__["imageh"] = _util.tan_t_imageh_get
    if _newclass:imageh = _swig_property(_util.tan_t_imageh_get, _util.tan_t_imageh_set)
    __swig_setmethods__["sin"] = _util.tan_t_sin_set
    __swig_getmethods__["sin"] = _util.tan_t_sin_get
    if _newclass:sin = _swig_property(_util.tan_t_sin_get, _util.tan_t_sin_set)
    def __init__(self, *args): 
        this = _util.new_tan_t(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _util.delete_tan_t
    __del__ = lambda self : None;
    def set(self, *args): return _util.tan_t_set(self, *args)
    def is_inside(self, *args): return _util.tan_t_is_inside(self, *args)
    def scale(self, *args): return _util.tan_t_scale(self, *args)
    def get_width(self): return _util.tan_t_get_width(self)
    def get_height(self): return _util.tan_t_get_height(self)
    def set_width(self, *args): return _util.tan_t_set_width(self, *args)
    def set_height(self, *args): return _util.tan_t_set_height(self, *args)
    def pixel_scale(self): return _util.tan_t_pixel_scale(self)
    def radec_center(self): return _util.tan_t_radec_center(self)
    def radius(self): return _util.tan_t_radius(self)
    def xyzcenter(self): return _util.tan_t_xyzcenter(self)
    def pixelxy2xyz(self, *args): return _util.tan_t_pixelxy2xyz(self, *args)
    def pixelxy2radec(self, *args): return _util.tan_t_pixelxy2radec(self, *args)
    def radec2pixelxy(self, *args): return _util.tan_t_radec2pixelxy(self, *args)
    def iwc2pixelxy(self, *args): return _util.tan_t_iwc2pixelxy(self, *args)
    def iwc2radec(self, *args): return _util.tan_t_iwc2radec(self, *args)
    def radec2iwc(self, *args): return _util.tan_t_radec2iwc(self, *args)
    def xyz2pixelxy(self, *args): return _util.tan_t_xyz2pixelxy(self, *args)
    def write_to(self, *args): return _util.tan_t_write_to(self, *args)
    def set_crval(self, *args): return _util.tan_t_set_crval(self, *args)
    def set_crpix(self, *args): return _util.tan_t_set_crpix(self, *args)
    def set_cd(self, *args): return _util.tan_t_set_cd(self, *args)
    def set_imagesize(self, *args): return _util.tan_t_set_imagesize(self, *args)
tan_t_swigregister = _util.tan_t_swigregister
tan_t_swigregister(tan_t)

class sip_t(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, sip_t, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, sip_t, name)
    __repr__ = _swig_repr
    __swig_setmethods__["wcstan"] = _util.sip_t_wcstan_set
    __swig_getmethods__["wcstan"] = _util.sip_t_wcstan_get
    if _newclass:wcstan = _swig_property(_util.sip_t_wcstan_get, _util.sip_t_wcstan_set)
    __swig_setmethods__["a_order"] = _util.sip_t_a_order_set
    __swig_getmethods__["a_order"] = _util.sip_t_a_order_get
    if _newclass:a_order = _swig_property(_util.sip_t_a_order_get, _util.sip_t_a_order_set)
    __swig_setmethods__["b_order"] = _util.sip_t_b_order_set
    __swig_getmethods__["b_order"] = _util.sip_t_b_order_get
    if _newclass:b_order = _swig_property(_util.sip_t_b_order_get, _util.sip_t_b_order_set)
    __swig_setmethods__["a"] = _util.sip_t_a_set
    __swig_getmethods__["a"] = _util.sip_t_a_get
    if _newclass:a = _swig_property(_util.sip_t_a_get, _util.sip_t_a_set)
    __swig_setmethods__["b"] = _util.sip_t_b_set
    __swig_getmethods__["b"] = _util.sip_t_b_get
    if _newclass:b = _swig_property(_util.sip_t_b_get, _util.sip_t_b_set)
    __swig_setmethods__["ap_order"] = _util.sip_t_ap_order_set
    __swig_getmethods__["ap_order"] = _util.sip_t_ap_order_get
    if _newclass:ap_order = _swig_property(_util.sip_t_ap_order_get, _util.sip_t_ap_order_set)
    __swig_setmethods__["bp_order"] = _util.sip_t_bp_order_set
    __swig_getmethods__["bp_order"] = _util.sip_t_bp_order_get
    if _newclass:bp_order = _swig_property(_util.sip_t_bp_order_get, _util.sip_t_bp_order_set)
    __swig_setmethods__["ap"] = _util.sip_t_ap_set
    __swig_getmethods__["ap"] = _util.sip_t_ap_get
    if _newclass:ap = _swig_property(_util.sip_t_ap_get, _util.sip_t_ap_set)
    __swig_setmethods__["bp"] = _util.sip_t_bp_set
    __swig_getmethods__["bp"] = _util.sip_t_bp_get
    if _newclass:bp = _swig_property(_util.sip_t_bp_get, _util.sip_t_bp_set)
    def __init__(self, *args): 
        this = _util.new_sip_t(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _util.delete_sip_t
    __del__ = lambda self : None;
    def get_subimage(self, *args): return _util.sip_t_get_subimage(self, *args)
    def pixel_scale(self): return _util.sip_t_pixel_scale(self)
    def write_to(self, *args): return _util.sip_t_write_to(self, *args)
    def ensure_inverse_polynomials(self): return _util.sip_t_ensure_inverse_polynomials(self)
    def pixelxy2xyz(self, *args): return _util.sip_t_pixelxy2xyz(self, *args)
    def pixelxy2radec(self, *args): return _util.sip_t_pixelxy2radec(self, *args)
    def radec2pixelxy(self, *args): return _util.sip_t_radec2pixelxy(self, *args)
    def iwc2pixelxy(self, *args): return _util.sip_t_iwc2pixelxy(self, *args)
    def iwc2radec(self, *args): return _util.sip_t_iwc2radec(self, *args)
    def radec2iwc(self, *args): return _util.sip_t_radec2iwc(self, *args)
    def xyz2pixelxy(self, *args): return _util.sip_t_xyz2pixelxy(self, *args)
    def is_inside(self, *args): return _util.sip_t_is_inside(self, *args)
    def set_a_term(self, *args): return _util.sip_t_set_a_term(self, *args)
    def set_b_term(self, *args): return _util.sip_t_set_b_term(self, *args)
    def set_ap_term(self, *args): return _util.sip_t_set_ap_term(self, *args)
    def set_bp_term(self, *args): return _util.sip_t_set_bp_term(self, *args)
    def get_a_term(self, *args): return _util.sip_t_get_a_term(self, *args)
    def get_b_term(self, *args): return _util.sip_t_get_b_term(self, *args)
    def get_ap_term(self, *args): return _util.sip_t_get_ap_term(self, *args)
    def get_bp_term(self, *args): return _util.sip_t_get_bp_term(self, *args)
    def set_width(self, *args): return _util.sip_t_set_width(self, *args)
    def set_height(self, *args): return _util.sip_t_set_height(self, *args)
    def get_width(self): return _util.sip_t_get_width(self)
    def get_height(self): return _util.sip_t_get_height(self)
    def get_distortion(self, *args): return _util.sip_t_get_distortion(self, *args)
sip_t_swigregister = _util.sip_t_swigregister
sip_t_swigregister(sip_t)


def sip_create():
  return _util.sip_create()
sip_create = _util.sip_create

def sip_free(*args):
  return _util.sip_free(*args)
sip_free = _util.sip_free

def sip_copy(*args):
  return _util.sip_copy(*args)
sip_copy = _util.sip_copy

def sip_wrap_tan(*args):
  return _util.sip_wrap_tan(*args)
sip_wrap_tan = _util.sip_wrap_tan

def sip_imagew(*args):
  return _util.sip_imagew(*args)
sip_imagew = _util.sip_imagew

def sip_imageh(*args):
  return _util.sip_imageh(*args)
sip_imageh = _util.sip_imageh

def sip_pixelxy2radec(*args):
  return _util.sip_pixelxy2radec(*args)
sip_pixelxy2radec = _util.sip_pixelxy2radec

def sip_pixelxy2xyzarr(*args):
  return _util.sip_pixelxy2xyzarr(*args)
sip_pixelxy2xyzarr = _util.sip_pixelxy2xyzarr

def sip_radec2pixelxy(*args):
  return _util.sip_radec2pixelxy(*args)
sip_radec2pixelxy = _util.sip_radec2pixelxy

def sip_radec2pixelxy_check(*args):
  return _util.sip_radec2pixelxy_check(*args)
sip_radec2pixelxy_check = _util.sip_radec2pixelxy_check

def sip_xyzarr2pixelxy(*args):
  return _util.sip_xyzarr2pixelxy(*args)
sip_xyzarr2pixelxy = _util.sip_xyzarr2pixelxy

def sip_xyz2pixelxy(*args):
  return _util.sip_xyz2pixelxy(*args)
sip_xyz2pixelxy = _util.sip_xyz2pixelxy

def sip_pixelxy2iwc(*args):
  return _util.sip_pixelxy2iwc(*args)
sip_pixelxy2iwc = _util.sip_pixelxy2iwc

def tan_det_cd(*args):
  return _util.tan_det_cd(*args)
tan_det_cd = _util.tan_det_cd

def sip_det_cd(*args):
  return _util.sip_det_cd(*args)
sip_det_cd = _util.sip_det_cd

def tan_pixel_scale(*args):
  return _util.tan_pixel_scale(*args)
tan_pixel_scale = _util.tan_pixel_scale

def sip_pixel_scale(*args):
  return _util.sip_pixel_scale(*args)
sip_pixel_scale = _util.sip_pixel_scale

def sip_calc_inv_distortion(*args):
  return _util.sip_calc_inv_distortion(*args)
sip_calc_inv_distortion = _util.sip_calc_inv_distortion

def sip_calc_distortion(*args):
  return _util.sip_calc_distortion(*args)
sip_calc_distortion = _util.sip_calc_distortion

def sip_pixel_distortion(*args):
  return _util.sip_pixel_distortion(*args)
sip_pixel_distortion = _util.sip_pixel_distortion

def sip_pixel_undistortion(*args):
  return _util.sip_pixel_undistortion(*args)
sip_pixel_undistortion = _util.sip_pixel_undistortion

def tan_pixelxy2xyzarr(*args):
  return _util.tan_pixelxy2xyzarr(*args)
tan_pixelxy2xyzarr = _util.tan_pixelxy2xyzarr

def tan_pixelxy2radec(*args):
  return _util.tan_pixelxy2radec(*args)
tan_pixelxy2radec = _util.tan_pixelxy2radec

def tan_pixelxy2radecarr(*args):
  return _util.tan_pixelxy2radecarr(*args)
tan_pixelxy2radecarr = _util.tan_pixelxy2radecarr

def tan_radec2pixelxy(*args):
  return _util.tan_radec2pixelxy(*args)
tan_radec2pixelxy = _util.tan_radec2pixelxy

def tan_xyzarr2pixelxy(*args):
  return _util.tan_xyzarr2pixelxy(*args)
tan_xyzarr2pixelxy = _util.tan_xyzarr2pixelxy

def tan_iwc2pixelxy(*args):
  return _util.tan_iwc2pixelxy(*args)
tan_iwc2pixelxy = _util.tan_iwc2pixelxy

def tan_iwc2xyzarr(*args):
  return _util.tan_iwc2xyzarr(*args)
tan_iwc2xyzarr = _util.tan_iwc2xyzarr

def tan_iwc2radec(*args):
  return _util.tan_iwc2radec(*args)
tan_iwc2radec = _util.tan_iwc2radec

def tan_pixelxy2iwc(*args):
  return _util.tan_pixelxy2iwc(*args)
tan_pixelxy2iwc = _util.tan_pixelxy2iwc

def tan_xyzarr2iwc(*args):
  return _util.tan_xyzarr2iwc(*args)
tan_xyzarr2iwc = _util.tan_xyzarr2iwc

def tan_radec2iwc(*args):
  return _util.tan_radec2iwc(*args)
tan_radec2iwc = _util.tan_radec2iwc

def sip_xyzarr2iwc(*args):
  return _util.sip_xyzarr2iwc(*args)
sip_xyzarr2iwc = _util.sip_xyzarr2iwc

def sip_radec2iwc(*args):
  return _util.sip_radec2iwc(*args)
sip_radec2iwc = _util.sip_radec2iwc

def sip_iwc2pixelxy(*args):
  return _util.sip_iwc2pixelxy(*args)
sip_iwc2pixelxy = _util.sip_iwc2pixelxy

def sip_iwc2radec(*args):
  return _util.sip_iwc2radec(*args)
sip_iwc2radec = _util.sip_iwc2radec

def sip_print(*args):
  return _util.sip_print(*args)
sip_print = _util.sip_print

def sip_print_to(*args):
  return _util.sip_print_to(*args)
sip_print_to = _util.sip_print_to

def tan_print(*args):
  return _util.tan_print(*args)
tan_print = _util.tan_print

def tan_print_to(*args):
  return _util.tan_print_to(*args)
tan_print_to = _util.tan_print_to

def sip_get_crval(*args):
  return _util.sip_get_crval(*args)
sip_get_crval = _util.sip_get_crval

def sip_get_orientation(*args):
  return _util.sip_get_orientation(*args)
sip_get_orientation = _util.sip_get_orientation

def sip_get_image_size(*args):
  return _util.sip_get_image_size(*args)
sip_get_image_size = _util.sip_get_image_size

def sip_read_tan_or_sip_header_file_ext(*args):
  return _util.sip_read_tan_or_sip_header_file_ext(*args)
sip_read_tan_or_sip_header_file_ext = _util.sip_read_tan_or_sip_header_file_ext

def sip_create_header(*args):
  return _util.sip_create_header(*args)
sip_create_header = _util.sip_create_header

def tan_create_header(*args):
  return _util.tan_create_header(*args)
tan_create_header = _util.tan_create_header

def sip_add_to_header(*args):
  return _util.sip_add_to_header(*args)
sip_add_to_header = _util.sip_add_to_header

def tan_add_to_header(*args):
  return _util.tan_add_to_header(*args)
tan_add_to_header = _util.tan_add_to_header

def sip_read_header_file(*args):
  return _util.sip_read_header_file(*args)
sip_read_header_file = _util.sip_read_header_file

def sip_read_header_file_ext(*args):
  return _util.sip_read_header_file_ext(*args)
sip_read_header_file_ext = _util.sip_read_header_file_ext

def sip_read_header_file_ext_only(*args):
  return _util.sip_read_header_file_ext_only(*args)
sip_read_header_file_ext_only = _util.sip_read_header_file_ext_only

def tan_read_header_file(*args):
  return _util.tan_read_header_file(*args)
tan_read_header_file = _util.tan_read_header_file

def tan_read_header_file_ext(*args):
  return _util.tan_read_header_file_ext(*args)
tan_read_header_file_ext = _util.tan_read_header_file_ext

def tan_read_header_file_ext_only(*args):
  return _util.tan_read_header_file_ext_only(*args)
tan_read_header_file_ext_only = _util.tan_read_header_file_ext_only

def sip_read_header(*args):
  return _util.sip_read_header(*args)
sip_read_header = _util.sip_read_header

def tan_read_header(*args):
  return _util.tan_read_header(*args)
tan_read_header = _util.tan_read_header

def sip_from_string(*args):
  return _util.sip_from_string(*args)
sip_from_string = _util.sip_from_string

def tan_write_to(*args):
  return _util.tan_write_to(*args)
tan_write_to = _util.tan_write_to

def sip_write_to(*args):
  return _util.sip_write_to(*args)
sip_write_to = _util.sip_write_to

def sip_write_to_file(*args):
  return _util.sip_write_to_file(*args)
sip_write_to_file = _util.sip_write_to_file

def tan_write_to_file(*args):
  return _util.tan_write_to_file(*args)
tan_write_to_file = _util.tan_write_to_file

def sip_ensure_inverse_polynomials(*args):
  return _util.sip_ensure_inverse_polynomials(*args)
sip_ensure_inverse_polynomials = _util.sip_ensure_inverse_polynomials

def sip_compute_inverse_polynomials(*args):
  return _util.sip_compute_inverse_polynomials(*args)
sip_compute_inverse_polynomials = _util.sip_compute_inverse_polynomials

def sip_filter_stars_in_field(*args):
  return _util.sip_filter_stars_in_field(*args)
sip_filter_stars_in_field = _util.sip_filter_stars_in_field

def sip_get_radec_bounds(*args):
  return _util.sip_get_radec_bounds(*args)
sip_get_radec_bounds = _util.sip_get_radec_bounds

def sip_walk_image_boundary(*args):
  return _util.sip_walk_image_boundary(*args)
sip_walk_image_boundary = _util.sip_walk_image_boundary

def sip_get_radec_center(*args):
  return _util.sip_get_radec_center(*args)
sip_get_radec_center = _util.sip_get_radec_center

def tan_get_radec_center(*args):
  return _util.tan_get_radec_center(*args)
tan_get_radec_center = _util.tan_get_radec_center

def sip_get_radius_deg(*args):
  return _util.sip_get_radius_deg(*args)
sip_get_radius_deg = _util.sip_get_radius_deg

def tan_get_radius_deg(*args):
  return _util.tan_get_radius_deg(*args)
tan_get_radius_deg = _util.tan_get_radius_deg

def sip_get_radec_center_hms(*args):
  return _util.sip_get_radec_center_hms(*args)
sip_get_radec_center_hms = _util.sip_get_radec_center_hms

def sip_pixel_is_inside_image(*args):
  return _util.sip_pixel_is_inside_image(*args)
sip_pixel_is_inside_image = _util.sip_pixel_is_inside_image

def sip_is_inside_image(*args):
  return _util.sip_is_inside_image(*args)
sip_is_inside_image = _util.sip_is_inside_image

def sip_get_radec_center_hms_string(*args):
  return _util.sip_get_radec_center_hms_string(*args)
sip_get_radec_center_hms_string = _util.sip_get_radec_center_hms_string

def sip_get_field_size(*args):
  return _util.sip_get_field_size(*args)
sip_get_field_size = _util.sip_get_field_size

def sip_shift(*args):
  return _util.sip_shift(*args)
sip_shift = _util.sip_shift

def tan_pixel_is_inside_image(*args):
  return _util.tan_pixel_is_inside_image(*args)
tan_pixel_is_inside_image = _util.tan_pixel_is_inside_image

def tan_is_inside_image(*args):
  return _util.tan_is_inside_image(*args)
tan_is_inside_image = _util.tan_is_inside_image

def tan_transform(*args):
  return _util.tan_transform(*args)
tan_transform = _util.tan_transform

def tan_scale(*args):
  return _util.tan_scale(*args)
tan_scale = _util.tan_scale

def tan_rotate(*args):
  return _util.tan_rotate(*args)
tan_rotate = _util.tan_rotate
def sip_t_tostring(self):
    tan = self.wcstan
    ct = 'SIN' if tan.sin else 'TAN'
    return (('SIP(%s): crpix (%.1f, %.1f), crval (%g, %g), cd (%g, %g, %g, %g), '
             + 'image %g x %g; SIP orders A=%i, B=%i, AP=%i, BP=%i') %
            (ct, tan.crpix[0], tan.crpix[1], tan.crval[0], tan.crval[1],
             tan.cd[0], tan.cd[1], tan.cd[2], tan.cd[3],
             tan.imagew, tan.imageh, self.a_order, self.b_order,
             self.ap_order, self.bp_order))
sip_t.__str__ = sip_t_tostring

# def sip_t_get_subimage(self, x0, y0, w, h):
#     wcs2 = sip_t(self)
#     cpx,cpy = wcs2.crpix
#     wcs2.set_crpix((cpx - x0, cpy - y0))
#     wcs2.set_width(float(w))
#     wcs2.set_height(float(h))
#     return wcs2
# sip_t.get_subimage = sip_t_get_subimage

sip_t.imagew = property(sip_t.get_width,  sip_t.set_width,  None, 'image width')
sip_t.imageh = property(sip_t.get_height, sip_t.set_height, None, 'image height')

def sip_t_get_cd(self):
    cd = self.wcstan.cd
    return (cd[0], cd[1], cd[2], cd[3])
def sip_t_set_cd(self, x):
    self.wcstan.cd = x
sip_t.get_cd = sip_t_get_cd
sip_t.set_cd = sip_t_set_cd

def sip_t_get_crval(self):
    return self.wcstan.crval
def sip_t_set_crval(self, x):
    self.wcstan.crval = x
sip_t.get_crval = sip_t_get_crval
sip_t.set_crval = sip_t_set_crval

def sip_t_get_crpix(self):
    return self.wcstan.crpix
def sip_t_set_crpix(self, x):
    self.wcstan.crpix = x
sip_t.get_crpix = sip_t_get_crpix
sip_t.set_crpix = sip_t_set_crpix

sip_t.crval = property(sip_t_get_crval, sip_t_set_crval, None, 'CRVAL')
sip_t.crpix = property(sip_t_get_crpix, sip_t_set_crpix, None, 'CRPIX')
sip_t.cd    = property(sip_t_get_cd   , sip_t_set_cd,    None, 'CD')


def sip_t_radec_bounds(self):
    W,H = self.wcstan.imagew, self.wcstan.imageh
    r,d = self.pixelxy2radec([1, W, W, 1], [1, 1, H, H])
    return (r.min(), r.max(), d.min(), d.max())
sip_t.radec_bounds = sip_t_radec_bounds    

#def sip_t_fromstring(s):
#   sip = sip_from_string(s, len(s),

_real_sip_t_init = sip_t.__init__
def my_sip_t_init(self, *args, **kwargs):
    _real_sip_t_init(self, *args, **kwargs)
    if self.this is None:
        raise RuntimeError('Duck punch!')
sip_t.__init__ = my_sip_t_init


Sip = sip_t
    

def coadd_add_numpy(*args):
  return _util.coadd_add_numpy(*args)
coadd_add_numpy = _util.coadd_add_numpy

def coadd_get_snapshot_numpy(*args):
  return _util.coadd_get_snapshot_numpy(*args)
coadd_get_snapshot_numpy = _util.coadd_get_snapshot_numpy

def broadcast_2to2ok(*args):
  return _util.broadcast_2to2ok(*args)
broadcast_2to2ok = _util.broadcast_2to2ok

def broadcast_2to2(*args):
  return _util.broadcast_2to2(*args)
broadcast_2to2 = _util.broadcast_2to2

def broadcast_2to2i(*args):
  return _util.broadcast_2to2i(*args)
broadcast_2to2i = _util.broadcast_2to2i

def tan_rd2xy_wrapper(*args):
  return _util.tan_rd2xy_wrapper(*args)
tan_rd2xy_wrapper = _util.tan_rd2xy_wrapper

def sip_rd2xy_wrapper(*args):
  return _util.sip_rd2xy_wrapper(*args)
sip_rd2xy_wrapper = _util.sip_rd2xy_wrapper

def anwcs_rd2xy_wrapper(*args):
  return _util.anwcs_rd2xy_wrapper(*args)
anwcs_rd2xy_wrapper = _util.anwcs_rd2xy_wrapper

def tan_iwc2xy_wrapper(*args):
  return _util.tan_iwc2xy_wrapper(*args)
tan_iwc2xy_wrapper = _util.tan_iwc2xy_wrapper

def sip_iwc2xy_wrapper(*args):
  return _util.sip_iwc2xy_wrapper(*args)
sip_iwc2xy_wrapper = _util.sip_iwc2xy_wrapper

def tan_iwc2rd_wrapper(*args):
  return _util.tan_iwc2rd_wrapper(*args)
tan_iwc2rd_wrapper = _util.tan_iwc2rd_wrapper

def sip_iwc2rd_wrapper(*args):
  return _util.sip_iwc2rd_wrapper(*args)
sip_iwc2rd_wrapper = _util.sip_iwc2rd_wrapper

def tan_rd2iwc_wrapper(*args):
  return _util.tan_rd2iwc_wrapper(*args)
tan_rd2iwc_wrapper = _util.tan_rd2iwc_wrapper

def sip_rd2iwc_wrapper(*args):
  return _util.sip_rd2iwc_wrapper(*args)
sip_rd2iwc_wrapper = _util.sip_rd2iwc_wrapper

def tan_xy2rd_wrapper(*args):
  return _util.tan_xy2rd_wrapper(*args)
tan_xy2rd_wrapper = _util.tan_xy2rd_wrapper

def sip_xy2rd_wrapper(*args):
  return _util.sip_xy2rd_wrapper(*args)
sip_xy2rd_wrapper = _util.sip_xy2rd_wrapper

def anwcs_xy2rd_wrapper(*args):
  return _util.anwcs_xy2rd_wrapper(*args)
anwcs_xy2rd_wrapper = _util.anwcs_xy2rd_wrapper

def tan_wcs_resample(*args):
  return _util.tan_wcs_resample(*args)
tan_wcs_resample = _util.tan_wcs_resample

def tan_numpy_xyz2pixelxy(*args):
  return _util.tan_numpy_xyz2pixelxy(*args)
tan_numpy_xyz2pixelxy = _util.tan_numpy_xyz2pixelxy
import numpy as np

def tan_t_tostring(self):
    ct = 'SIN' if self.sin else 'TAN'
    return ('%s: crpix (%.1f, %.1f), crval (%g, %g), cd (%g, %g, %g, %g), image %g x %g' %
            (ct, self.crpix[0], self.crpix[1], self.crval[0], self.crval[1],
             self.cd[0], self.cd[1], self.cd[2], self.cd[3],
             self.imagew, self.imageh))
tan_t.__str__ = tan_t_tostring

## picklable?
def tan_t_getstate(self):
    return (self.crpix[0], self.crpix[1], self.crval[0], self.crval[1],
            self.cd[0], self.cd[1], self.cd[2], self.cd[3],
            self.imagew, self.imageh, self.sin)
def tan_t_setstate(self, state):
    #print 'setstate: self', self, 'state', state
    #print 'state', state
    self.this = _util.new_tan_t()
    #print 'self', repr(self)
    p0,p1,v0,v1,cd0,cd1,cd2,cd3,w,h,sin = state
    self.set_crpix(p0,p1)
    self.set_crval(v0,v1)
    self.set_cd(cd0,cd1,cd2,cd3)
    self.set_imagesize(w,h)
    self.sin = sin
    #(self.crpix[0], self.crpix[1], self.crval[0], self.crval[1],
    #self.cd[0], self.cd[1], self.cd[2], self.cd[3],
    #self.imagew, self.imageh) = state
def tan_t_getnewargs(self):
    return ()
tan_t.__getstate__ = tan_t_getstate
tan_t.__setstate__ = tan_t_setstate
tan_t.__getnewargs__ = tan_t_getnewargs

def tan_t_get_cd(self):
    cd = self.cd
    return (cd[0], cd[1], cd[2], cd[3])
tan_t.get_cd = tan_t_get_cd




def tan_t_pixelxy2radec(self, x, y):
    return tan_xy2rd_wrapper(self.this, x, y)
tan_t.pixelxy2radec_single = tan_t.pixelxy2radec
tan_t.pixelxy2radec = tan_t_pixelxy2radec

def tan_t_radec2pixelxy(self, r, d):
    return tan_rd2xy_wrapper(self.this, r, d)
tan_t.radec2pixelxy_single = tan_t.radec2pixelxy
tan_t.radec2pixelxy = tan_t_radec2pixelxy

def tan_t_iwc2pixelxy(self, r, d):
    return tan_iwc2xy_wrapper(self.this, r, d)
tan_t.iwc2pixelxy_single = tan_t.iwc2pixelxy
tan_t.iwc2pixelxy = tan_t_iwc2pixelxy

def tan_t_radec2iwc(self, r, d):
    return tan_rd2iwc_wrapper(self.this, r, d)
tan_t.radec2iwc_single = tan_t.radec2iwc
tan_t.radec2iwc = tan_t_radec2iwc

def tan_t_iwc2radec(self, u, v):
    return tan_iwc2rd_wrapper(self.this, u, v)
tan_t.iwc2radec_single = tan_t.iwc2radec
tan_t.iwc2radec = tan_t_iwc2radec

def sip_t_pixelxy2radec(self, x, y):
    return sip_xy2rd_wrapper(self.this, x, y)
sip_t.pixelxy2radec_single = sip_t.pixelxy2radec
sip_t.pixelxy2radec = sip_t_pixelxy2radec

def sip_t_radec2pixelxy(self, r, d):
    return sip_rd2xy_wrapper(self.this, r, d)
sip_t.radec2pixelxy_single = sip_t.radec2pixelxy
sip_t.radec2pixelxy = sip_t_radec2pixelxy

def sip_t_iwc2pixelxy(self, r, d):
    return sip_iwc2xy_wrapper(self.this, r, d)
sip_t.iwc2pixelxy_single = sip_t.iwc2pixelxy
sip_t.iwc2pixelxy = sip_t_iwc2pixelxy

def sip_t_radec2iwc(self, r, d):
    return sip_rd2iwc_wrapper(self.this, r, d)
sip_t.radec2iwc_single = sip_t.radec2iwc
sip_t.radec2iwc = sip_t_radec2iwc

def sip_t_iwc2radec(self, u, v):
    return sip_iwc2rd_wrapper(self.this, u, v)
sip_t.iwc2radec_single = sip_t.iwc2radec
sip_t.iwc2radec = sip_t_iwc2radec


def anwcs_t_pixelxy2radec(self, x, y):
    return anwcs_xy2rd_wrapper(self.this, x, y)
anwcs_t.pixelxy2radec_single = anwcs_t.pixelxy2radec
anwcs_t.pixelxy2radec = anwcs_t_pixelxy2radec

def anwcs_t_radec2pixelxy(self, r, d):
    return anwcs_rd2xy_wrapper(self.this, r, d)
anwcs_t.radec2pixelxy_single = anwcs_t.radec2pixelxy
anwcs_t.radec2pixelxy = anwcs_t_radec2pixelxy






def tan_t_radec_bounds(self):
    W,H = self.imagew, self.imageh
    r,d = self.pixelxy2radec([1, W, W, 1], [1, 1, H, H])
    return (r.min(), r.max(), d.min(), d.max())
tan_t.radec_bounds = tan_t_radec_bounds    


_real_tan_t_init = tan_t.__init__
def my_tan_t_init(self, *args, **kwargs):
    _real_tan_t_init(self, *args, **kwargs)
    if self.this is None:
        raise RuntimeError('Duck punch!')
tan_t.__init__ = my_tan_t_init

Tan = tan_t

def tan_t_get_subimage(self, x0, y0, w, h):
    wcs2 = tan_t(self)
    cpx,cpy = wcs2.crpix
    wcs2.set_crpix(cpx - x0, cpy - y0)
    wcs2.set_width(float(w))
    wcs2.set_height(float(h))
    return wcs2
tan_t.get_subimage = tan_t_get_subimage

# Deja Vu!
# def sip_t_get_subimage(self, xlo, xhi, ylo, yhi):
#     sipout = sip_t(self)
#     sip_shift(self.this, sipout.this, float(xlo), float(xhi), float(ylo), float(yhi))
#     return sipout
# sip_t.get_subimage = sip_t_get_subimage

# picklable
def sip_t_getstate(self):
    t = (self.wcstan.__getstate__(),
         self.a_order, self.b_order, self.a, self.b,
         self.ap_order, self.bp_order, self.ap, self.bp)
    return t

def sip_t_setstate(self, s):
    self.this = _util.new_sip_t()
    (t, self.a_order, self.b_order, self.a, self.b,
     self.ap_order, self.bp_order, self.ap, self.bp) = s
    #self.wcstan.__setstate__(t)
    # disturbingly, tan_t_setstate doesn't work because it resets self.this = ...
    p0,p1,v0,v1,cd0,cd1,cd2,cd3,w,h,sin = t
    self.wcstan.set_crpix(p0,p1)
    self.wcstan.set_crval(v0,v1)
    self.wcstan.set_cd(cd0,cd1,cd2,cd3)
    self.wcstan.set_imagesize(w,h)
    self.wcstan.sin = sin

def sip_t_getnewargs(self):
    return ()

sip_t.__getstate__ = sip_t_getstate
sip_t.__setstate__ = sip_t_setstate
sip_t.__getnewargs__ = sip_t_getnewargs



def fits_use_error_system():
  return _util.fits_use_error_system()
fits_use_error_system = _util.fits_use_error_system

def fits_to_string(*args):
  return _util.fits_to_string(*args)
fits_to_string = _util.fits_to_string

def fits_write_float_image(*args):
  return _util.fits_write_float_image(*args)
fits_write_float_image = _util.fits_write_float_image

def fits_write_u8_image(*args):
  return _util.fits_write_u8_image(*args)
fits_write_u8_image = _util.fits_write_u8_image

def fits_write_i16_image(*args):
  return _util.fits_write_i16_image(*args)
fits_write_i16_image = _util.fits_write_i16_image

def fits_get_header_for_image(*args):
  return _util.fits_get_header_for_image(*args)
fits_get_header_for_image = _util.fits_get_header_for_image

def fits_get_header_for_image2(*args):
  return _util.fits_get_header_for_image2(*args)
fits_get_header_for_image2 = _util.fits_get_header_for_image2

def fits_get_header_for_image3(*args):
  return _util.fits_get_header_for_image3(*args)
fits_get_header_for_image3 = _util.fits_get_header_for_image3

def fits_write_header(*args):
  return _util.fits_write_header(*args)
fits_write_header = _util.fits_write_header

def fits_write_header_and_image(*args):
  return _util.fits_write_header_and_image(*args)
fits_write_header_and_image = _util.fits_write_header_and_image

def fits_get_double_val(*args):
  return _util.fits_get_double_val(*args)
fits_get_double_val = _util.fits_get_double_val

def fits_is_table_header(*args):
  return _util.fits_is_table_header(*args)
fits_is_table_header = _util.fits_is_table_header

def fits_is_primary_header(*args):
  return _util.fits_is_primary_header(*args)
fits_is_primary_header = _util.fits_is_primary_header

def fits_copy_non_table_headers(*args):
  return _util.fits_copy_non_table_headers(*args)
fits_copy_non_table_headers = _util.fits_copy_non_table_headers

def fits_get_dupstring(*args):
  return _util.fits_get_dupstring(*args)
fits_get_dupstring = _util.fits_get_dupstring

def fits_get_long_string(*args):
  return _util.fits_get_long_string(*args)
fits_get_long_string = _util.fits_get_long_string

def fits_header_addf(*args):
  return _util.fits_header_addf(*args)
fits_header_addf = _util.fits_header_addf

def fits_header_addf_longstring(*args):
  return _util.fits_header_addf_longstring(*args)
fits_header_addf_longstring = _util.fits_header_addf_longstring

def fits_header_add_longstring_boilerplate(*args):
  return _util.fits_header_add_longstring_boilerplate(*args)
fits_header_add_longstring_boilerplate = _util.fits_header_add_longstring_boilerplate

def fits_header_modf(*args):
  return _util.fits_header_modf(*args)
fits_header_modf = _util.fits_header_modf

def fits_header_add_int(*args):
  return _util.fits_header_add_int(*args)
fits_header_add_int = _util.fits_header_add_int

def fits_header_add_double(*args):
  return _util.fits_header_add_double(*args)
fits_header_add_double = _util.fits_header_add_double

def fits_header_set_double(*args):
  return _util.fits_header_set_double(*args)
fits_header_set_double = _util.fits_header_set_double

def fits_header_set_int(*args):
  return _util.fits_header_set_int(*args)
fits_header_set_int = _util.fits_header_set_int

def fits_header_mod_int(*args):
  return _util.fits_header_mod_int(*args)
fits_header_mod_int = _util.fits_header_mod_int

def fits_header_mod_double(*args):
  return _util.fits_header_mod_double(*args)
fits_header_mod_double = _util.fits_header_mod_double

def fits_update_value(*args):
  return _util.fits_update_value(*args)
fits_update_value = _util.fits_update_value

def fits_copy_table(*args):
  return _util.fits_copy_table(*args)
fits_copy_table = _util.fits_copy_table

def fits_copy_header(*args):
  return _util.fits_copy_header(*args)
fits_copy_header = _util.fits_copy_header

def fits_copy_all_headers(*args):
  return _util.fits_copy_all_headers(*args)
fits_copy_all_headers = _util.fits_copy_all_headers

def fits_append_all_headers(*args):
  return _util.fits_append_all_headers(*args)
fits_append_all_headers = _util.fits_append_all_headers

def fits_add_args(*args):
  return _util.fits_add_args(*args)
fits_add_args = _util.fits_add_args

def fits_add_long_comment(*args):
  return _util.fits_add_long_comment(*args)
fits_add_long_comment = _util.fits_add_long_comment

def fits_append_long_comment(*args):
  return _util.fits_append_long_comment(*args)
fits_append_long_comment = _util.fits_append_long_comment

def fits_add_long_history(*args):
  return _util.fits_add_long_history(*args)
fits_add_long_history = _util.fits_add_long_history

def fits_blocks_needed(*args):
  return _util.fits_blocks_needed(*args)
fits_blocks_needed = _util.fits_blocks_needed

def fits_bytes_needed(*args):
  return _util.fits_bytes_needed(*args)
fits_bytes_needed = _util.fits_bytes_needed

def fits_pad_file_with(*args):
  return _util.fits_pad_file_with(*args)
fits_pad_file_with = _util.fits_pad_file_with

def fits_pad_file(*args):
  return _util.fits_pad_file(*args)
fits_pad_file = _util.fits_pad_file

def fits_pad_file_name(*args):
  return _util.fits_pad_file_name(*args)
fits_pad_file_name = _util.fits_pad_file_name

def fits_fill_endian_string(*args):
  return _util.fits_fill_endian_string(*args)
fits_fill_endian_string = _util.fits_fill_endian_string

def fits_get_endian_string():
  return _util.fits_get_endian_string()
fits_get_endian_string = _util.fits_get_endian_string

def fits_check_endian(*args):
  return _util.fits_check_endian(*args)
fits_check_endian = _util.fits_check_endian

def fits_check_uint_size(*args):
  return _util.fits_check_uint_size(*args)
fits_check_uint_size = _util.fits_check_uint_size

def fits_check_double_size(*args):
  return _util.fits_check_double_size(*args)
fits_check_double_size = _util.fits_check_double_size

def fits_add_endian(*args):
  return _util.fits_add_endian(*args)
fits_add_endian = _util.fits_add_endian

def fits_add_reverse_endian(*args):
  return _util.fits_add_reverse_endian(*args)
fits_add_reverse_endian = _util.fits_add_reverse_endian

def fits_mod_reverse_endian(*args):
  return _util.fits_mod_reverse_endian(*args)
fits_mod_reverse_endian = _util.fits_mod_reverse_endian

def fits_add_uint_size(*args):
  return _util.fits_add_uint_size(*args)
fits_add_uint_size = _util.fits_add_uint_size

def fits_add_double_size(*args):
  return _util.fits_add_double_size(*args)
fits_add_double_size = _util.fits_add_double_size

def fits_find_column(*args):
  return _util.fits_find_column(*args)
fits_find_column = _util.fits_find_column

def fits_find_table_column(*args):
  return _util.fits_find_table_column(*args)
fits_find_table_column = _util.fits_find_table_column

def fits_get_table_column(*args):
  return _util.fits_get_table_column(*args)
fits_get_table_column = _util.fits_get_table_column

def fits_add_column(*args):
  return _util.fits_add_column(*args)
fits_add_column = _util.fits_add_column

def fits_offset_of_column(*args):
  return _util.fits_offset_of_column(*args)
fits_offset_of_column = _util.fits_offset_of_column

def fits_write_data_A(*args):
  return _util.fits_write_data_A(*args)
fits_write_data_A = _util.fits_write_data_A

def fits_write_data_B(*args):
  return _util.fits_write_data_B(*args)
fits_write_data_B = _util.fits_write_data_B

def fits_write_data_D(*args):
  return _util.fits_write_data_D(*args)
fits_write_data_D = _util.fits_write_data_D

def fits_write_data_E(*args):
  return _util.fits_write_data_E(*args)
fits_write_data_E = _util.fits_write_data_E

def fits_write_data_I(*args):
  return _util.fits_write_data_I(*args)
fits_write_data_I = _util.fits_write_data_I

def fits_write_data_J(*args):
  return _util.fits_write_data_J(*args)
fits_write_data_J = _util.fits_write_data_J

def fits_write_data_K(*args):
  return _util.fits_write_data_K(*args)
fits_write_data_K = _util.fits_write_data_K

def fits_write_data_L(*args):
  return _util.fits_write_data_L(*args)
fits_write_data_L = _util.fits_write_data_L

def fits_write_data_X(*args):
  return _util.fits_write_data_X(*args)
fits_write_data_X = _util.fits_write_data_X

def fits_write_data(*args):
  return _util.fits_write_data(*args)
fits_write_data = _util.fits_write_data

def fits_write_data_array(*args):
  return _util.fits_write_data_array(*args)
fits_write_data_array = _util.fits_write_data_array

def collapsing_find_minlabel(*args):
  return _util.collapsing_find_minlabel(*args)
collapsing_find_minlabel = _util.collapsing_find_minlabel

def dfind2(*args):
  return _util.dfind2(*args)
dfind2 = _util.dfind2

def dfind2_u8(*args):
  return _util.dfind2_u8(*args)
dfind2_u8 = _util.dfind2_u8

def dselip(*args):
  return _util.dselip(*args)
dselip = _util.dselip

def dselip_cleanup():
  return _util.dselip_cleanup()
dselip_cleanup = _util.dselip_cleanup

def dsmooth(*args):
  return _util.dsmooth(*args)
dsmooth = _util.dsmooth

def dsmooth2(*args):
  return _util.dsmooth2(*args)
dsmooth2 = _util.dsmooth2

def dsmooth2_u8(*args):
  return _util.dsmooth2_u8(*args)
dsmooth2_u8 = _util.dsmooth2_u8

def dsmooth2_i16(*args):
  return _util.dsmooth2_i16(*args)
dsmooth2_i16 = _util.dsmooth2_i16

def dobjects(*args):
  return _util.dobjects(*args)
dobjects = _util.dobjects

def dmask(*args):
  return _util.dmask(*args)
dmask = _util.dmask

def dpeaks(*args):
  return _util.dpeaks(*args)
dpeaks = _util.dpeaks

def dcen3x3(*args):
  return _util.dcen3x3(*args)
dcen3x3 = _util.dcen3x3

def dsigma(*args):
  return _util.dsigma(*args)
dsigma = _util.dsigma

def dsigma_u8(*args):
  return _util.dsigma_u8(*args)
dsigma_u8 = _util.dsigma_u8

def dmedsmooth(*args):
  return _util.dmedsmooth(*args)
dmedsmooth = _util.dmedsmooth

def dallpeaks(*args):
  return _util.dallpeaks(*args)
dallpeaks = _util.dallpeaks

def dallpeaks_u8(*args):
  return _util.dallpeaks_u8(*args)
dallpeaks_u8 = _util.dallpeaks_u8

def dallpeaks_i16(*args):
  return _util.dallpeaks_i16(*args)
dallpeaks_i16 = _util.dallpeaks_i16
# This file is compatible with both classic and new-style classes.


