# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.1.1
#
# 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
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _heasp
else:
    import _heasp

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 == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(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__)


OK = _heasp.OK
NoSuchFile = _heasp.NoSuchFile
NoData = _heasp.NoData
NoChannelData = _heasp.NoChannelData
NoStatError = _heasp.NoStatError
CannotCreate = _heasp.CannotCreate
NoEnergLo = _heasp.NoEnergLo
NoEnergHi = _heasp.NoEnergHi
NoSpecresp = _heasp.NoSpecresp
NoEboundsExt = _heasp.NoEboundsExt
NoEmin = _heasp.NoEmin
NoEmax = _heasp.NoEmax
NoMatrixExt = _heasp.NoMatrixExt
NoNgrp = _heasp.NoNgrp
NoFchan = _heasp.NoFchan
NoNchan = _heasp.NoNchan
NoMatrix = _heasp.NoMatrix
CannotCreateMatrixExt = _heasp.CannotCreateMatrixExt
CannotCreateEboundsExt = _heasp.CannotCreateEboundsExt
InconsistentGrouping = _heasp.InconsistentGrouping
InconsistentEnergies = _heasp.InconsistentEnergies
InconsistentChannels = _heasp.InconsistentChannels
InconsistentUnits = _heasp.InconsistentUnits
UnknownXUnits = _heasp.UnknownXUnits
UnknownYUnits = _heasp.UnknownYUnits
InconsistentNumelt = _heasp.InconsistentNumelt
InconsistentNumgrp = _heasp.InconsistentNumgrp
InconsistentNumTableParams = _heasp.InconsistentNumTableParams
TableParamValueOutsideRange = _heasp.TableParamValueOutsideRange
VectorIndexOutsideRange = _heasp.VectorIndexOutsideRange
InconsistentKeywordValues = _heasp.InconsistentKeywordValues
CannotCopyColumn = _heasp.CannotCopyColumn
CannotWriteMatrix = _heasp.CannotWriteMatrix
InconsistentTableFilter = _heasp.InconsistentTableFilter
NoChannels = _heasp.NoChannels
InconsistentChannelMin = _heasp.InconsistentChannelMin
InconsistentFChan = _heasp.InconsistentFChan
InconsistentNChan = _heasp.InconsistentNChan
class SwigPyIterator(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _heasp.delete_SwigPyIterator

    def value(self):
        return _heasp.SwigPyIterator_value(self)

    def incr(self, n=1):
        return _heasp.SwigPyIterator_incr(self, n)

    def decr(self, n=1):
        return _heasp.SwigPyIterator_decr(self, n)

    def distance(self, x):
        return _heasp.SwigPyIterator_distance(self, x)

    def equal(self, x):
        return _heasp.SwigPyIterator_equal(self, x)

    def copy(self):
        return _heasp.SwigPyIterator_copy(self)

    def next(self):
        return _heasp.SwigPyIterator_next(self)

    def __next__(self):
        return _heasp.SwigPyIterator___next__(self)

    def previous(self):
        return _heasp.SwigPyIterator_previous(self)

    def advance(self, n):
        return _heasp.SwigPyIterator_advance(self, n)

    def __eq__(self, x):
        return _heasp.SwigPyIterator___eq__(self, x)

    def __ne__(self, x):
        return _heasp.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n):
        return _heasp.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n):
        return _heasp.SwigPyIterator___isub__(self, n)

    def __add__(self, n):
        return _heasp.SwigPyIterator___add__(self, n)

    def __sub__(self, *args):
        return _heasp.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _heasp:
_heasp.SwigPyIterator_swigregister(SwigPyIterator)
cvar = _heasp.cvar
SPerrorNames = cvar.SPerrorNames
FUZZY = cvar.FUZZY
BlankStr = cvar.BlankStr

class StringVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _heasp.StringVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _heasp.StringVector___nonzero__(self)

    def __bool__(self):
        return _heasp.StringVector___bool__(self)

    def __len__(self):
        return _heasp.StringVector___len__(self)

    def __getslice__(self, i, j):
        return _heasp.StringVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _heasp.StringVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _heasp.StringVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _heasp.StringVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _heasp.StringVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _heasp.StringVector___setitem__(self, *args)

    def pop(self):
        return _heasp.StringVector_pop(self)

    def append(self, x):
        return _heasp.StringVector_append(self, x)

    def empty(self):
        return _heasp.StringVector_empty(self)

    def size(self):
        return _heasp.StringVector_size(self)

    def swap(self, v):
        return _heasp.StringVector_swap(self, v)

    def begin(self):
        return _heasp.StringVector_begin(self)

    def end(self):
        return _heasp.StringVector_end(self)

    def rbegin(self):
        return _heasp.StringVector_rbegin(self)

    def rend(self):
        return _heasp.StringVector_rend(self)

    def clear(self):
        return _heasp.StringVector_clear(self)

    def get_allocator(self):
        return _heasp.StringVector_get_allocator(self)

    def pop_back(self):
        return _heasp.StringVector_pop_back(self)

    def erase(self, *args):
        return _heasp.StringVector_erase(self, *args)

    def __init__(self, *args):
        _heasp.StringVector_swiginit(self, _heasp.new_StringVector(*args))

    def push_back(self, x):
        return _heasp.StringVector_push_back(self, x)

    def front(self):
        return _heasp.StringVector_front(self)

    def back(self):
        return _heasp.StringVector_back(self)

    def assign(self, n, x):
        return _heasp.StringVector_assign(self, n, x)

    def resize(self, *args):
        return _heasp.StringVector_resize(self, *args)

    def insert(self, *args):
        return _heasp.StringVector_insert(self, *args)

    def reserve(self, n):
        return _heasp.StringVector_reserve(self, n)

    def capacity(self):
        return _heasp.StringVector_capacity(self)
    __swig_destroy__ = _heasp.delete_StringVector

# Register StringVector in _heasp:
_heasp.StringVector_swigregister(StringVector)
HAVE_pha = _heasp.HAVE_pha
class pha(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _heasp.pha_swiginit(self, _heasp.new_pha(*args))
    __swig_destroy__ = _heasp.delete_pha

    def read(self, filename, PHAnumber=1, SpectrumNumber=0):
        return _heasp.pha_read(self, filename, PHAnumber, SpectrumNumber)

    def load(self, *args):
        return _heasp.pha_load(self, *args)

    def copy(self, arg2):
        return _heasp.pha_copy(self, arg2)

    def disp(self):
        return _heasp.pha_disp(self)

    def clear(self):
        return _heasp.pha_clear(self)

    def check(self):
        return _heasp.pha_check(self)

    def write(self, *args):
        return _heasp.pha_write(self, *args)

    def __imul__(self, arg2):
        return _heasp.pha___imul__(self, arg2)

    def __iadd__(self, arg2):
        return _heasp.pha___iadd__(self, arg2)

    def checkCompatibility(self, arg2):
        return _heasp.pha_checkCompatibility(self, arg2)

    def selectChannels(self, Start, End):
        return _heasp.pha_selectChannels(self, Start, End)

    def setGrouping(self, arg2):
        return _heasp.pha_setGrouping(self, arg2)

    def getGrouping(self):
        return _heasp.pha_getGrouping(self)

    def getMinCountsGrouping(self, MinCounts, StartChannel=0, EndChannel=0):
        return _heasp.pha_getMinCountsGrouping(self, MinCounts, StartChannel, EndChannel)

    def getMinSNGrouping(self, *args):
        return _heasp.pha_getMinSNGrouping(self, *args)

    def getMinSNOptimalGrouping(self, *args):
        return _heasp.pha_getMinSNOptimalGrouping(self, *args)

    def calcSignalAndNoise(self, *args):
        return _heasp.pha_calcSignalAndNoise(self, *args)

    def rebinChannels(self, *args):
        return _heasp.pha_rebinChannels(self, *args)

    def shiftChannels(self, *args):
        return _heasp.pha_shiftChannels(self, *args)

    def convertUnits(self, ChannelLowEnergy, ChannelHighEnergy, EnergyUnits):
        return _heasp.pha_convertUnits(self, ChannelLowEnergy, ChannelHighEnergy, EnergyUnits)

    def NumberChannels(self):
        return _heasp.pha_NumberChannels(self)

    def getNumberChannels(self):
        return _heasp.pha_getNumberChannels(self)

    def getFirstChannel(self):
        return _heasp.pha_getFirstChannel(self)

    def setFirstChannel(self, value):
        return _heasp.pha_setFirstChannel(self, value)

    def getPha(self):
        return _heasp.pha_getPha(self)

    def setPha(self, values):
        return _heasp.pha_setPha(self, values)

    def getPhaElement(self, i):
        return _heasp.pha_getPhaElement(self, i)

    def setPhaElement(self, i, value):
        return _heasp.pha_setPhaElement(self, i, value)

    def getStatError(self):
        return _heasp.pha_getStatError(self)

    def setStatError(self, values):
        return _heasp.pha_setStatError(self, values)

    def getStatErrorElement(self, i):
        return _heasp.pha_getStatErrorElement(self, i)

    def setStatErrorElement(self, i, value):
        return _heasp.pha_setStatErrorElement(self, i, value)

    def getSysError(self):
        return _heasp.pha_getSysError(self)

    def setSysError(self, values):
        return _heasp.pha_setSysError(self, values)

    def getSysErrorElement(self, i):
        return _heasp.pha_getSysErrorElement(self, i)

    def setSysErrorElement(self, i, value):
        return _heasp.pha_setSysErrorElement(self, i, value)

    def getChannel(self):
        return _heasp.pha_getChannel(self)

    def setChannel(self, values):
        return _heasp.pha_setChannel(self, values)

    def getChannelElement(self, i):
        return _heasp.pha_getChannelElement(self, i)

    def setChannelElement(self, i, value):
        return _heasp.pha_setChannelElement(self, i, value)

    def getQuality(self):
        return _heasp.pha_getQuality(self)

    def setQuality(self, values):
        return _heasp.pha_setQuality(self, values)

    def getQualityElement(self, i):
        return _heasp.pha_getQualityElement(self, i)

    def setQualityElement(self, i, value):
        return _heasp.pha_setQualityElement(self, i, value)

    def getGroup(self):
        return _heasp.pha_getGroup(self)

    def setGroup(self, values):
        return _heasp.pha_setGroup(self, values)

    def getGroupElement(self, i):
        return _heasp.pha_getGroupElement(self, i)

    def setGroupElement(self, i, value):
        return _heasp.pha_setGroupElement(self, i, value)

    def getAreaScaling(self):
        return _heasp.pha_getAreaScaling(self)

    def setAreaScaling(self, values):
        return _heasp.pha_setAreaScaling(self, values)

    def getAreaScalingElement(self, i):
        return _heasp.pha_getAreaScalingElement(self, i)

    def setAreaScalingElement(self, i, value):
        return _heasp.pha_setAreaScalingElement(self, i, value)

    def getBackScaling(self):
        return _heasp.pha_getBackScaling(self)

    def setBackScaling(self, values):
        return _heasp.pha_setBackScaling(self, values)

    def getBackScalingElement(self, i):
        return _heasp.pha_getBackScalingElement(self, i)

    def setBackScalingElement(self, i, value):
        return _heasp.pha_setBackScalingElement(self, i, value)

    def getExposure(self):
        return _heasp.pha_getExposure(self)

    def setExposure(self, value):
        return _heasp.pha_setExposure(self, value)

    def getCorrectionScaling(self):
        return _heasp.pha_getCorrectionScaling(self)

    def setCorrectionScaling(self, value):
        return _heasp.pha_setCorrectionScaling(self, value)

    def getDetChans(self):
        return _heasp.pha_getDetChans(self)

    def setDetChans(self, value):
        return _heasp.pha_setDetChans(self, value)

    def getPoisserr(self):
        return _heasp.pha_getPoisserr(self)

    def setPoisserr(self, value):
        return _heasp.pha_setPoisserr(self, value)

    def getDatatype(self):
        return _heasp.pha_getDatatype(self)

    def setDatatype(self, value):
        return _heasp.pha_setDatatype(self, value)

    def getSpectrumtype(self):
        return _heasp.pha_getSpectrumtype(self)

    def setSpectrumtype(self, value):
        return _heasp.pha_setSpectrumtype(self, value)

    def getResponseFile(self):
        return _heasp.pha_getResponseFile(self)

    def setResponseFile(self, value):
        return _heasp.pha_setResponseFile(self, value)

    def getAncillaryFile(self):
        return _heasp.pha_getAncillaryFile(self)

    def setAncillaryFile(self, value):
        return _heasp.pha_setAncillaryFile(self, value)

    def getBackgroundFile(self):
        return _heasp.pha_getBackgroundFile(self)

    def setBackgroundFile(self, value):
        return _heasp.pha_setBackgroundFile(self, value)

    def getCorrectionFile(self):
        return _heasp.pha_getCorrectionFile(self)

    def setCorrectionFile(self, value):
        return _heasp.pha_setCorrectionFile(self, value)

    def getFluxUnits(self):
        return _heasp.pha_getFluxUnits(self)

    def setFluxUnits(self, value):
        return _heasp.pha_setFluxUnits(self, value)

    def getChannelType(self):
        return _heasp.pha_getChannelType(self)

    def setChannelType(self, value):
        return _heasp.pha_setChannelType(self, value)

    def getTelescope(self):
        return _heasp.pha_getTelescope(self)

    def setTelescope(self, value):
        return _heasp.pha_setTelescope(self, value)

    def getInstrument(self):
        return _heasp.pha_getInstrument(self)

    def setInstrument(self, value):
        return _heasp.pha_setInstrument(self, value)

    def getDetector(self):
        return _heasp.pha_getDetector(self)

    def setDetector(self, value):
        return _heasp.pha_setDetector(self, value)

    def getFilter(self):
        return _heasp.pha_getFilter(self)

    def setFilter(self, value):
        return _heasp.pha_setFilter(self, value)

    def getDatamode(self):
        return _heasp.pha_getDatamode(self)

    def setDatamode(self, value):
        return _heasp.pha_setDatamode(self, value)

    def getStokesParameter(self):
        return _heasp.pha_getStokesParameter(self)

    def setStokesParameter(self, value):
        return _heasp.pha_setStokesParameter(self, value)

    def getStokesWeighting(self):
        return _heasp.pha_getStokesWeighting(self)

    def setStokesWeighting(self, value):
        return _heasp.pha_setStokesWeighting(self, value)

    def getXSPECFilter(self):
        return _heasp.pha_getXSPECFilter(self)

    def setXSPECFilter(self, values):
        return _heasp.pha_setXSPECFilter(self, values)

    def getXSPECFilterElement(self, i):
        return _heasp.pha_getXSPECFilterElement(self, i)

    def setXSPECFilterElement(self, i, value):
        return _heasp.pha_setXSPECFilterElement(self, i, value)

# Register pha in _heasp:
_heasp.pha_swigregister(pha)

def PHAtype(*args):
    return _heasp.PHAtype(*args)

def IsPHAcounts(*args):
    return _heasp.IsPHAcounts(*args)

def NumberofSpectra(*args):
    return _heasp.NumberofSpectra(*args)

def SpectrumExtensions(*args):
    return _heasp.SpectrumExtensions(*args)
HAVE_phaII = _heasp.HAVE_phaII
class phaII(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _heasp.phaII_swiginit(self, _heasp.new_phaII(*args))
    __swig_destroy__ = _heasp.delete_phaII

    def read(self, *args):
        return _heasp.phaII_read(self, *args)

    def copy(self, arg2):
        return _heasp.phaII_copy(self, arg2)

    def get(self, number):
        return _heasp.phaII_get(self, number)

    def push(self, spectrum):
        return _heasp.phaII_push(self, spectrum)

    def disp(self):
        return _heasp.phaII_disp(self)

    def clear(self):
        return _heasp.phaII_clear(self)

    def check(self):
        return _heasp.phaII_check(self)

    def write(self, *args):
        return _heasp.phaII_write(self, *args)

    def NumberSpectra(self):
        return _heasp.phaII_NumberSpectra(self)

    def getNumberSpectra(self):
        return _heasp.phaII_getNumberSpectra(self)

    def getphas(self):
        return _heasp.phaII_getphas(self)

    def setphas(self, values):
        return _heasp.phaII_setphas(self, values)

    def getphasElement(self, i):
        return _heasp.phaII_getphasElement(self, i)

    def setphasElement(self, i, value):
        return _heasp.phaII_setphasElement(self, i, value)

# Register phaII in _heasp:
_heasp.phaII_swigregister(phaII)
HAVE_rmf = _heasp.HAVE_rmf
class rmf(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _heasp.rmf_swiginit(self, _heasp.new_rmf(*args))
    __swig_destroy__ = _heasp.delete_rmf

    def read(self, filename, RMFnumber=1):
        return _heasp.rmf_read(self, filename, RMFnumber)

    def readMatrix(self, filename, RMFnumber=1):
        return _heasp.rmf_readMatrix(self, filename, RMFnumber)

    def readChannelBounds(self, filename, RMFnumber=1):
        return _heasp.rmf_readChannelBounds(self, filename, RMFnumber)

    def load(self, inNumberGroups, inFirstChannelGroup, inNumberChannelsGroup, inOrderGroup, inLowEnergy, inHighEnergy, inMatrix, inChannelLowEnergy, inChannelHighEnergy, inFirstChannel, inAreaScaling, inResponseThreshold, inKeys):
        return _heasp.rmf_load(self, inNumberGroups, inFirstChannelGroup, inNumberChannelsGroup, inOrderGroup, inLowEnergy, inHighEnergy, inMatrix, inChannelLowEnergy, inChannelHighEnergy, inFirstChannel, inAreaScaling, inResponseThreshold, inKeys)

    def initialize(self, arg2):
        return _heasp.rmf_initialize(self, arg2)

    def loadDiagonalResponse(self, eLow, eHigh, rspVals, firstChan):
        return _heasp.rmf_loadDiagonalResponse(self, eLow, eHigh, rspVals, firstChan)

    def ElementValue(self, ChannelNumber, EnergyBin, GratingOrder=-999):
        return _heasp.rmf_ElementValue(self, ChannelNumber, EnergyBin, GratingOrder)

    def RowValues(self, EnergyBin, GratingOrder=-999):
        return _heasp.rmf_RowValues(self, EnergyBin, GratingOrder)

    def RandomChannels(self, *args):
        return _heasp.rmf_RandomChannels(self, *args)

    def disp(self):
        return _heasp.rmf_disp(self)

    def clear(self):
        return _heasp.rmf_clear(self)

    def clearMatrix(self):
        return _heasp.rmf_clearMatrix(self)

    def check(self):
        return _heasp.rmf_check(self)

    def normalize(self):
        return _heasp.rmf_normalize(self)

    def changeFirstChannel(self, first):
        return _heasp.rmf_changeFirstChannel(self, first)

    def compress(self, threshold):
        return _heasp.rmf_compress(self, threshold)

    def uncompress(self):
        return _heasp.rmf_uncompress(self)

    def rebinChannels(self, arg2):
        return _heasp.rmf_rebinChannels(self, arg2)

    def rebinEnergies(self, arg2):
        return _heasp.rmf_rebinEnergies(self, arg2)

    def shiftChannels(self, *args):
        return _heasp.rmf_shiftChannels(self, *args)

    def shiftEnergies(self, *args):
        return _heasp.rmf_shiftEnergies(self, *args)

    def remapEnergies(self, targetEnergies):
        return _heasp.rmf_remapEnergies(self, targetEnergies)

    def interpolateAndMultiply(self, energies, factors):
        return _heasp.rmf_interpolateAndMultiply(self, energies, factors)

    def write(self, *args):
        return _heasp.rmf_write(self, *args)

    def writeMatrix(self, filename):
        return _heasp.rmf_writeMatrix(self, filename)

    def writeChannelBounds(self, filename):
        return _heasp.rmf_writeChannelBounds(self, filename)

    def __imul__(self, *args):
        return _heasp.rmf___imul__(self, *args)

    def __iadd__(self, arg2):
        return _heasp.rmf___iadd__(self, arg2)

    def checkCompatibility(self, *args):
        return _heasp.rmf_checkCompatibility(self, *args)

    def convertUnits(self):
        return _heasp.rmf_convertUnits(self)

    def reverseRows(self):
        return _heasp.rmf_reverseRows(self)

    def addRow(self, *args):
        return _heasp.rmf_addRow(self, *args)

    def substituteRow(self, *args):
        return _heasp.rmf_substituteRow(self, *args)

    def multiplyByModel(self, model):
        return _heasp.rmf_multiplyByModel(self, model)

    def estimatedFWHM(self):
        return _heasp.rmf_estimatedFWHM(self)

    def estimatedFWHMperChannel(self):
        return _heasp.rmf_estimatedFWHMperChannel(self)

    def NumberChannels(self):
        return _heasp.rmf_NumberChannels(self)

    def getNumberChannels(self):
        return _heasp.rmf_getNumberChannels(self)

    def NumberEnergyBins(self):
        return _heasp.rmf_NumberEnergyBins(self)

    def getNumberEnergyBins(self):
        return _heasp.rmf_getNumberEnergyBins(self)

    def NumberTotalGroups(self):
        return _heasp.rmf_NumberTotalGroups(self)

    def getNumberTotalGroups(self):
        return _heasp.rmf_getNumberTotalGroups(self)

    def NumberTotalElements(self):
        return _heasp.rmf_NumberTotalElements(self)

    def getNumberTotalElements(self):
        return _heasp.rmf_getNumberTotalElements(self)

    def getFirstChannel(self):
        return _heasp.rmf_getFirstChannel(self)

    def setFirstChannel(self, value):
        return _heasp.rmf_setFirstChannel(self, value)

    def getNumberGroups(self):
        return _heasp.rmf_getNumberGroups(self)

    def setNumberGroups(self, values):
        return _heasp.rmf_setNumberGroups(self, values)

    def getNumberGroupsForEnergyBin(self, i):
        return _heasp.rmf_getNumberGroupsForEnergyBin(self, i)

    def setNumberGroupsForEnergyBin(self, i, value):
        return _heasp.rmf_setNumberGroupsForEnergyBin(self, i, value)

    def getFirstChannelGroup(self):
        return _heasp.rmf_getFirstChannelGroup(self)

    def setFirstChannelGroup(self, values):
        return _heasp.rmf_setFirstChannelGroup(self, values)

    def getFirstChannelGroupForEnergyBin(self, i):
        return _heasp.rmf_getFirstChannelGroupForEnergyBin(self, i)

    def setFirstChannelGroupForEnergyBin(self, i, value):
        return _heasp.rmf_setFirstChannelGroupForEnergyBin(self, i, value)

    def getNumberChannelsGroup(self):
        return _heasp.rmf_getNumberChannelsGroup(self)

    def setNumberChannelsGroup(self, values):
        return _heasp.rmf_setNumberChannelsGroup(self, values)

    def getNumberChannelsGroupForEnergyBin(self, i):
        return _heasp.rmf_getNumberChannelsGroupForEnergyBin(self, i)

    def setNumberChannelsGroupForEnergyBin(self, i, value):
        return _heasp.rmf_setNumberChannelsGroupForEnergyBin(self, i, value)

    def getOrderGroup(self):
        return _heasp.rmf_getOrderGroup(self)

    def setOrderGroup(self, values):
        return _heasp.rmf_setOrderGroup(self, values)

    def getOrderGroupForEnergyBin(self, i):
        return _heasp.rmf_getOrderGroupForEnergyBin(self, i)

    def setOrderGroupForEnergyBin(self, i, value):
        return _heasp.rmf_setOrderGroupForEnergyBin(self, i, value)

    def getLowEnergy(self):
        return _heasp.rmf_getLowEnergy(self)

    def setLowEnergy(self, values):
        return _heasp.rmf_setLowEnergy(self, values)

    def getLowEnergyElement(self, i):
        return _heasp.rmf_getLowEnergyElement(self, i)

    def setLowEnergyElement(self, i, value):
        return _heasp.rmf_setLowEnergyElement(self, i, value)

    def getHighEnergy(self):
        return _heasp.rmf_getHighEnergy(self)

    def setHighEnergy(self, values):
        return _heasp.rmf_setHighEnergy(self, values)

    def getHighEnergyElement(self, i):
        return _heasp.rmf_getHighEnergyElement(self, i)

    def setHighEnergyElement(self, i, value):
        return _heasp.rmf_setHighEnergyElement(self, i, value)

    def getMatrix(self):
        return _heasp.rmf_getMatrix(self)

    def setMatrix(self, values):
        return _heasp.rmf_setMatrix(self, values)

    def getMatrixForEnergyBin(self, i):
        return _heasp.rmf_getMatrixForEnergyBin(self, i)

    def setMatrixForEnergyBin(self, i, value):
        return _heasp.rmf_setMatrixForEnergyBin(self, i, value)

    def getChannelLowEnergy(self):
        return _heasp.rmf_getChannelLowEnergy(self)

    def setChannelLowEnergy(self, values):
        return _heasp.rmf_setChannelLowEnergy(self, values)

    def getChannelLowEnergyElement(self, i):
        return _heasp.rmf_getChannelLowEnergyElement(self, i)

    def setChannelLowEnergyElement(self, i, value):
        return _heasp.rmf_setChannelLowEnergyElement(self, i, value)

    def getChannelHighEnergy(self):
        return _heasp.rmf_getChannelHighEnergy(self)

    def setChannelHighEnergy(self, values):
        return _heasp.rmf_setChannelHighEnergy(self, values)

    def getChannelHighEnergyElement(self, i):
        return _heasp.rmf_getChannelHighEnergyElement(self, i)

    def setChannelHighEnergyElement(self, i, value):
        return _heasp.rmf_setChannelHighEnergyElement(self, i, value)

    def getAreaScaling(self):
        return _heasp.rmf_getAreaScaling(self)

    def setAreaScaling(self, value):
        return _heasp.rmf_setAreaScaling(self, value)

    def getResponseThreshold(self):
        return _heasp.rmf_getResponseThreshold(self)

    def setResponseThreshold(self, value):
        return _heasp.rmf_setResponseThreshold(self, value)

    def getEnergyUnits(self):
        return _heasp.rmf_getEnergyUnits(self)

    def setEnergyUnits(self, value):
        return _heasp.rmf_setEnergyUnits(self, value)

    def getRMFUnits(self):
        return _heasp.rmf_getRMFUnits(self)

    def setRMFUnits(self, value):
        return _heasp.rmf_setRMFUnits(self, value)

    def getChannelType(self):
        return _heasp.rmf_getChannelType(self)

    def setChannelType(self, value):
        return _heasp.rmf_setChannelType(self, value)

    def getTelescope(self):
        return _heasp.rmf_getTelescope(self)

    def setTelescope(self, value):
        return _heasp.rmf_setTelescope(self, value)

    def getInstrument(self):
        return _heasp.rmf_getInstrument(self)

    def setInstrument(self, value):
        return _heasp.rmf_setInstrument(self, value)

    def getDetector(self):
        return _heasp.rmf_getDetector(self)

    def setDetector(self, value):
        return _heasp.rmf_setDetector(self, value)

    def getFilter(self):
        return _heasp.rmf_getFilter(self)

    def setFilter(self, value):
        return _heasp.rmf_setFilter(self, value)

    def getRMFType(self):
        return _heasp.rmf_getRMFType(self)

    def setRMFType(self, value):
        return _heasp.rmf_setRMFType(self, value)

    def getRMFExtensionName(self):
        return _heasp.rmf_getRMFExtensionName(self)

    def setRMFExtensionName(self, value):
        return _heasp.rmf_setRMFExtensionName(self, value)

    def getEBDExtensionName(self):
        return _heasp.rmf_getEBDExtensionName(self)

    def setEBDExtensionName(self, value):
        return _heasp.rmf_setEBDExtensionName(self, value)

    def getStokesParameter(self):
        return _heasp.rmf_getStokesParameter(self)

    def setStokesParameter(self, value):
        return _heasp.rmf_setStokesParameter(self, value)

    def getStokesWeighting(self):
        return _heasp.rmf_getStokesWeighting(self)

    def setStokesWeighting(self, value):
        return _heasp.rmf_setStokesWeighting(self, value)

# Register rmf in _heasp:
_heasp.rmf_swigregister(rmf)

def RMFeboundsExtensions(*args):
    return _heasp.RMFeboundsExtensions(*args)

def RMFmatrixExtensions(*args):
    return _heasp.RMFmatrixExtensions(*args)

def calcGaussResp(width, energy, threshold, ChannelLowEnergy, ChannelHighEnergy, ResponseVector):
    return _heasp.calcGaussResp(width, energy, threshold, ChannelLowEnergy, ChannelHighEnergy, ResponseVector)

def binarySearch(energy, lowEnergy, highEnergy):
    return _heasp.binarySearch(energy, lowEnergy, highEnergy)
HAVE_rmft = _heasp.HAVE_rmft
class rmft(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        _heasp.rmft_swiginit(self, _heasp.new_rmft())
    __swig_destroy__ = _heasp.delete_rmft

    def load(self, arg2):
        return _heasp.rmft_load(self, arg2)

    def ElementValue(self, arg2, arg3):
        return _heasp.rmft_ElementValue(self, arg2, arg3)

    def RowValues(self, arg2):
        return _heasp.rmft_RowValues(self, arg2)

    def disp(self):
        return _heasp.rmft_disp(self)

    def clear(self):
        return _heasp.rmft_clear(self)

    def NumberChannels(self):
        return _heasp.rmft_NumberChannels(self)

    def getNumberChannels(self):
        return _heasp.rmft_getNumberChannels(self)

    def NumberEnergyBins(self):
        return _heasp.rmft_NumberEnergyBins(self)

    def getNumberEnergyBins(self):
        return _heasp.rmft_getNumberEnergyBins(self)

    def NumberTotalGroups(self):
        return _heasp.rmft_NumberTotalGroups(self)

    def getNumberTotalGroups(self):
        return _heasp.rmft_getNumberTotalGroups(self)

    def NumberTotalElements(self):
        return _heasp.rmft_NumberTotalElements(self)

    def getNumberTotalElements(self):
        return _heasp.rmft_getNumberTotalElements(self)

    def getFirstChannel(self):
        return _heasp.rmft_getFirstChannel(self)

    def setFirstChannel(self, value):
        return _heasp.rmft_setFirstChannel(self, value)

    def getNumberGroups(self):
        return _heasp.rmft_getNumberGroups(self)

    def setNumberGroups(self, values):
        return _heasp.rmft_setNumberGroups(self, values)

    def getNumberGroupsForChannel(self, i):
        return _heasp.rmft_getNumberGroupsForChannel(self, i)

    def setNumberGroupsForChannel(self, i, value):
        return _heasp.rmft_setNumberGroupsForChannel(self, i, value)

    def getFirstEnergyGroup(self):
        return _heasp.rmft_getFirstEnergyGroup(self)

    def setFirstEnergyGroup(self, values):
        return _heasp.rmft_setFirstEnergyGroup(self, values)

    def getFirstEnergyGroupForChannel(self, i):
        return _heasp.rmft_getFirstEnergyGroupForChannel(self, i)

    def setFirstEnergyGroupForChannel(self, i, value):
        return _heasp.rmft_setFirstEnergyGroupForChannel(self, i, value)

    def getNumberEnergiesGroup(self):
        return _heasp.rmft_getNumberEnergiesGroup(self)

    def setNumberEnergiesGroup(self, values):
        return _heasp.rmft_setNumberEnergiesGroup(self, values)

    def getNumberEnergiesGroupForChannel(self, i):
        return _heasp.rmft_getNumberEnergiesGroupForChannel(self, i)

    def setNumberEnergiesGroupForChannel(self, i, value):
        return _heasp.rmft_setNumberEnergiesGroupForChannel(self, i, value)

    def getOrderGroup(self):
        return _heasp.rmft_getOrderGroup(self)

    def setOrderGroup(self, values):
        return _heasp.rmft_setOrderGroup(self, values)

    def getOrderGroupForChannel(self, i):
        return _heasp.rmft_getOrderGroupForChannel(self, i)

    def setOrderGroupForChannel(self, i, value):
        return _heasp.rmft_setOrderGroupForChannel(self, i, value)

    def getLowEnergy(self):
        return _heasp.rmft_getLowEnergy(self)

    def setLowEnergy(self, values):
        return _heasp.rmft_setLowEnergy(self, values)

    def getLowEnergyElement(self, i):
        return _heasp.rmft_getLowEnergyElement(self, i)

    def setLowEnergyElement(self, i, value):
        return _heasp.rmft_setLowEnergyElement(self, i, value)

    def getHighEnergy(self):
        return _heasp.rmft_getHighEnergy(self)

    def setHighEnergy(self, values):
        return _heasp.rmft_setHighEnergy(self, values)

    def getHighEnergyElement(self, i):
        return _heasp.rmft_getHighEnergyElement(self, i)

    def setHighEnergyElement(self, i, value):
        return _heasp.rmft_setHighEnergyElement(self, i, value)

    def getMatrix(self):
        return _heasp.rmft_getMatrix(self)

    def setMatrix(self, values):
        return _heasp.rmft_setMatrix(self, values)

    def getMatrixForChannel(self, i):
        return _heasp.rmft_getMatrixForChannel(self, i)

    def setMatrixForChannel(self, i, value):
        return _heasp.rmft_setMatrixForChannel(self, i, value)

    def getChannelLowEnergy(self):
        return _heasp.rmft_getChannelLowEnergy(self)

    def setChannelLowEnergy(self, values):
        return _heasp.rmft_setChannelLowEnergy(self, values)

    def getChannelLowEnergyElement(self, i):
        return _heasp.rmft_getChannelLowEnergyElement(self, i)

    def setChannelLowEnergyElement(self, i, value):
        return _heasp.rmft_setChannelLowEnergyElement(self, i, value)

    def getChannelHighEnergy(self):
        return _heasp.rmft_getChannelHighEnergy(self)

    def setChannelHighEnergy(self, values):
        return _heasp.rmft_setChannelHighEnergy(self, values)

    def getChannelHighEnergyElement(self, i):
        return _heasp.rmft_getChannelHighEnergyElement(self, i)

    def setChannelHighEnergyElement(self, i, value):
        return _heasp.rmft_setChannelHighEnergyElement(self, i, value)

    def getAreaScaling(self):
        return _heasp.rmft_getAreaScaling(self)

    def setAreaScaling(self, value):
        return _heasp.rmft_setAreaScaling(self, value)

    def getResponseThreshold(self):
        return _heasp.rmft_getResponseThreshold(self)

    def setResponseThreshold(self, value):
        return _heasp.rmft_setResponseThreshold(self, value)

    def getEnergyUnits(self):
        return _heasp.rmft_getEnergyUnits(self)

    def setEnergyUnits(self, value):
        return _heasp.rmft_setEnergyUnits(self, value)

    def getRMFUnits(self):
        return _heasp.rmft_getRMFUnits(self)

    def setRMFUnits(self, value):
        return _heasp.rmft_setRMFUnits(self, value)

    def getChannelType(self):
        return _heasp.rmft_getChannelType(self)

    def setChannelType(self, value):
        return _heasp.rmft_setChannelType(self, value)

    def getTelescope(self):
        return _heasp.rmft_getTelescope(self)

    def setTelescope(self, value):
        return _heasp.rmft_setTelescope(self, value)

    def getInstrument(self):
        return _heasp.rmft_getInstrument(self)

    def setInstrument(self, value):
        return _heasp.rmft_setInstrument(self, value)

    def getDetector(self):
        return _heasp.rmft_getDetector(self)

    def setDetector(self, value):
        return _heasp.rmft_setDetector(self, value)

    def getFilter(self):
        return _heasp.rmft_getFilter(self)

    def setFilter(self, value):
        return _heasp.rmft_setFilter(self, value)

    def getRMFType(self):
        return _heasp.rmft_getRMFType(self)

    def setRMFType(self, value):
        return _heasp.rmft_setRMFType(self, value)

    def getRMFExtensionName(self):
        return _heasp.rmft_getRMFExtensionName(self)

    def setRMFExtensionName(self, value):
        return _heasp.rmft_setRMFExtensionName(self, value)

    def getEBDExtensionName(self):
        return _heasp.rmft_getEBDExtensionName(self)

    def setEBDExtensionName(self, value):
        return _heasp.rmft_setEBDExtensionName(self, value)

# Register rmft in _heasp:
_heasp.rmft_swigregister(rmft)
HAVE_arf = _heasp.HAVE_arf
class arf(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _heasp.arf_swiginit(self, _heasp.new_arf(*args))
    __swig_destroy__ = _heasp.delete_arf

    def read(self, filename, ARFnumber=1, RowNumber=0):
        return _heasp.arf_read(self, filename, ARFnumber, RowNumber)

    def copy(self, arg2):
        return _heasp.arf_copy(self, arg2)

    def disp(self):
        return _heasp.arf_disp(self)

    def clear(self):
        return _heasp.arf_clear(self)

    def check(self):
        return _heasp.arf_check(self)

    def rebin(self, arg2):
        return _heasp.arf_rebin(self, arg2)

    def write(self, *args):
        return _heasp.arf_write(self, *args)

    def __imul__(self, arg2):
        return _heasp.arf___imul__(self, arg2)

    def __iadd__(self, arg2):
        return _heasp.arf___iadd__(self, arg2)

    def checkCompatibility(self, arg2):
        return _heasp.arf_checkCompatibility(self, arg2)

    def convertUnits(self):
        return _heasp.arf_convertUnits(self)

    def NumberEnergyBins(self):
        return _heasp.arf_NumberEnergyBins(self)

    def getNumberEnergyBins(self):
        return _heasp.arf_getNumberEnergyBins(self)

    def getLowEnergy(self):
        return _heasp.arf_getLowEnergy(self)

    def setLowEnergy(self, values):
        return _heasp.arf_setLowEnergy(self, values)

    def getLowEnergyElement(self, i):
        return _heasp.arf_getLowEnergyElement(self, i)

    def setLowEnergyElement(self, i, value):
        return _heasp.arf_setLowEnergyElement(self, i, value)

    def getHighEnergy(self):
        return _heasp.arf_getHighEnergy(self)

    def setHighEnergy(self, values):
        return _heasp.arf_setHighEnergy(self, values)

    def getHighEnergyElement(self, i):
        return _heasp.arf_getHighEnergyElement(self, i)

    def setHighEnergyElement(self, i, value):
        return _heasp.arf_setHighEnergyElement(self, i, value)

    def getEffArea(self):
        return _heasp.arf_getEffArea(self)

    def setEffArea(self, values):
        return _heasp.arf_setEffArea(self, values)

    def getEffAreaElement(self, i):
        return _heasp.arf_getEffAreaElement(self, i)

    def setEffAreaElement(self, i, value):
        return _heasp.arf_setEffAreaElement(self, i, value)

    def getEnergyUnits(self):
        return _heasp.arf_getEnergyUnits(self)

    def setEnergyUnits(self, value):
        return _heasp.arf_setEnergyUnits(self, value)

    def getEffAreaUnits(self):
        return _heasp.arf_getEffAreaUnits(self)

    def setEffAreaUnits(self, value):
        return _heasp.arf_setEffAreaUnits(self, value)

    def getTelescope(self):
        return _heasp.arf_getTelescope(self)

    def setTelescope(self, value):
        return _heasp.arf_setTelescope(self, value)

    def getInstrument(self):
        return _heasp.arf_getInstrument(self)

    def setInstrument(self, value):
        return _heasp.arf_setInstrument(self, value)

    def getDetector(self):
        return _heasp.arf_getDetector(self)

    def setDetector(self, value):
        return _heasp.arf_setDetector(self, value)

    def getFilter(self):
        return _heasp.arf_getFilter(self)

    def setFilter(self, value):
        return _heasp.arf_setFilter(self, value)

    def getStokesParameter(self):
        return _heasp.arf_getStokesParameter(self)

    def setStokesParameter(self, value):
        return _heasp.arf_setStokesParameter(self, value)

    def getStokesWeighting(self):
        return _heasp.arf_getStokesWeighting(self)

    def setStokesWeighting(self, value):
        return _heasp.arf_setStokesWeighting(self, value)

    def getExtensionName(self):
        return _heasp.arf_getExtensionName(self)

    def setExtensionName(self, value):
        return _heasp.arf_setExtensionName(self, value)

# Register arf in _heasp:
_heasp.arf_swigregister(arf)

def __add__(*args):
    return _heasp.__add__(*args)

def __mul__(*args):
    return _heasp.__mul__(*args)

def ARFspecrespExtensions(*args):
    return _heasp.ARFspecrespExtensions(*args)

def ARFtype(*args):
    return _heasp.ARFtype(*args)
HAVE_arfII = _heasp.HAVE_arfII
class arfII(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _heasp.arfII_swiginit(self, _heasp.new_arfII(*args))
    __swig_destroy__ = _heasp.delete_arfII

    def read(self, *args):
        return _heasp.arfII_read(self, *args)

    def copy(self, arg2):
        return _heasp.arfII_copy(self, arg2)

    def get(self, number):
        return _heasp.arfII_get(self, number)

    def push(self, ea):
        return _heasp.arfII_push(self, ea)

    def disp(self):
        return _heasp.arfII_disp(self)

    def clear(self):
        return _heasp.arfII_clear(self)

    def check(self):
        return _heasp.arfII_check(self)

    def write(self, *args):
        return _heasp.arfII_write(self, *args)

    def NumberARFs(self):
        return _heasp.arfII_NumberARFs(self)

    def getNumberARFs(self):
        return _heasp.arfII_getNumberARFs(self)

    def getarfs(self):
        return _heasp.arfII_getarfs(self)

    def setarfs(self, values):
        return _heasp.arfII_setarfs(self, values)

    def getarfsElement(self, i):
        return _heasp.arfII_getarfsElement(self, i)

    def setarfsElement(self, i, value):
        return _heasp.arfII_setarfsElement(self, i, value)

# Register arfII in _heasp:
_heasp.arfII_swigregister(arfII)

def NumberofARFs(*args):
    return _heasp.NumberofARFs(*args)
HAVE_grouping = _heasp.HAVE_grouping
class grouping(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _heasp.grouping_swiginit(self, _heasp.new_grouping(*args))
    __swig_destroy__ = _heasp.delete_grouping

    def disp(self):
        return _heasp.grouping_disp(self)

    def clear(self):
        return _heasp.grouping_clear(self)

    def read(self, filename, Number, First=0):
        return _heasp.grouping_read(self, filename, Number, First)

    def load(self, *args):
        return _heasp.grouping_load(self, *args)

    def loadFromVector(self, QualVector, GroupVector):
        return _heasp.grouping_loadFromVector(self, QualVector, GroupVector)

    def loadOptimal(self, FWHM, Counts, startChannel=0, endChannel=0, minCounts=0):
        return _heasp.grouping_loadOptimal(self, FWHM, Counts, startChannel, endChannel, minCounts)

    def loadOptimalEnergy(self, FWHM, Counts):
        return _heasp.grouping_loadOptimalEnergy(self, FWHM, Counts)

    def newBin(self, i):
        return _heasp.grouping_newBin(self, i)

    def inBin(self, i):
        return _heasp.grouping_inBin(self, i)

    def size(self):
        return _heasp.grouping_size(self)

    def getGroupingFlag(self):
        return _heasp.grouping_getGroupingFlag(self)

    def setGroupingFlag(self, values):
        return _heasp.grouping_setGroupingFlag(self, values)

    def getGroupingFlagElement(self, i):
        return _heasp.grouping_getGroupingFlagElement(self, i)

    def setGroupingFlagElement(self, i, value):
        return _heasp.grouping_setGroupingFlagElement(self, i, value)

    def getQualityFlag(self):
        return _heasp.grouping_getQualityFlag(self)

    def setQualityFlag(self, values):
        return _heasp.grouping_setQualityFlag(self, values)

    def getQualityFlagElement(self, i):
        return _heasp.grouping_getQualityFlagElement(self, i)

    def setQualityFlagElement(self, i, value):
        return _heasp.grouping_setQualityFlagElement(self, i, value)

# Register grouping in _heasp:
_heasp.grouping_swigregister(grouping)
SumMode = _heasp.SumMode
SumQuadMode = _heasp.SumQuadMode
MeanMode = _heasp.MeanMode
FirstEltMode = _heasp.FirstEltMode
LastEltMode = _heasp.LastEltMode

def ReadBinFactors(filename, StartBin, EndBin, BinFactor):
    return _heasp.ReadBinFactors(filename, StartBin, EndBin, BinFactor)
HAVE_table = _heasp.HAVE_table
class tableParameter(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _heasp.tableParameter_swiginit(self, _heasp.new_tableParameter(*args))

    def load(self, *args):
        return _heasp.tableParameter_load(self, *args)

    def disp(self):
        return _heasp.tableParameter_disp(self)

    def clear(self):
        return _heasp.tableParameter_clear(self)

    def NumberTabulatedValues(self):
        return _heasp.tableParameter_NumberTabulatedValues(self)

    def getNumberTabulatedValues(self):
        return _heasp.tableParameter_getNumberTabulatedValues(self)

    def getName(self):
        return _heasp.tableParameter_getName(self)

    def setName(self, value):
        return _heasp.tableParameter_setName(self, value)

    def getUnits(self):
        return _heasp.tableParameter_getUnits(self)

    def setUnits(self, value):
        return _heasp.tableParameter_setUnits(self, value)

    def getInterpolationMethod(self):
        return _heasp.tableParameter_getInterpolationMethod(self)

    def setInterpolationMethod(self, value):
        return _heasp.tableParameter_setInterpolationMethod(self, value)

    def getInitialValue(self):
        return _heasp.tableParameter_getInitialValue(self)

    def setInitialValue(self, value):
        return _heasp.tableParameter_setInitialValue(self, value)

    def getDelta(self):
        return _heasp.tableParameter_getDelta(self)

    def setDelta(self, value):
        return _heasp.tableParameter_setDelta(self, value)

    def getMinimum(self):
        return _heasp.tableParameter_getMinimum(self)

    def setMinimum(self, value):
        return _heasp.tableParameter_setMinimum(self, value)

    def getBottom(self):
        return _heasp.tableParameter_getBottom(self)

    def setBottom(self, value):
        return _heasp.tableParameter_setBottom(self, value)

    def getTop(self):
        return _heasp.tableParameter_getTop(self)

    def setTop(self, value):
        return _heasp.tableParameter_setTop(self, value)

    def getMaximum(self):
        return _heasp.tableParameter_getMaximum(self)

    def setMaximum(self, value):
        return _heasp.tableParameter_setMaximum(self, value)

    def getTabulatedValues(self):
        return _heasp.tableParameter_getTabulatedValues(self)

    def setTabulatedValues(self, values):
        return _heasp.tableParameter_setTabulatedValues(self, values)

    def getTabulatedValuesElement(self, i):
        return _heasp.tableParameter_getTabulatedValuesElement(self, i)

    def setTabulatedValuesElement(self, i, value):
        return _heasp.tableParameter_setTabulatedValuesElement(self, i, value)
    __swig_destroy__ = _heasp.delete_tableParameter

# Register tableParameter in _heasp:
_heasp.tableParameter_swigregister(tableParameter)
class tableSpectrum(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _heasp.tableSpectrum_swiginit(self, _heasp.new_tableSpectrum(*args))

    def load(self, *args):
        return _heasp.tableSpectrum_load(self, *args)

    def pushaddFlux(self, arg2):
        return _heasp.tableSpectrum_pushaddFlux(self, arg2)

    def disp(self):
        return _heasp.tableSpectrum_disp(self)

    def clear(self):
        return _heasp.tableSpectrum_clear(self)

    def NumberFluxes(self):
        return _heasp.tableSpectrum_NumberFluxes(self)

    def getNumberFluxes(self):
        return _heasp.tableSpectrum_getNumberFluxes(self)

    def NumberFluxErrors(self):
        return _heasp.tableSpectrum_NumberFluxErrors(self)

    def getNumberFluxErrors(self):
        return _heasp.tableSpectrum_getNumberFluxErrors(self)

    def NumberParameterValues(self):
        return _heasp.tableSpectrum_NumberParameterValues(self)

    def getNumberParameterValues(self):
        return _heasp.tableSpectrum_getNumberParameterValues(self)

    def NumberAdditiveParameters(self):
        return _heasp.tableSpectrum_NumberAdditiveParameters(self)

    def getNumberAdditiveParameters(self):
        return _heasp.tableSpectrum_getNumberAdditiveParameters(self)

    def NumberAdditiveFluxes(self, iaddParam):
        return _heasp.tableSpectrum_NumberAdditiveFluxes(self, iaddParam)

    def getNumberAdditiveFluxes(self, iaddParam):
        return _heasp.tableSpectrum_getNumberAdditiveFluxes(self, iaddParam)

    def NumberAdditiveFluxErrors(self, iaddParam):
        return _heasp.tableSpectrum_NumberAdditiveFluxErrors(self, iaddParam)

    def getNumberAdditiveFluxErrors(self, iaddParam):
        return _heasp.tableSpectrum_getNumberAdditiveFluxErrors(self, iaddParam)

    def getFlux(self):
        return _heasp.tableSpectrum_getFlux(self)

    def setFlux(self, values):
        return _heasp.tableSpectrum_setFlux(self, values)

    def getFluxElement(self, i):
        return _heasp.tableSpectrum_getFluxElement(self, i)

    def setFluxElement(self, i, value):
        return _heasp.tableSpectrum_setFluxElement(self, i, value)

    def getFluxError(self):
        return _heasp.tableSpectrum_getFluxError(self)

    def setFluxError(self, values):
        return _heasp.tableSpectrum_setFluxError(self, values)

    def getFluxErrorElement(self, i):
        return _heasp.tableSpectrum_getFluxErrorElement(self, i)

    def setFluxErrorElement(self, i, value):
        return _heasp.tableSpectrum_setFluxErrorElement(self, i, value)

    def getParameterValues(self):
        return _heasp.tableSpectrum_getParameterValues(self)

    def setParameterValues(self, values):
        return _heasp.tableSpectrum_setParameterValues(self, values)

    def getParameterValuesElement(self, i):
        return _heasp.tableSpectrum_getParameterValuesElement(self, i)

    def setParameterValuesElement(self, i, value):
        return _heasp.tableSpectrum_setParameterValuesElement(self, i, value)

    def getaddFlux(self):
        return _heasp.tableSpectrum_getaddFlux(self)

    def setaddFlux(self, values):
        return _heasp.tableSpectrum_setaddFlux(self, values)

    def getaddFluxElement(self, iparam):
        return _heasp.tableSpectrum_getaddFluxElement(self, iparam)

    def setaddFluxElement(self, iparam, valueparam):
        return _heasp.tableSpectrum_setaddFluxElement(self, iparam, valueparam)

    def getaddFluxElementElement(self, iparam, i):
        return _heasp.tableSpectrum_getaddFluxElementElement(self, iparam, i)

    def setaddFluxElementElement(self, iparam, i, value):
        return _heasp.tableSpectrum_setaddFluxElementElement(self, iparam, i, value)

    def getaddFluxError(self):
        return _heasp.tableSpectrum_getaddFluxError(self)

    def setaddFluxError(self, values):
        return _heasp.tableSpectrum_setaddFluxError(self, values)

    def getaddFluxErrorElement(self, iparam):
        return _heasp.tableSpectrum_getaddFluxErrorElement(self, iparam)

    def setaddFluxErrorElement(self, iparam, valueparam):
        return _heasp.tableSpectrum_setaddFluxErrorElement(self, iparam, valueparam)

    def getaddFluxErrorElementElement(self, iparam, i):
        return _heasp.tableSpectrum_getaddFluxErrorElementElement(self, iparam, i)

    def setaddFluxErrorElementElement(self, iparam, i, value):
        return _heasp.tableSpectrum_setaddFluxErrorElementElement(self, iparam, i, value)
    __swig_destroy__ = _heasp.delete_tableSpectrum

# Register tableSpectrum in _heasp:
_heasp.tableSpectrum_swigregister(tableSpectrum)
class table(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _heasp.table_swiginit(self, _heasp.new_table(*args))

    def load(self, *args):
        return _heasp.table_load(self, *args)

    def read(self, infilename, loadAll=True):
        return _heasp.table_read(self, infilename, loadAll)

    def pushParameter(self, paramObject):
        return _heasp.table_pushParameter(self, paramObject)

    def pushSpectrum(self, spectrumObject):
        return _heasp.table_pushSpectrum(self, spectrumObject)

    def getParameter(self, number):
        return _heasp.table_getParameter(self, number)

    def getSpectrum(self, number):
        return _heasp.table_getSpectrum(self, number)

    def copy(self, a):
        return _heasp.table_copy(self, a)

    def disp(self, headerOnly):
        return _heasp.table_disp(self, headerOnly)

    def clear(self):
        return _heasp.table_clear(self)

    def check(self):
        return _heasp.table_check(self)

    def convertUnits(self):
        return _heasp.table_convertUnits(self)

    def reverseRows(self):
        return _heasp.table_reverseRows(self)

    def write(self, outfilename):
        return _heasp.table_write(self, outfilename)

    def NumberParameters(self):
        return _heasp.table_NumberParameters(self)

    def getNumberParameters(self):
        return _heasp.table_getNumberParameters(self)

    def NumberSpectra(self):
        return _heasp.table_NumberSpectra(self)

    def getNumberSpectra(self):
        return _heasp.table_getNumberSpectra(self)

    def NumberEnergies(self):
        return _heasp.table_NumberEnergies(self)

    def getNumberEnergies(self):
        return _heasp.table_getNumberEnergies(self)

    def getParameters(self):
        return _heasp.table_getParameters(self)

    def setParameters(self, values):
        return _heasp.table_setParameters(self, values)

    def getParametersElement(self, i):
        return _heasp.table_getParametersElement(self, i)

    def setParametersElement(self, i, value):
        return _heasp.table_setParametersElement(self, i, value)

    def getSpectra(self):
        return _heasp.table_getSpectra(self)

    def setSpectra(self, values):
        return _heasp.table_setSpectra(self, values)

    def getSpectraElement(self, i):
        return _heasp.table_getSpectraElement(self, i)

    def setSpectraElement(self, i, value):
        return _heasp.table_setSpectraElement(self, i, value)

    def getModelName(self):
        return _heasp.table_getModelName(self)

    def setModelName(self, value):
        return _heasp.table_setModelName(self, value)

    def getModelUnits(self):
        return _heasp.table_getModelUnits(self)

    def setModelUnits(self, value):
        return _heasp.table_setModelUnits(self, value)

    def getNumIntParams(self):
        return _heasp.table_getNumIntParams(self)

    def setNumIntParams(self, value):
        return _heasp.table_setNumIntParams(self, value)

    def getNumAddParams(self):
        return _heasp.table_getNumAddParams(self)

    def setNumAddParams(self, value):
        return _heasp.table_setNumAddParams(self, value)

    def getisError(self):
        return _heasp.table_getisError(self)

    def setisError(self, value):
        return _heasp.table_setisError(self, value)

    def getisRedshift(self):
        return _heasp.table_getisRedshift(self)

    def setisRedshift(self, value):
        return _heasp.table_setisRedshift(self, value)

    def getisAdditive(self):
        return _heasp.table_getisAdditive(self)

    def setisAdditive(self, value):
        return _heasp.table_setisAdditive(self, value)

    def getisEscale(self):
        return _heasp.table_getisEscale(self)

    def setisEscale(self, value):
        return _heasp.table_setisEscale(self, value)

    def getEnergies(self):
        return _heasp.table_getEnergies(self)

    def setEnergies(self, values):
        return _heasp.table_setEnergies(self, values)

    def getEnergiesElement(self, i):
        return _heasp.table_getEnergiesElement(self, i)

    def setEnergiesElement(self, i, value):
        return _heasp.table_setEnergiesElement(self, i, value)

    def getEnergyUnits(self):
        return _heasp.table_getEnergyUnits(self)

    def setEnergyUnits(self, value):
        return _heasp.table_setEnergyUnits(self, value)

    def getLowEnergyLimit(self):
        return _heasp.table_getLowEnergyLimit(self)

    def setLowEnergyLimit(self, value):
        return _heasp.table_setLowEnergyLimit(self, value)

    def getHighEnergyLimit(self):
        return _heasp.table_getHighEnergyLimit(self)

    def setHighEnergyLimit(self, value):
        return _heasp.table_setHighEnergyLimit(self, value)

    def getFilename(self):
        return _heasp.table_getFilename(self)

    def setFilename(self, value):
        return _heasp.table_setFilename(self, value)

    def getFiltExps(self):
        return _heasp.table_getFiltExps(self)

    def setFiltExps(self, values):
        return _heasp.table_setFiltExps(self, values)
    __swig_destroy__ = _heasp.delete_table

# Register table in _heasp:
_heasp.table_swigregister(table)

