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

from sys import version_info as _swig_python_version_info
if _swig_python_version_info >= (2, 7, 0):
    def swig_import_helper():
        import importlib
        pkg = __name__.rpartition('.')[0]
        mname = '.'.join((pkg, '_beamformer')).lstrip('.')
        try:
            return importlib.import_module(mname)
        except ImportError:
            return importlib.import_module('_beamformer')
    _beamformer = swig_import_helper()
    del swig_import_helper
elif _swig_python_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('_beamformer', [dirname(__file__)])
        except ImportError:
            import _beamformer
            return _beamformer
        try:
            _mod = imp.load_module('_beamformer', fp, pathname, description)
        finally:
            if fp is not None:
                fp.close()
        return _mod
    _beamformer = swig_import_helper()
    del swig_import_helper
else:
    import _beamformer
del _swig_python_version_info

try:
    _swig_property = property
except NameError:
    pass  # Python < 2.2 doesn't have 'property'.

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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):
        if _newclass:
            object.__setattr__(self, name, value)
        else:
            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("'%s' object has no attribute '%s'" % (class_type.__name__, name))


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

try:
    _object = object
    _newclass = 1
except __builtin__.Exception:
    class _object:
        pass
    _newclass = 0


import btk20
from btk20 import stream
oldimport = """

import btk20.stream

"""

import btk20.postfilter
class SnapShotArrayPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, SnapShotArrayPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, SnapShotArrayPtr, name)
    __repr__ = _swig_repr

    def __init__(self, fftlen, chan_num):
        this = _beamformer.new_SnapShotArrayPtr(fftlen, chan_num)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __deref__(self):
        return _beamformer.SnapShotArrayPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SnapShotArrayPtr
    __del__ = lambda self: None

    def snapshot(self, fbinX):
        return _beamformer.SnapShotArrayPtr_snapshot(self, fbinX)

    def set_samples(self, samp, chanX):
        return _beamformer.SnapShotArrayPtr_set_samples(self, samp, chanX)

    def fftLen(self):
        return _beamformer.SnapShotArrayPtr_fftLen(self)

    def nChan(self):
        return _beamformer.SnapShotArrayPtr_nChan(self)

    def update(self):
        return _beamformer.SnapShotArrayPtr_update(self)

    def zero(self):
        return _beamformer.SnapShotArrayPtr_zero(self)
SnapShotArrayPtr_swigregister = _beamformer.SnapShotArrayPtr_swigregister
SnapShotArrayPtr_swigregister(SnapShotArrayPtr)

class SpectralMatrixArrayPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, SpectralMatrixArrayPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, SpectralMatrixArrayPtr, name)
    __repr__ = _swig_repr

    def __init__(self, fftLn, nChn, forgetFact=0.95):
        this = _beamformer.new_SpectralMatrixArrayPtr(fftLn, nChn, forgetFact)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __deref__(self):
        return _beamformer.SpectralMatrixArrayPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SpectralMatrixArrayPtr
    __del__ = lambda self: None

    def matrix_f(self, idx):
        return _beamformer.SpectralMatrixArrayPtr_matrix_f(self, idx)

    def update(self):
        return _beamformer.SpectralMatrixArrayPtr_update(self)

    def zero(self):
        return _beamformer.SpectralMatrixArrayPtr_zero(self)

    def snapshot(self, fbinX):
        return _beamformer.SpectralMatrixArrayPtr_snapshot(self, fbinX)

    def set_samples(self, samp, chanX):
        return _beamformer.SpectralMatrixArrayPtr_set_samples(self, samp, chanX)

    def fftLen(self):
        return _beamformer.SpectralMatrixArrayPtr_fftLen(self)

    def nChan(self):
        return _beamformer.SpectralMatrixArrayPtr_nChan(self)
SpectralMatrixArrayPtr_swigregister = _beamformer.SpectralMatrixArrayPtr_swigregister
SpectralMatrixArrayPtr_swigregister(SpectralMatrixArrayPtr)

class SubbandBeamformerPtr(btk20.stream.VectorComplexFeatureStreamPtr):
    __swig_setmethods__ = {}
    for _s in [btk20.stream.VectorComplexFeatureStreamPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [btk20.stream.VectorComplexFeatureStreamPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SubbandBeamformerPtr_reset(self)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SubbandBeamformerPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.SubbandBeamformerPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.SubbandBeamformerPtr_set_channel(self, chan)

    def clear_channel(self):
        return _beamformer.SubbandBeamformerPtr_clear_channel(self)

    def is_end(self):
        return _beamformer.SubbandBeamformerPtr_is_end(self)

    def dim(self):
        return _beamformer.SubbandBeamformerPtr_dim(self)

    def fftLen(self):
        return _beamformer.SubbandBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SubbandBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SubbandBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SubbandBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SubbandBeamformerPtr_current(self)
SubbandBeamformerPtr_swigregister = _beamformer.SubbandBeamformerPtr_swigregister
SubbandBeamformerPtr_swigregister(SubbandBeamformerPtr)

class SubbandDSPtr(SubbandBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandDSPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandDSPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandDSPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandDSPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandDSPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandDSPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandDSPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SubbandDSPtr_reset(self)

    def clear_channel(self):
        return _beamformer.SubbandDSPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SubbandDSPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SubbandDSPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SubbandDSPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SubbandDSPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SubbandDSPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.SubbandDSPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.SubbandDSPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SubbandDSPtr_is_end(self)

    def dim(self):
        return _beamformer.SubbandDSPtr_dim(self)

    def fftLen(self):
        return _beamformer.SubbandDSPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SubbandDSPtr_chanN(self)

    def name(self):
        return _beamformer.SubbandDSPtr_name(self)

    def size(self):
        return _beamformer.SubbandDSPtr_size(self)

    def current(self):
        return _beamformer.SubbandDSPtr_current(self)
SubbandDSPtr_swigregister = _beamformer.SubbandDSPtr_swigregister
SubbandDSPtr_swigregister(SubbandDSPtr)

class SubbandGSCPtr(SubbandDSPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandGSCPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandGSCPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandGSCPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandGSCPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandGSCPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandGSCPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandGSCPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SubbandGSCPtr_reset(self)

    def normalize_weight(self, flag):
        return _beamformer.SubbandGSCPtr_normalize_weight(self, flag)

    def set_quiescent_weights_f(self, fbinX, srcWq):
        return _beamformer.SubbandGSCPtr_set_quiescent_weights_f(self, fbinX, srcWq)

    def set_active_weights_f(self, fbinX, packedWeight):
        return _beamformer.SubbandGSCPtr_set_active_weights_f(self, fbinX, packedWeight)

    def zero_active_weights(self):
        return _beamformer.SubbandGSCPtr_zero_active_weights(self)

    def calc_gsc_weights(self, samplerate, delaysT):
        return _beamformer.SubbandGSCPtr_calc_gsc_weights(self, samplerate, delaysT)

    def calc_gsc_weights_2(self, samplerate, delaysT, delaysJ):
        return _beamformer.SubbandGSCPtr_calc_gsc_weights_2(self, samplerate, delaysT, delaysJ)

    def calc_gsc_weights_n(self, samplerate, delaysT, delaysJ, NC=2):
        return _beamformer.SubbandGSCPtr_calc_gsc_weights_n(self, samplerate, delaysT, delaysJ, NC)

    def write_fir_coeff(self, fn, winType=1):
        return _beamformer.SubbandGSCPtr_write_fir_coeff(self, fn, winType)

    def clear_channel(self):
        return _beamformer.SubbandGSCPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SubbandGSCPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SubbandGSCPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SubbandGSCPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SubbandGSCPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SubbandGSCPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.SubbandGSCPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.SubbandGSCPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SubbandGSCPtr_is_end(self)

    def dim(self):
        return _beamformer.SubbandGSCPtr_dim(self)

    def fftLen(self):
        return _beamformer.SubbandGSCPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SubbandGSCPtr_chanN(self)

    def name(self):
        return _beamformer.SubbandGSCPtr_name(self)

    def size(self):
        return _beamformer.SubbandGSCPtr_size(self)

    def current(self):
        return _beamformer.SubbandGSCPtr_current(self)
SubbandGSCPtr_swigregister = _beamformer.SubbandGSCPtr_swigregister
SubbandGSCPtr_swigregister(SubbandGSCPtr)

class SubbandGSCRLSPtr(SubbandGSCPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandGSCPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandGSCRLSPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandGSCPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandGSCRLSPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandGSCRLSPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandGSCRLSPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandGSCRLSPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandGSCRLSPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandGSCRLSPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SubbandGSCRLSPtr_reset(self)

    def init_precision_matrix(self, sigma2=0.01):
        return _beamformer.SubbandGSCRLSPtr_init_precision_matrix(self, sigma2)

    def set_precision_matrix(self, fbinX, Pz):
        return _beamformer.SubbandGSCRLSPtr_set_precision_matrix(self, fbinX, Pz)

    def update_active_weight_vecotrs(self, flag):
        return _beamformer.SubbandGSCRLSPtr_update_active_weight_vecotrs(self, flag)

    def set_quadratic_constraint(self, alpha, qctype=1):
        return _beamformer.SubbandGSCRLSPtr_set_quadratic_constraint(self, alpha, qctype)

    def normalize_weight(self, flag):
        return _beamformer.SubbandGSCRLSPtr_normalize_weight(self, flag)

    def set_quiescent_weights_f(self, fbinX, srcWq):
        return _beamformer.SubbandGSCRLSPtr_set_quiescent_weights_f(self, fbinX, srcWq)

    def set_active_weights_f(self, fbinX, packedWeight):
        return _beamformer.SubbandGSCRLSPtr_set_active_weights_f(self, fbinX, packedWeight)

    def zero_active_weights(self):
        return _beamformer.SubbandGSCRLSPtr_zero_active_weights(self)

    def calc_gsc_weights(self, samplerate, delaysT):
        return _beamformer.SubbandGSCRLSPtr_calc_gsc_weights(self, samplerate, delaysT)

    def calc_gsc_weights_2(self, samplerate, delaysT, delaysJ):
        return _beamformer.SubbandGSCRLSPtr_calc_gsc_weights_2(self, samplerate, delaysT, delaysJ)

    def calc_gsc_weights_n(self, samplerate, delaysT, delaysJ, NC=2):
        return _beamformer.SubbandGSCRLSPtr_calc_gsc_weights_n(self, samplerate, delaysT, delaysJ, NC)

    def write_fir_coeff(self, fn, winType=1):
        return _beamformer.SubbandGSCRLSPtr_write_fir_coeff(self, fn, winType)

    def clear_channel(self):
        return _beamformer.SubbandGSCRLSPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SubbandGSCRLSPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SubbandGSCRLSPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SubbandGSCRLSPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SubbandGSCRLSPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SubbandGSCRLSPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.SubbandGSCRLSPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.SubbandGSCRLSPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SubbandGSCRLSPtr_is_end(self)

    def dim(self):
        return _beamformer.SubbandGSCRLSPtr_dim(self)

    def fftLen(self):
        return _beamformer.SubbandGSCRLSPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SubbandGSCRLSPtr_chanN(self)

    def name(self):
        return _beamformer.SubbandGSCRLSPtr_name(self)

    def size(self):
        return _beamformer.SubbandGSCRLSPtr_size(self)

    def current(self):
        return _beamformer.SubbandGSCRLSPtr_current(self)
SubbandGSCRLSPtr_swigregister = _beamformer.SubbandGSCRLSPtr_swigregister
SubbandGSCRLSPtr_swigregister(SubbandGSCRLSPtr)

class SubbandMMIPtr(SubbandDSPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandMMIPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandMMIPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandMMIPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandMMIPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandMMIPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandMMIPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandMMIPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SubbandMMIPtr_reset(self)

    def use_binary_mask(self, avgFactor=-1.0, fwidth=1, type=0):
        return _beamformer.SubbandMMIPtr_use_binary_mask(self, avgFactor, fwidth, type)

    def calc_weights(self, samplerate, delays):
        return _beamformer.SubbandMMIPtr_calc_weights(self, samplerate, delays)

    def calc_weights_n(self, samplerate, delays, NC=2):
        return _beamformer.SubbandMMIPtr_calc_weights_n(self, samplerate, delays, NC)

    def set_hi_active_weights_f(self, fbinX, pkdWa, pkdwb, option=0):
        return _beamformer.SubbandMMIPtr_set_hi_active_weights_f(self, fbinX, pkdWa, pkdwb, option)

    def set_active_weights_f(self, fbinX, packedWeights, option=0):
        return _beamformer.SubbandMMIPtr_set_active_weights_f(self, fbinX, packedWeights, option)

    def clear_channel(self):
        return _beamformer.SubbandMMIPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SubbandMMIPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SubbandMMIPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SubbandMMIPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SubbandMMIPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SubbandMMIPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.SubbandMMIPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.SubbandMMIPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SubbandMMIPtr_is_end(self)

    def dim(self):
        return _beamformer.SubbandMMIPtr_dim(self)

    def fftLen(self):
        return _beamformer.SubbandMMIPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SubbandMMIPtr_chanN(self)

    def name(self):
        return _beamformer.SubbandMMIPtr_name(self)

    def size(self):
        return _beamformer.SubbandMMIPtr_size(self)

    def current(self):
        return _beamformer.SubbandMMIPtr_current(self)
SubbandMMIPtr_swigregister = _beamformer.SubbandMMIPtr_swigregister
SubbandMMIPtr_swigregister(SubbandMMIPtr)


def calc_all_delays(x, y, z, mpos, delays):
    return _beamformer.calc_all_delays(x, y, z, mpos, delays)
calc_all_delays = _beamformer.calc_all_delays

def calc_product(synthesisSamples, gs_W, product):
    return _beamformer.calc_product(synthesisSamples, gs_W, product)
calc_product = _beamformer.calc_product
class SubbandMVDRPtr(SubbandDSPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandMVDRPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandMVDRPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandMVDRPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandMVDRPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandMVDRPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandMVDRPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandMVDRPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SubbandMVDRPtr_reset(self)

    def clear_channel(self):
        return _beamformer.SubbandMVDRPtr_clear_channel(self)

    def calc_mvdr_weights(self, samplerate, dthreshold=1.0E-8, calc_inverse_matrix=True):
        return _beamformer.SubbandMVDRPtr_calc_mvdr_weights(self, samplerate, dthreshold, calc_inverse_matrix)

    def mvdr_weights(self, fbinX):
        return _beamformer.SubbandMVDRPtr_mvdr_weights(self, fbinX)

    def noise_spatial_spectral_matrix(self, *args):
        return _beamformer.SubbandMVDRPtr_noise_spatial_spectral_matrix(self, *args)

    def set_noise_spatial_spectral_matrix(self, fbinX, Rnn):
        return _beamformer.SubbandMVDRPtr_set_noise_spatial_spectral_matrix(self, fbinX, Rnn)

    def set_diffuse_noise_model(self, micPositions, samplerate, sspeed=343740.0):
        return _beamformer.SubbandMVDRPtr_set_diffuse_noise_model(self, micPositions, samplerate, sspeed)

    def set_all_diagonal_loading(self, diagonalWeight):
        return _beamformer.SubbandMVDRPtr_set_all_diagonal_loading(self, diagonalWeight)

    def set_diagonal_looading(self, fbinX, diagonalWeight):
        return _beamformer.SubbandMVDRPtr_set_diagonal_looading(self, fbinX, diagonalWeight)

    def divide_all_nondiagonal_elements(self, mu):
        return _beamformer.SubbandMVDRPtr_divide_all_nondiagonal_elements(self, mu)

    def divide_nondiagonal_elements(self, fbinX, mu):
        return _beamformer.SubbandMVDRPtr_divide_nondiagonal_elements(self, fbinX, mu)

    def get_weights(self, fbinX):
        return _beamformer.SubbandMVDRPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SubbandMVDRPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SubbandMVDRPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SubbandMVDRPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SubbandMVDRPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.SubbandMVDRPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.SubbandMVDRPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SubbandMVDRPtr_is_end(self)

    def dim(self):
        return _beamformer.SubbandMVDRPtr_dim(self)

    def fftLen(self):
        return _beamformer.SubbandMVDRPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SubbandMVDRPtr_chanN(self)

    def name(self):
        return _beamformer.SubbandMVDRPtr_name(self)

    def size(self):
        return _beamformer.SubbandMVDRPtr_size(self)

    def current(self):
        return _beamformer.SubbandMVDRPtr_current(self)
SubbandMVDRPtr_swigregister = _beamformer.SubbandMVDRPtr_swigregister
SubbandMVDRPtr_swigregister(SubbandMVDRPtr)

class SubbandMVDRGSCPtr(SubbandMVDRPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandMVDRPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandMVDRGSCPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandMVDRPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandMVDRGSCPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandMVDRGSCPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandMVDRGSCPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandMVDRGSCPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandMVDRGSCPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandMVDRGSCPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SubbandMVDRGSCPtr_reset(self)

    def set_active_weights_f(self, fbinX, packedWeight):
        return _beamformer.SubbandMVDRGSCPtr_set_active_weights_f(self, fbinX, packedWeight)

    def zero_active_weights(self):
        return _beamformer.SubbandMVDRGSCPtr_zero_active_weights(self)

    def calc_blocking_matrix1(self, samplerate, delaysT):
        return _beamformer.SubbandMVDRGSCPtr_calc_blocking_matrix1(self, samplerate, delaysT)

    def calc_blocking_matrix2(self):
        return _beamformer.SubbandMVDRGSCPtr_calc_blocking_matrix2(self)

    def upgrade_blocking_matrix(self):
        return _beamformer.SubbandMVDRGSCPtr_upgrade_blocking_matrix(self)

    def blocking_matrix_output(self, outChanX=0):
        return _beamformer.SubbandMVDRGSCPtr_blocking_matrix_output(self, outChanX)

    def clear_channel(self):
        return _beamformer.SubbandMVDRGSCPtr_clear_channel(self)

    def calc_mvdr_weights(self, samplerate, dthreshold=1.0E-8, calc_inverse_matrix=True):
        return _beamformer.SubbandMVDRGSCPtr_calc_mvdr_weights(self, samplerate, dthreshold, calc_inverse_matrix)

    def mvdr_weights(self, fbinX):
        return _beamformer.SubbandMVDRGSCPtr_mvdr_weights(self, fbinX)

    def noise_spatial_spectral_matrix(self, *args):
        return _beamformer.SubbandMVDRGSCPtr_noise_spatial_spectral_matrix(self, *args)

    def set_noise_spatial_spectral_matrix(self, fbinX, Rnn):
        return _beamformer.SubbandMVDRGSCPtr_set_noise_spatial_spectral_matrix(self, fbinX, Rnn)

    def set_diffuse_noise_model(self, micPositions, samplerate, sspeed=343740.0):
        return _beamformer.SubbandMVDRGSCPtr_set_diffuse_noise_model(self, micPositions, samplerate, sspeed)

    def set_all_diagonal_loading(self, diagonalWeight):
        return _beamformer.SubbandMVDRGSCPtr_set_all_diagonal_loading(self, diagonalWeight)

    def set_diagonal_looading(self, fbinX, diagonalWeight):
        return _beamformer.SubbandMVDRGSCPtr_set_diagonal_looading(self, fbinX, diagonalWeight)

    def divide_all_nondiagonal_elements(self, mu):
        return _beamformer.SubbandMVDRGSCPtr_divide_all_nondiagonal_elements(self, mu)

    def divide_nondiagonal_elements(self, fbinX, mu):
        return _beamformer.SubbandMVDRGSCPtr_divide_nondiagonal_elements(self, fbinX, mu)

    def get_weights(self, fbinX):
        return _beamformer.SubbandMVDRGSCPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SubbandMVDRGSCPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SubbandMVDRGSCPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SubbandMVDRGSCPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SubbandMVDRGSCPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.SubbandMVDRGSCPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.SubbandMVDRGSCPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SubbandMVDRGSCPtr_is_end(self)

    def dim(self):
        return _beamformer.SubbandMVDRGSCPtr_dim(self)

    def fftLen(self):
        return _beamformer.SubbandMVDRGSCPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SubbandMVDRGSCPtr_chanN(self)

    def name(self):
        return _beamformer.SubbandMVDRGSCPtr_name(self)

    def size(self):
        return _beamformer.SubbandMVDRGSCPtr_size(self)

    def current(self):
        return _beamformer.SubbandMVDRGSCPtr_current(self)
SubbandMVDRGSCPtr_swigregister = _beamformer.SubbandMVDRGSCPtr_swigregister
SubbandMVDRGSCPtr_swigregister(SubbandMVDRGSCPtr)

class SubbandOrthogonalizerPtr(btk20.stream.VectorComplexFeatureStreamPtr):
    __swig_setmethods__ = {}
    for _s in [btk20.stream.VectorComplexFeatureStreamPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandOrthogonalizerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [btk20.stream.VectorComplexFeatureStreamPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandOrthogonalizerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandOrthogonalizerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandOrthogonalizerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandOrthogonalizerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandOrthogonalizerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandOrthogonalizerPtr_next(self, frame_no)

    def name(self):
        return _beamformer.SubbandOrthogonalizerPtr_name(self)

    def size(self):
        return _beamformer.SubbandOrthogonalizerPtr_size(self)

    def current(self):
        return _beamformer.SubbandOrthogonalizerPtr_current(self)

    def reset(self):
        return _beamformer.SubbandOrthogonalizerPtr_reset(self)
SubbandOrthogonalizerPtr_swigregister = _beamformer.SubbandOrthogonalizerPtr_swigregister
SubbandOrthogonalizerPtr_swigregister(SubbandOrthogonalizerPtr)


def modeAmplitude(order, ka):
    return _beamformer.modeAmplitude(order, ka)
modeAmplitude = _beamformer.modeAmplitude
class ModeAmplitudeCalculatorPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, ModeAmplitudeCalculatorPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, ModeAmplitudeCalculatorPtr, name)
    __repr__ = _swig_repr

    def __init__(self, order, minKa=0.01, maxKa=20, wid=0.01):
        this = _beamformer.new_ModeAmplitudeCalculatorPtr(order, minKa, maxKa, wid)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __deref__(self):
        return _beamformer.ModeAmplitudeCalculatorPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_ModeAmplitudeCalculatorPtr
    __del__ = lambda self: None

    def get(self):
        return _beamformer.ModeAmplitudeCalculatorPtr_get(self)
ModeAmplitudeCalculatorPtr_swigregister = _beamformer.ModeAmplitudeCalculatorPtr_swigregister
ModeAmplitudeCalculatorPtr_swigregister(ModeAmplitudeCalculatorPtr)

class EigenBeamformerPtr(SubbandDSPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, EigenBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, EigenBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_EigenBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.EigenBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.EigenBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_EigenBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.EigenBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.EigenBeamformerPtr_reset(self)

    def dim(self):
        return _beamformer.EigenBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.EigenBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.EigenBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.EigenBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.EigenBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.EigenBeamformerPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.EigenBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.EigenBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.EigenBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.EigenBeamformerPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.EigenBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.EigenBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.EigenBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.EigenBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.EigenBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.EigenBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.EigenBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.EigenBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.EigenBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.EigenBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.EigenBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.EigenBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.EigenBeamformerPtr_name(self)

    def size(self):
        return _beamformer.EigenBeamformerPtr_size(self)

    def current(self):
        return _beamformer.EigenBeamformerPtr_current(self)
EigenBeamformerPtr_swigregister = _beamformer.EigenBeamformerPtr_swigregister
EigenBeamformerPtr_swigregister(EigenBeamformerPtr)

class DOAEstimatorSRPBasePtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, DOAEstimatorSRPBasePtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, DOAEstimatorSRPBasePtr, name)
    __repr__ = _swig_repr

    def __init__(self, nBest, fbinMax):
        this = _beamformer.new_DOAEstimatorSRPBasePtr(nBest, fbinMax)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __deref__(self):
        return _beamformer.DOAEstimatorSRPBasePtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_DOAEstimatorSRPBasePtr
    __del__ = lambda self: None

    def nbest_rps(self):
        return _beamformer.DOAEstimatorSRPBasePtr_nbest_rps(self)

    def nbest_doas(self):
        return _beamformer.DOAEstimatorSRPBasePtr_nbest_doas(self)

    def response_power_matrix(self):
        return _beamformer.DOAEstimatorSRPBasePtr_response_power_matrix(self)

    def energy(self):
        return _beamformer.DOAEstimatorSRPBasePtr_energy(self)

    def final_nbest_hypotheses(self):
        return _beamformer.DOAEstimatorSRPBasePtr_final_nbest_hypotheses(self)

    def set_energy_threshold(self, engeryThreshold):
        return _beamformer.DOAEstimatorSRPBasePtr_set_energy_threshold(self, engeryThreshold)

    def set_frequency_range(self, fbinMin, fbinMax):
        return _beamformer.DOAEstimatorSRPBasePtr_set_frequency_range(self, fbinMin, fbinMax)

    def init_accs(self):
        return _beamformer.DOAEstimatorSRPBasePtr_init_accs(self)
DOAEstimatorSRPBasePtr_swigregister = _beamformer.DOAEstimatorSRPBasePtr_swigregister
DOAEstimatorSRPBasePtr_swigregister(DOAEstimatorSRPBasePtr)

class DOAEstimatorSRPDSBLAPtr(SubbandDSPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, DOAEstimatorSRPDSBLAPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, DOAEstimatorSRPDSBLAPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_DOAEstimatorSRPDSBLAPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr___iter__(self)

    def __deref__(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_DOAEstimatorSRPDSBLAPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_reset(self)

    def set_array_geometry(self, positions):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_set_array_geometry(self, positions)

    def clear_channel(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_is_end(self)

    def dim(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_dim(self)

    def fftLen(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_fftLen(self)

    def chanN(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_chanN(self)

    def name(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_name(self)

    def size(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_size(self)

    def current(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_current(self)
DOAEstimatorSRPDSBLAPtr_swigregister = _beamformer.DOAEstimatorSRPDSBLAPtr_swigregister
DOAEstimatorSRPDSBLAPtr_swigregister(DOAEstimatorSRPDSBLAPtr)

class DOAEstimatorSRPEBPtr(EigenBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [EigenBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, DOAEstimatorSRPEBPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [EigenBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, DOAEstimatorSRPEBPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_DOAEstimatorSRPEBPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.DOAEstimatorSRPEBPtr___iter__(self)

    def __deref__(self):
        return _beamformer.DOAEstimatorSRPEBPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_DOAEstimatorSRPEBPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.DOAEstimatorSRPEBPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.DOAEstimatorSRPEBPtr_reset(self)

    def dim(self):
        return _beamformer.DOAEstimatorSRPEBPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.DOAEstimatorSRPEBPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.DOAEstimatorSRPEBPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.DOAEstimatorSRPEBPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.DOAEstimatorSRPEBPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.DOAEstimatorSRPEBPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.DOAEstimatorSRPEBPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.DOAEstimatorSRPEBPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.DOAEstimatorSRPEBPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.DOAEstimatorSRPEBPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.DOAEstimatorSRPEBPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.DOAEstimatorSRPEBPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.DOAEstimatorSRPEBPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.DOAEstimatorSRPEBPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.DOAEstimatorSRPEBPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.DOAEstimatorSRPEBPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.DOAEstimatorSRPEBPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.DOAEstimatorSRPEBPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.DOAEstimatorSRPEBPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.DOAEstimatorSRPEBPtr_is_end(self)

    def fftLen(self):
        return _beamformer.DOAEstimatorSRPEBPtr_fftLen(self)

    def chanN(self):
        return _beamformer.DOAEstimatorSRPEBPtr_chanN(self)

    def name(self):
        return _beamformer.DOAEstimatorSRPEBPtr_name(self)

    def size(self):
        return _beamformer.DOAEstimatorSRPEBPtr_size(self)

    def current(self):
        return _beamformer.DOAEstimatorSRPEBPtr_current(self)
DOAEstimatorSRPEBPtr_swigregister = _beamformer.DOAEstimatorSRPEBPtr_swigregister
DOAEstimatorSRPEBPtr_swigregister(DOAEstimatorSRPEBPtr)

class SphericalDSBeamformerPtr(EigenBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [EigenBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SphericalDSBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [EigenBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SphericalDSBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SphericalDSBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SphericalDSBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SphericalDSBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SphericalDSBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SphericalDSBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SphericalDSBeamformerPtr_reset(self)

    def calc_wng(self):
        return _beamformer.SphericalDSBeamformerPtr_calc_wng(self)

    def dim(self):
        return _beamformer.SphericalDSBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.SphericalDSBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.SphericalDSBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.SphericalDSBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.SphericalDSBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.SphericalDSBeamformerPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.SphericalDSBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.SphericalDSBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.SphericalDSBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.SphericalDSBeamformerPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.SphericalDSBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.SphericalDSBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.SphericalDSBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SphericalDSBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SphericalDSBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SphericalDSBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SphericalDSBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SphericalDSBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.SphericalDSBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SphericalDSBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.SphericalDSBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SphericalDSBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SphericalDSBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SphericalDSBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SphericalDSBeamformerPtr_current(self)
SphericalDSBeamformerPtr_swigregister = _beamformer.SphericalDSBeamformerPtr_swigregister
SphericalDSBeamformerPtr_swigregister(SphericalDSBeamformerPtr)

class DualSphericalDSBeamformerPtr(SphericalDSBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, DualSphericalDSBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, DualSphericalDSBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_DualSphericalDSBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.DualSphericalDSBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.DualSphericalDSBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_DualSphericalDSBeamformerPtr
    __del__ = lambda self: None

    def snapshot_array(self):
        return _beamformer.DualSphericalDSBeamformerPtr_snapshot_array(self)

    def next(self, frame_no=-5):
        return _beamformer.DualSphericalDSBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.DualSphericalDSBeamformerPtr_reset(self)

    def calc_wng(self):
        return _beamformer.DualSphericalDSBeamformerPtr_calc_wng(self)

    def dim(self):
        return _beamformer.DualSphericalDSBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.DualSphericalDSBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.DualSphericalDSBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.DualSphericalDSBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.DualSphericalDSBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.DualSphericalDSBeamformerPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.DualSphericalDSBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.DualSphericalDSBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.DualSphericalDSBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array2(self):
        return _beamformer.DualSphericalDSBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.DualSphericalDSBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.DualSphericalDSBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.DualSphericalDSBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.DualSphericalDSBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.DualSphericalDSBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.DualSphericalDSBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.DualSphericalDSBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.DualSphericalDSBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.DualSphericalDSBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.DualSphericalDSBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.DualSphericalDSBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.DualSphericalDSBeamformerPtr_name(self)

    def size(self):
        return _beamformer.DualSphericalDSBeamformerPtr_size(self)

    def current(self):
        return _beamformer.DualSphericalDSBeamformerPtr_current(self)
DualSphericalDSBeamformerPtr_swigregister = _beamformer.DualSphericalDSBeamformerPtr_swigregister
DualSphericalDSBeamformerPtr_swigregister(DualSphericalDSBeamformerPtr)

class DOAEstimatorSRPSphDSBPtr(SphericalDSBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, DOAEstimatorSRPSphDSBPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, DOAEstimatorSRPSphDSBPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_DOAEstimatorSRPSphDSBPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr___iter__(self)

    def __deref__(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_DOAEstimatorSRPSphDSBPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_reset(self)

    def calc_wng(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_calc_wng(self)

    def dim(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_is_end(self)

    def fftLen(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_fftLen(self)

    def chanN(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_chanN(self)

    def name(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_name(self)

    def size(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_size(self)

    def current(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_current(self)
DOAEstimatorSRPSphDSBPtr_swigregister = _beamformer.DOAEstimatorSRPSphDSBPtr_swigregister
DOAEstimatorSRPSphDSBPtr_swigregister(DOAEstimatorSRPSphDSBPtr)

class SphericalHWNCBeamformerPtr(EigenBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [EigenBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SphericalHWNCBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [EigenBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SphericalHWNCBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SphericalHWNCBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SphericalHWNCBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SphericalHWNCBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SphericalHWNCBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SphericalHWNCBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SphericalHWNCBeamformerPtr_reset(self)

    def calc_wng(self):
        return _beamformer.SphericalHWNCBeamformerPtr_calc_wng(self)

    def set_wng(self, ratio):
        return _beamformer.SphericalHWNCBeamformerPtr_set_wng(self, ratio)

    def dim(self):
        return _beamformer.SphericalHWNCBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.SphericalHWNCBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.SphericalHWNCBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.SphericalHWNCBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.SphericalHWNCBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.SphericalHWNCBeamformerPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.SphericalHWNCBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.SphericalHWNCBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.SphericalHWNCBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.SphericalHWNCBeamformerPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.SphericalHWNCBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.SphericalHWNCBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.SphericalHWNCBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SphericalHWNCBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SphericalHWNCBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SphericalHWNCBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SphericalHWNCBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SphericalHWNCBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.SphericalHWNCBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SphericalHWNCBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.SphericalHWNCBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SphericalHWNCBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SphericalHWNCBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SphericalHWNCBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SphericalHWNCBeamformerPtr_current(self)
SphericalHWNCBeamformerPtr_swigregister = _beamformer.SphericalHWNCBeamformerPtr_swigregister
SphericalHWNCBeamformerPtr_swigregister(SphericalHWNCBeamformerPtr)

class SphericalGSCBeamformerPtr(SphericalDSBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SphericalGSCBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SphericalGSCBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SphericalGSCBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SphericalGSCBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SphericalGSCBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SphericalGSCBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SphericalGSCBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SphericalGSCBeamformerPtr_reset(self)

    def set_look_direction(self, theta, phi):
        return _beamformer.SphericalGSCBeamformerPtr_set_look_direction(self, theta, phi)

    def set_active_weights_f(self, fbinX, packedWeight):
        return _beamformer.SphericalGSCBeamformerPtr_set_active_weights_f(self, fbinX, packedWeight)

    def calc_wng(self):
        return _beamformer.SphericalGSCBeamformerPtr_calc_wng(self)

    def dim(self):
        return _beamformer.SphericalGSCBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.SphericalGSCBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.SphericalGSCBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.SphericalGSCBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.SphericalGSCBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def mode_amplitudes(self):
        return _beamformer.SphericalGSCBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.SphericalGSCBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.SphericalGSCBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.SphericalGSCBeamformerPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.SphericalGSCBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.SphericalGSCBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.SphericalGSCBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SphericalGSCBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SphericalGSCBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SphericalGSCBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SphericalGSCBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SphericalGSCBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.SphericalGSCBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SphericalGSCBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.SphericalGSCBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SphericalGSCBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SphericalGSCBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SphericalGSCBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SphericalGSCBeamformerPtr_current(self)
SphericalGSCBeamformerPtr_swigregister = _beamformer.SphericalGSCBeamformerPtr_swigregister
SphericalGSCBeamformerPtr_swigregister(SphericalGSCBeamformerPtr)

class SphericalHWNCGSCBeamformerPtr(SphericalHWNCBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalHWNCBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SphericalHWNCGSCBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalHWNCBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SphericalHWNCGSCBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SphericalHWNCGSCBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SphericalHWNCGSCBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_reset(self)

    def set_look_direction(self, theta, phi):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_look_direction(self, theta, phi)

    def set_active_weights_f(self, fbinX, packedWeight):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_active_weights_f(self, fbinX, packedWeight)

    def calc_wng(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_calc_wng(self)

    def set_wng(self, ratio):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_wng(self, ratio)

    def dim(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def mode_amplitudes(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_current(self)
SphericalHWNCGSCBeamformerPtr_swigregister = _beamformer.SphericalHWNCGSCBeamformerPtr_swigregister
SphericalHWNCGSCBeamformerPtr_swigregister(SphericalHWNCGSCBeamformerPtr)

class DualSphericalGSCBeamformerPtr(SphericalGSCBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalGSCBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, DualSphericalGSCBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalGSCBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, DualSphericalGSCBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_DualSphericalGSCBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.DualSphericalGSCBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.DualSphericalGSCBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_DualSphericalGSCBeamformerPtr
    __del__ = lambda self: None

    def snapshot_array(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_snapshot_array(self)

    def next(self, frame_no=-5):
        return _beamformer.DualSphericalGSCBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_reset(self)

    def set_look_direction(self, theta, phi):
        return _beamformer.DualSphericalGSCBeamformerPtr_set_look_direction(self, theta, phi)

    def set_active_weights_f(self, fbinX, packedWeight):
        return _beamformer.DualSphericalGSCBeamformerPtr_set_active_weights_f(self, fbinX, packedWeight)

    def calc_wng(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_calc_wng(self)

    def dim(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.DualSphericalGSCBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.DualSphericalGSCBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.DualSphericalGSCBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def mode_amplitudes(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.DualSphericalGSCBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.DualSphericalGSCBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array2(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.DualSphericalGSCBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.DualSphericalGSCBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.DualSphericalGSCBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.DualSphericalGSCBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.DualSphericalGSCBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.DualSphericalGSCBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.DualSphericalGSCBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_name(self)

    def size(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_size(self)

    def current(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_current(self)
DualSphericalGSCBeamformerPtr_swigregister = _beamformer.DualSphericalGSCBeamformerPtr_swigregister
DualSphericalGSCBeamformerPtr_swigregister(DualSphericalGSCBeamformerPtr)

class SphericalMOENBeamformerPtr(SphericalDSBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SphericalMOENBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SphericalMOENBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SphericalMOENBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SphericalMOENBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SphericalMOENBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SphericalMOENBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SphericalMOENBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SphericalMOENBeamformerPtr_reset(self)

    def fix_terms(self, flag):
        return _beamformer.SphericalMOENBeamformerPtr_fix_terms(self, flag)

    def set_diagonal_looading(self, fbinX, diagonalWeight):
        return _beamformer.SphericalMOENBeamformerPtr_set_diagonal_looading(self, fbinX, diagonalWeight)

    def snapshot_array(self):
        return _beamformer.SphericalMOENBeamformerPtr_snapshot_array(self)

    def beampattern(self, *args, **kwargs):
        return _beamformer.SphericalMOENBeamformerPtr_beampattern(self, *args, **kwargs)

    def calc_wng(self):
        return _beamformer.SphericalMOENBeamformerPtr_calc_wng(self)

    def dim(self):
        return _beamformer.SphericalMOENBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.SphericalMOENBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.SphericalMOENBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.SphericalMOENBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.SphericalMOENBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.SphericalMOENBeamformerPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.SphericalMOENBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.SphericalMOENBeamformerPtr_array_geometry(self, type)

    def snapshot_array2(self):
        return _beamformer.SphericalMOENBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.SphericalMOENBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.SphericalMOENBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SphericalMOENBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SphericalMOENBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SphericalMOENBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SphericalMOENBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SphericalMOENBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.SphericalMOENBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SphericalMOENBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.SphericalMOENBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SphericalMOENBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SphericalMOENBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SphericalMOENBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SphericalMOENBeamformerPtr_current(self)
SphericalMOENBeamformerPtr_swigregister = _beamformer.SphericalMOENBeamformerPtr_swigregister
SphericalMOENBeamformerPtr_swigregister(SphericalMOENBeamformerPtr)

class nonamePdfPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, nonamePdfPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, nonamePdfPtr, name)
    __repr__ = _swig_repr

    def __init__(self):
        this = _beamformer.new_nonamePdfPtr()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __deref__(self):
        return _beamformer.nonamePdfPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_nonamePdfPtr
    __del__ = lambda self: None

    def loadCoeffDescFile(self, coefDescfn):
        return _beamformer.nonamePdfPtr_loadCoeffDescFile(self, coefDescfn)
nonamePdfPtr_swigregister = _beamformer.nonamePdfPtr_swigregister
nonamePdfPtr_swigregister(nonamePdfPtr)

class gammaPdfPtr(nonamePdfPtr):
    __swig_setmethods__ = {}
    for _s in [nonamePdfPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, gammaPdfPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [nonamePdfPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, gammaPdfPtr, name)
    __repr__ = _swig_repr

    def __init__(self, numberOfVariate=2):
        this = _beamformer.new_gammaPdfPtr(numberOfVariate)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __deref__(self):
        return _beamformer.gammaPdfPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_gammaPdfPtr
    __del__ = lambda self: None

    def calcLog(self, x, N):
        return _beamformer.gammaPdfPtr_calcLog(self, x, N)

    def calcDerivative1(self, x, N):
        return _beamformer.gammaPdfPtr_calcDerivative1(self, x, N)

    def bi(self):
        return _beamformer.gammaPdfPtr_bi(self)

    def four(self):
        return _beamformer.gammaPdfPtr_four(self)

    def printCoeff(self):
        return _beamformer.gammaPdfPtr_printCoeff(self)

    def loadCoeffDescFile(self, coefDescfn):
        return _beamformer.gammaPdfPtr_loadCoeffDescFile(self, coefDescfn)
gammaPdfPtr_swigregister = _beamformer.gammaPdfPtr_swigregister
gammaPdfPtr_swigregister(gammaPdfPtr)

class ModalDecompositionPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, ModalDecompositionPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, ModalDecompositionPtr, name)
    __repr__ = _swig_repr

    def __init__(self, orderN, subbandsN, a, samplerate, useSubbandsN=0):
        this = _beamformer.new_ModalDecompositionPtr(orderN, subbandsN, a, samplerate, useSubbandsN)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _beamformer.delete_ModalDecompositionPtr
    __del__ = lambda self: None
ModalDecompositionPtr_swigregister = _beamformer.ModalDecompositionPtr_swigregister
ModalDecompositionPtr_swigregister(ModalDecompositionPtr)

class SpatialDecompositionPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, SpatialDecompositionPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, SpatialDecompositionPtr, name)
    __repr__ = _swig_repr

    def __init__(self, orderN, subbandsN, a, samplerate, useSubbandsN=0):
        this = _beamformer.new_SpatialDecompositionPtr(orderN, subbandsN, a, samplerate, useSubbandsN)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _beamformer.delete_SpatialDecompositionPtr
    __del__ = lambda self: None
SpatialDecompositionPtr_swigregister = _beamformer.SpatialDecompositionPtr_swigregister
SpatialDecompositionPtr_swigregister(SpatialDecompositionPtr)

class ModalSphericalArrayTrackerPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, ModalSphericalArrayTrackerPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, ModalSphericalArrayTrackerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_ModalSphericalArrayTrackerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.ModalSphericalArrayTrackerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.ModalSphericalArrayTrackerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_ModalSphericalArrayTrackerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.ModalSphericalArrayTrackerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.ModalSphericalArrayTrackerPtr_reset(self)

    def chanN(self):
        return _beamformer.ModalSphericalArrayTrackerPtr_chanN(self)

    def set_channel(self, chan):
        return _beamformer.ModalSphericalArrayTrackerPtr_set_channel(self, chan)

    def set_V(self, Vk, subbandX):
        return _beamformer.ModalSphericalArrayTrackerPtr_set_V(self, Vk, subbandX)

    def next_speaker(self):
        return _beamformer.ModalSphericalArrayTrackerPtr_next_speaker(self)

    def set_initial_position(self, theta, phi):
        return _beamformer.ModalSphericalArrayTrackerPtr_set_initial_position(self, theta, phi)
ModalSphericalArrayTrackerPtr_swigregister = _beamformer.ModalSphericalArrayTrackerPtr_swigregister
ModalSphericalArrayTrackerPtr_swigregister(ModalSphericalArrayTrackerPtr)

class SpatialSphericalArrayTrackerPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, SpatialSphericalArrayTrackerPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, SpatialSphericalArrayTrackerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SpatialSphericalArrayTrackerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SpatialSphericalArrayTrackerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SpatialSphericalArrayTrackerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SpatialSphericalArrayTrackerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SpatialSphericalArrayTrackerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SpatialSphericalArrayTrackerPtr_reset(self)

    def chanN(self):
        return _beamformer.SpatialSphericalArrayTrackerPtr_chanN(self)

    def set_channel(self, chan):
        return _beamformer.SpatialSphericalArrayTrackerPtr_set_channel(self, chan)

    def set_V(self, Vk, subbandX):
        return _beamformer.SpatialSphericalArrayTrackerPtr_set_V(self, Vk, subbandX)

    def next_speaker(self):
        return _beamformer.SpatialSphericalArrayTrackerPtr_next_speaker(self)

    def set_initial_position(self, theta, phi):
        return _beamformer.SpatialSphericalArrayTrackerPtr_set_initial_position(self, theta, phi)
SpatialSphericalArrayTrackerPtr_swigregister = _beamformer.SpatialSphericalArrayTrackerPtr_swigregister
SpatialSphericalArrayTrackerPtr_swigregister(SpatialSphericalArrayTrackerPtr)

class PlaneWaveSimulatorPtr(btk20.stream.VectorComplexFeatureStreamPtr):
    __swig_setmethods__ = {}
    for _s in [btk20.stream.VectorComplexFeatureStreamPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, PlaneWaveSimulatorPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [btk20.stream.VectorComplexFeatureStreamPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, PlaneWaveSimulatorPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_PlaneWaveSimulatorPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.PlaneWaveSimulatorPtr___iter__(self)

    def __deref__(self):
        return _beamformer.PlaneWaveSimulatorPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_PlaneWaveSimulatorPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.PlaneWaveSimulatorPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.PlaneWaveSimulatorPtr_reset(self)

    def name(self):
        return _beamformer.PlaneWaveSimulatorPtr_name(self)

    def size(self):
        return _beamformer.PlaneWaveSimulatorPtr_size(self)

    def current(self):
        return _beamformer.PlaneWaveSimulatorPtr_current(self)
PlaneWaveSimulatorPtr_swigregister = _beamformer.PlaneWaveSimulatorPtr_swigregister
PlaneWaveSimulatorPtr_swigregister(PlaneWaveSimulatorPtr)

class SphericalSpatialDSBeamformerPtr(SphericalDSBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SphericalSpatialDSBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SphericalSpatialDSBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SphericalSpatialDSBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SphericalSpatialDSBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SphericalSpatialDSBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_reset(self)

    def calc_wng(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_calc_wng(self)

    def dim(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.SphericalSpatialDSBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.SphericalSpatialDSBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.SphericalSpatialDSBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.SphericalSpatialDSBeamformerPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.SphericalSpatialDSBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.SphericalSpatialDSBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.SphericalSpatialDSBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SphericalSpatialDSBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SphericalSpatialDSBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SphericalSpatialDSBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SphericalSpatialDSBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SphericalSpatialDSBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.SphericalSpatialDSBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_current(self)
SphericalSpatialDSBeamformerPtr_swigregister = _beamformer.SphericalSpatialDSBeamformerPtr_swigregister
SphericalSpatialDSBeamformerPtr_swigregister(SphericalSpatialDSBeamformerPtr)

class SphericalSpatialHWNCBeamformerPtr(SphericalHWNCBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalHWNCBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SphericalSpatialHWNCBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalHWNCBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SphericalSpatialHWNCBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SphericalSpatialHWNCBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SphericalSpatialHWNCBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_reset(self)

    def calc_wng(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_calc_wng(self)

    def set_wng(self, ratio):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_set_wng(self, ratio)

    def dim(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_current(self)
SphericalSpatialHWNCBeamformerPtr_swigregister = _beamformer.SphericalSpatialHWNCBeamformerPtr_swigregister
SphericalSpatialHWNCBeamformerPtr_swigregister(SphericalSpatialHWNCBeamformerPtr)

# This file is compatible with both classic and new-style classes.



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

from sys import version_info as _swig_python_version_info
if _swig_python_version_info >= (2, 7, 0):
    def swig_import_helper():
        import importlib
        pkg = __name__.rpartition('.')[0]
        mname = '.'.join((pkg, '_beamformer')).lstrip('.')
        try:
            return importlib.import_module(mname)
        except ImportError:
            return importlib.import_module('_beamformer')
    _beamformer = swig_import_helper()
    del swig_import_helper
elif _swig_python_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('_beamformer', [dirname(__file__)])
        except ImportError:
            import _beamformer
            return _beamformer
        try:
            _mod = imp.load_module('_beamformer', fp, pathname, description)
        finally:
            if fp is not None:
                fp.close()
        return _mod
    _beamformer = swig_import_helper()
    del swig_import_helper
else:
    import _beamformer
del _swig_python_version_info

try:
    _swig_property = property
except NameError:
    pass  # Python < 2.2 doesn't have 'property'.

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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):
        if _newclass:
            object.__setattr__(self, name, value)
        else:
            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("'%s' object has no attribute '%s'" % (class_type.__name__, name))


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

try:
    _object = object
    _newclass = 1
except __builtin__.Exception:
    class _object:
        pass
    _newclass = 0


import btk20
from btk20 import stream
oldimport = """

import btk20.stream

"""

import btk20.postfilter
class SnapShotArrayPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, SnapShotArrayPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, SnapShotArrayPtr, name)
    __repr__ = _swig_repr

    def __init__(self, fftlen, chan_num):
        this = _beamformer.new_SnapShotArrayPtr(fftlen, chan_num)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __deref__(self):
        return _beamformer.SnapShotArrayPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SnapShotArrayPtr
    __del__ = lambda self: None

    def snapshot(self, fbinX):
        return _beamformer.SnapShotArrayPtr_snapshot(self, fbinX)

    def set_samples(self, samp, chanX):
        return _beamformer.SnapShotArrayPtr_set_samples(self, samp, chanX)

    def fftLen(self):
        return _beamformer.SnapShotArrayPtr_fftLen(self)

    def nChan(self):
        return _beamformer.SnapShotArrayPtr_nChan(self)

    def update(self):
        return _beamformer.SnapShotArrayPtr_update(self)

    def zero(self):
        return _beamformer.SnapShotArrayPtr_zero(self)
SnapShotArrayPtr_swigregister = _beamformer.SnapShotArrayPtr_swigregister
SnapShotArrayPtr_swigregister(SnapShotArrayPtr)

class SpectralMatrixArrayPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, SpectralMatrixArrayPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, SpectralMatrixArrayPtr, name)
    __repr__ = _swig_repr

    def __init__(self, fftLn, nChn, forgetFact=0.95):
        this = _beamformer.new_SpectralMatrixArrayPtr(fftLn, nChn, forgetFact)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __deref__(self):
        return _beamformer.SpectralMatrixArrayPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SpectralMatrixArrayPtr
    __del__ = lambda self: None

    def matrix_f(self, idx):
        return _beamformer.SpectralMatrixArrayPtr_matrix_f(self, idx)

    def update(self):
        return _beamformer.SpectralMatrixArrayPtr_update(self)

    def zero(self):
        return _beamformer.SpectralMatrixArrayPtr_zero(self)

    def snapshot(self, fbinX):
        return _beamformer.SpectralMatrixArrayPtr_snapshot(self, fbinX)

    def set_samples(self, samp, chanX):
        return _beamformer.SpectralMatrixArrayPtr_set_samples(self, samp, chanX)

    def fftLen(self):
        return _beamformer.SpectralMatrixArrayPtr_fftLen(self)

    def nChan(self):
        return _beamformer.SpectralMatrixArrayPtr_nChan(self)
SpectralMatrixArrayPtr_swigregister = _beamformer.SpectralMatrixArrayPtr_swigregister
SpectralMatrixArrayPtr_swigregister(SpectralMatrixArrayPtr)

class SubbandBeamformerPtr(btk20.stream.VectorComplexFeatureStreamPtr):
    __swig_setmethods__ = {}
    for _s in [btk20.stream.VectorComplexFeatureStreamPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [btk20.stream.VectorComplexFeatureStreamPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SubbandBeamformerPtr_reset(self)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SubbandBeamformerPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.SubbandBeamformerPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.SubbandBeamformerPtr_set_channel(self, chan)

    def clear_channel(self):
        return _beamformer.SubbandBeamformerPtr_clear_channel(self)

    def is_end(self):
        return _beamformer.SubbandBeamformerPtr_is_end(self)

    def dim(self):
        return _beamformer.SubbandBeamformerPtr_dim(self)

    def fftLen(self):
        return _beamformer.SubbandBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SubbandBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SubbandBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SubbandBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SubbandBeamformerPtr_current(self)
SubbandBeamformerPtr_swigregister = _beamformer.SubbandBeamformerPtr_swigregister
SubbandBeamformerPtr_swigregister(SubbandBeamformerPtr)

class SubbandDSPtr(SubbandBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandDSPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandDSPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandDSPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandDSPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandDSPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandDSPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandDSPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SubbandDSPtr_reset(self)

    def clear_channel(self):
        return _beamformer.SubbandDSPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SubbandDSPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SubbandDSPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SubbandDSPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SubbandDSPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SubbandDSPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.SubbandDSPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.SubbandDSPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SubbandDSPtr_is_end(self)

    def dim(self):
        return _beamformer.SubbandDSPtr_dim(self)

    def fftLen(self):
        return _beamformer.SubbandDSPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SubbandDSPtr_chanN(self)

    def name(self):
        return _beamformer.SubbandDSPtr_name(self)

    def size(self):
        return _beamformer.SubbandDSPtr_size(self)

    def current(self):
        return _beamformer.SubbandDSPtr_current(self)
SubbandDSPtr_swigregister = _beamformer.SubbandDSPtr_swigregister
SubbandDSPtr_swigregister(SubbandDSPtr)

class SubbandGSCPtr(SubbandDSPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandGSCPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandGSCPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandGSCPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandGSCPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandGSCPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandGSCPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandGSCPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SubbandGSCPtr_reset(self)

    def normalize_weight(self, flag):
        return _beamformer.SubbandGSCPtr_normalize_weight(self, flag)

    def set_quiescent_weights_f(self, fbinX, srcWq):
        return _beamformer.SubbandGSCPtr_set_quiescent_weights_f(self, fbinX, srcWq)

    def set_active_weights_f(self, fbinX, packedWeight):
        return _beamformer.SubbandGSCPtr_set_active_weights_f(self, fbinX, packedWeight)

    def zero_active_weights(self):
        return _beamformer.SubbandGSCPtr_zero_active_weights(self)

    def calc_gsc_weights(self, samplerate, delaysT):
        return _beamformer.SubbandGSCPtr_calc_gsc_weights(self, samplerate, delaysT)

    def calc_gsc_weights_2(self, samplerate, delaysT, delaysJ):
        return _beamformer.SubbandGSCPtr_calc_gsc_weights_2(self, samplerate, delaysT, delaysJ)

    def calc_gsc_weights_n(self, samplerate, delaysT, delaysJ, NC=2):
        return _beamformer.SubbandGSCPtr_calc_gsc_weights_n(self, samplerate, delaysT, delaysJ, NC)

    def write_fir_coeff(self, fn, winType=1):
        return _beamformer.SubbandGSCPtr_write_fir_coeff(self, fn, winType)

    def clear_channel(self):
        return _beamformer.SubbandGSCPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SubbandGSCPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SubbandGSCPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SubbandGSCPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SubbandGSCPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SubbandGSCPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.SubbandGSCPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.SubbandGSCPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SubbandGSCPtr_is_end(self)

    def dim(self):
        return _beamformer.SubbandGSCPtr_dim(self)

    def fftLen(self):
        return _beamformer.SubbandGSCPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SubbandGSCPtr_chanN(self)

    def name(self):
        return _beamformer.SubbandGSCPtr_name(self)

    def size(self):
        return _beamformer.SubbandGSCPtr_size(self)

    def current(self):
        return _beamformer.SubbandGSCPtr_current(self)
SubbandGSCPtr_swigregister = _beamformer.SubbandGSCPtr_swigregister
SubbandGSCPtr_swigregister(SubbandGSCPtr)

class SubbandGSCRLSPtr(SubbandGSCPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandGSCPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandGSCRLSPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandGSCPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandGSCRLSPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandGSCRLSPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandGSCRLSPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandGSCRLSPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandGSCRLSPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandGSCRLSPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SubbandGSCRLSPtr_reset(self)

    def init_precision_matrix(self, sigma2=0.01):
        return _beamformer.SubbandGSCRLSPtr_init_precision_matrix(self, sigma2)

    def set_precision_matrix(self, fbinX, Pz):
        return _beamformer.SubbandGSCRLSPtr_set_precision_matrix(self, fbinX, Pz)

    def update_active_weight_vecotrs(self, flag):
        return _beamformer.SubbandGSCRLSPtr_update_active_weight_vecotrs(self, flag)

    def set_quadratic_constraint(self, alpha, qctype=1):
        return _beamformer.SubbandGSCRLSPtr_set_quadratic_constraint(self, alpha, qctype)

    def normalize_weight(self, flag):
        return _beamformer.SubbandGSCRLSPtr_normalize_weight(self, flag)

    def set_quiescent_weights_f(self, fbinX, srcWq):
        return _beamformer.SubbandGSCRLSPtr_set_quiescent_weights_f(self, fbinX, srcWq)

    def set_active_weights_f(self, fbinX, packedWeight):
        return _beamformer.SubbandGSCRLSPtr_set_active_weights_f(self, fbinX, packedWeight)

    def zero_active_weights(self):
        return _beamformer.SubbandGSCRLSPtr_zero_active_weights(self)

    def calc_gsc_weights(self, samplerate, delaysT):
        return _beamformer.SubbandGSCRLSPtr_calc_gsc_weights(self, samplerate, delaysT)

    def calc_gsc_weights_2(self, samplerate, delaysT, delaysJ):
        return _beamformer.SubbandGSCRLSPtr_calc_gsc_weights_2(self, samplerate, delaysT, delaysJ)

    def calc_gsc_weights_n(self, samplerate, delaysT, delaysJ, NC=2):
        return _beamformer.SubbandGSCRLSPtr_calc_gsc_weights_n(self, samplerate, delaysT, delaysJ, NC)

    def write_fir_coeff(self, fn, winType=1):
        return _beamformer.SubbandGSCRLSPtr_write_fir_coeff(self, fn, winType)

    def clear_channel(self):
        return _beamformer.SubbandGSCRLSPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SubbandGSCRLSPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SubbandGSCRLSPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SubbandGSCRLSPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SubbandGSCRLSPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SubbandGSCRLSPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.SubbandGSCRLSPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.SubbandGSCRLSPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SubbandGSCRLSPtr_is_end(self)

    def dim(self):
        return _beamformer.SubbandGSCRLSPtr_dim(self)

    def fftLen(self):
        return _beamformer.SubbandGSCRLSPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SubbandGSCRLSPtr_chanN(self)

    def name(self):
        return _beamformer.SubbandGSCRLSPtr_name(self)

    def size(self):
        return _beamformer.SubbandGSCRLSPtr_size(self)

    def current(self):
        return _beamformer.SubbandGSCRLSPtr_current(self)
SubbandGSCRLSPtr_swigregister = _beamformer.SubbandGSCRLSPtr_swigregister
SubbandGSCRLSPtr_swigregister(SubbandGSCRLSPtr)

class SubbandMMIPtr(SubbandDSPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandMMIPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandMMIPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandMMIPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandMMIPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandMMIPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandMMIPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandMMIPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SubbandMMIPtr_reset(self)

    def use_binary_mask(self, avgFactor=-1.0, fwidth=1, type=0):
        return _beamformer.SubbandMMIPtr_use_binary_mask(self, avgFactor, fwidth, type)

    def calc_weights(self, samplerate, delays):
        return _beamformer.SubbandMMIPtr_calc_weights(self, samplerate, delays)

    def calc_weights_n(self, samplerate, delays, NC=2):
        return _beamformer.SubbandMMIPtr_calc_weights_n(self, samplerate, delays, NC)

    def set_hi_active_weights_f(self, fbinX, pkdWa, pkdwb, option=0):
        return _beamformer.SubbandMMIPtr_set_hi_active_weights_f(self, fbinX, pkdWa, pkdwb, option)

    def set_active_weights_f(self, fbinX, packedWeights, option=0):
        return _beamformer.SubbandMMIPtr_set_active_weights_f(self, fbinX, packedWeights, option)

    def clear_channel(self):
        return _beamformer.SubbandMMIPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SubbandMMIPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SubbandMMIPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SubbandMMIPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SubbandMMIPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SubbandMMIPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.SubbandMMIPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.SubbandMMIPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SubbandMMIPtr_is_end(self)

    def dim(self):
        return _beamformer.SubbandMMIPtr_dim(self)

    def fftLen(self):
        return _beamformer.SubbandMMIPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SubbandMMIPtr_chanN(self)

    def name(self):
        return _beamformer.SubbandMMIPtr_name(self)

    def size(self):
        return _beamformer.SubbandMMIPtr_size(self)

    def current(self):
        return _beamformer.SubbandMMIPtr_current(self)
SubbandMMIPtr_swigregister = _beamformer.SubbandMMIPtr_swigregister
SubbandMMIPtr_swigregister(SubbandMMIPtr)


def calc_all_delays(x, y, z, mpos, delays):
    return _beamformer.calc_all_delays(x, y, z, mpos, delays)
calc_all_delays = _beamformer.calc_all_delays

def calc_product(synthesisSamples, gs_W, product):
    return _beamformer.calc_product(synthesisSamples, gs_W, product)
calc_product = _beamformer.calc_product
class SubbandMVDRPtr(SubbandDSPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandMVDRPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandMVDRPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandMVDRPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandMVDRPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandMVDRPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandMVDRPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandMVDRPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SubbandMVDRPtr_reset(self)

    def clear_channel(self):
        return _beamformer.SubbandMVDRPtr_clear_channel(self)

    def calc_mvdr_weights(self, samplerate, dthreshold=1.0E-8, calc_inverse_matrix=True):
        return _beamformer.SubbandMVDRPtr_calc_mvdr_weights(self, samplerate, dthreshold, calc_inverse_matrix)

    def mvdr_weights(self, fbinX):
        return _beamformer.SubbandMVDRPtr_mvdr_weights(self, fbinX)

    def noise_spatial_spectral_matrix(self, *args):
        return _beamformer.SubbandMVDRPtr_noise_spatial_spectral_matrix(self, *args)

    def set_noise_spatial_spectral_matrix(self, fbinX, Rnn):
        return _beamformer.SubbandMVDRPtr_set_noise_spatial_spectral_matrix(self, fbinX, Rnn)

    def set_diffuse_noise_model(self, micPositions, samplerate, sspeed=343740.0):
        return _beamformer.SubbandMVDRPtr_set_diffuse_noise_model(self, micPositions, samplerate, sspeed)

    def set_all_diagonal_loading(self, diagonalWeight):
        return _beamformer.SubbandMVDRPtr_set_all_diagonal_loading(self, diagonalWeight)

    def set_diagonal_looading(self, fbinX, diagonalWeight):
        return _beamformer.SubbandMVDRPtr_set_diagonal_looading(self, fbinX, diagonalWeight)

    def divide_all_nondiagonal_elements(self, mu):
        return _beamformer.SubbandMVDRPtr_divide_all_nondiagonal_elements(self, mu)

    def divide_nondiagonal_elements(self, fbinX, mu):
        return _beamformer.SubbandMVDRPtr_divide_nondiagonal_elements(self, fbinX, mu)

    def get_weights(self, fbinX):
        return _beamformer.SubbandMVDRPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SubbandMVDRPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SubbandMVDRPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SubbandMVDRPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SubbandMVDRPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.SubbandMVDRPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.SubbandMVDRPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SubbandMVDRPtr_is_end(self)

    def dim(self):
        return _beamformer.SubbandMVDRPtr_dim(self)

    def fftLen(self):
        return _beamformer.SubbandMVDRPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SubbandMVDRPtr_chanN(self)

    def name(self):
        return _beamformer.SubbandMVDRPtr_name(self)

    def size(self):
        return _beamformer.SubbandMVDRPtr_size(self)

    def current(self):
        return _beamformer.SubbandMVDRPtr_current(self)
SubbandMVDRPtr_swigregister = _beamformer.SubbandMVDRPtr_swigregister
SubbandMVDRPtr_swigregister(SubbandMVDRPtr)

class SubbandMVDRGSCPtr(SubbandMVDRPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandMVDRPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandMVDRGSCPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandMVDRPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandMVDRGSCPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandMVDRGSCPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandMVDRGSCPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandMVDRGSCPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandMVDRGSCPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandMVDRGSCPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SubbandMVDRGSCPtr_reset(self)

    def set_active_weights_f(self, fbinX, packedWeight):
        return _beamformer.SubbandMVDRGSCPtr_set_active_weights_f(self, fbinX, packedWeight)

    def zero_active_weights(self):
        return _beamformer.SubbandMVDRGSCPtr_zero_active_weights(self)

    def calc_blocking_matrix1(self, samplerate, delaysT):
        return _beamformer.SubbandMVDRGSCPtr_calc_blocking_matrix1(self, samplerate, delaysT)

    def calc_blocking_matrix2(self):
        return _beamformer.SubbandMVDRGSCPtr_calc_blocking_matrix2(self)

    def upgrade_blocking_matrix(self):
        return _beamformer.SubbandMVDRGSCPtr_upgrade_blocking_matrix(self)

    def blocking_matrix_output(self, outChanX=0):
        return _beamformer.SubbandMVDRGSCPtr_blocking_matrix_output(self, outChanX)

    def clear_channel(self):
        return _beamformer.SubbandMVDRGSCPtr_clear_channel(self)

    def calc_mvdr_weights(self, samplerate, dthreshold=1.0E-8, calc_inverse_matrix=True):
        return _beamformer.SubbandMVDRGSCPtr_calc_mvdr_weights(self, samplerate, dthreshold, calc_inverse_matrix)

    def mvdr_weights(self, fbinX):
        return _beamformer.SubbandMVDRGSCPtr_mvdr_weights(self, fbinX)

    def noise_spatial_spectral_matrix(self, *args):
        return _beamformer.SubbandMVDRGSCPtr_noise_spatial_spectral_matrix(self, *args)

    def set_noise_spatial_spectral_matrix(self, fbinX, Rnn):
        return _beamformer.SubbandMVDRGSCPtr_set_noise_spatial_spectral_matrix(self, fbinX, Rnn)

    def set_diffuse_noise_model(self, micPositions, samplerate, sspeed=343740.0):
        return _beamformer.SubbandMVDRGSCPtr_set_diffuse_noise_model(self, micPositions, samplerate, sspeed)

    def set_all_diagonal_loading(self, diagonalWeight):
        return _beamformer.SubbandMVDRGSCPtr_set_all_diagonal_loading(self, diagonalWeight)

    def set_diagonal_looading(self, fbinX, diagonalWeight):
        return _beamformer.SubbandMVDRGSCPtr_set_diagonal_looading(self, fbinX, diagonalWeight)

    def divide_all_nondiagonal_elements(self, mu):
        return _beamformer.SubbandMVDRGSCPtr_divide_all_nondiagonal_elements(self, mu)

    def divide_nondiagonal_elements(self, fbinX, mu):
        return _beamformer.SubbandMVDRGSCPtr_divide_nondiagonal_elements(self, fbinX, mu)

    def get_weights(self, fbinX):
        return _beamformer.SubbandMVDRGSCPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SubbandMVDRGSCPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SubbandMVDRGSCPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SubbandMVDRGSCPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SubbandMVDRGSCPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.SubbandMVDRGSCPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.SubbandMVDRGSCPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SubbandMVDRGSCPtr_is_end(self)

    def dim(self):
        return _beamformer.SubbandMVDRGSCPtr_dim(self)

    def fftLen(self):
        return _beamformer.SubbandMVDRGSCPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SubbandMVDRGSCPtr_chanN(self)

    def name(self):
        return _beamformer.SubbandMVDRGSCPtr_name(self)

    def size(self):
        return _beamformer.SubbandMVDRGSCPtr_size(self)

    def current(self):
        return _beamformer.SubbandMVDRGSCPtr_current(self)
SubbandMVDRGSCPtr_swigregister = _beamformer.SubbandMVDRGSCPtr_swigregister
SubbandMVDRGSCPtr_swigregister(SubbandMVDRGSCPtr)

class SubbandOrthogonalizerPtr(btk20.stream.VectorComplexFeatureStreamPtr):
    __swig_setmethods__ = {}
    for _s in [btk20.stream.VectorComplexFeatureStreamPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SubbandOrthogonalizerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [btk20.stream.VectorComplexFeatureStreamPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SubbandOrthogonalizerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SubbandOrthogonalizerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SubbandOrthogonalizerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SubbandOrthogonalizerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SubbandOrthogonalizerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SubbandOrthogonalizerPtr_next(self, frame_no)

    def name(self):
        return _beamformer.SubbandOrthogonalizerPtr_name(self)

    def size(self):
        return _beamformer.SubbandOrthogonalizerPtr_size(self)

    def current(self):
        return _beamformer.SubbandOrthogonalizerPtr_current(self)

    def reset(self):
        return _beamformer.SubbandOrthogonalizerPtr_reset(self)
SubbandOrthogonalizerPtr_swigregister = _beamformer.SubbandOrthogonalizerPtr_swigregister
SubbandOrthogonalizerPtr_swigregister(SubbandOrthogonalizerPtr)


def modeAmplitude(order, ka):
    return _beamformer.modeAmplitude(order, ka)
modeAmplitude = _beamformer.modeAmplitude
class ModeAmplitudeCalculatorPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, ModeAmplitudeCalculatorPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, ModeAmplitudeCalculatorPtr, name)
    __repr__ = _swig_repr

    def __init__(self, order, minKa=0.01, maxKa=20, wid=0.01):
        this = _beamformer.new_ModeAmplitudeCalculatorPtr(order, minKa, maxKa, wid)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __deref__(self):
        return _beamformer.ModeAmplitudeCalculatorPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_ModeAmplitudeCalculatorPtr
    __del__ = lambda self: None

    def get(self):
        return _beamformer.ModeAmplitudeCalculatorPtr_get(self)
ModeAmplitudeCalculatorPtr_swigregister = _beamformer.ModeAmplitudeCalculatorPtr_swigregister
ModeAmplitudeCalculatorPtr_swigregister(ModeAmplitudeCalculatorPtr)

class EigenBeamformerPtr(SubbandDSPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, EigenBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, EigenBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_EigenBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.EigenBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.EigenBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_EigenBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.EigenBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.EigenBeamformerPtr_reset(self)

    def dim(self):
        return _beamformer.EigenBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.EigenBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.EigenBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.EigenBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.EigenBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.EigenBeamformerPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.EigenBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.EigenBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.EigenBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.EigenBeamformerPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.EigenBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.EigenBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.EigenBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.EigenBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.EigenBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.EigenBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.EigenBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.EigenBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.EigenBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.EigenBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.EigenBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.EigenBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.EigenBeamformerPtr_name(self)

    def size(self):
        return _beamformer.EigenBeamformerPtr_size(self)

    def current(self):
        return _beamformer.EigenBeamformerPtr_current(self)
EigenBeamformerPtr_swigregister = _beamformer.EigenBeamformerPtr_swigregister
EigenBeamformerPtr_swigregister(EigenBeamformerPtr)

class DOAEstimatorSRPBasePtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, DOAEstimatorSRPBasePtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, DOAEstimatorSRPBasePtr, name)
    __repr__ = _swig_repr

    def __init__(self, nBest, fbinMax):
        this = _beamformer.new_DOAEstimatorSRPBasePtr(nBest, fbinMax)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __deref__(self):
        return _beamformer.DOAEstimatorSRPBasePtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_DOAEstimatorSRPBasePtr
    __del__ = lambda self: None

    def nbest_rps(self):
        return _beamformer.DOAEstimatorSRPBasePtr_nbest_rps(self)

    def nbest_doas(self):
        return _beamformer.DOAEstimatorSRPBasePtr_nbest_doas(self)

    def response_power_matrix(self):
        return _beamformer.DOAEstimatorSRPBasePtr_response_power_matrix(self)

    def energy(self):
        return _beamformer.DOAEstimatorSRPBasePtr_energy(self)

    def final_nbest_hypotheses(self):
        return _beamformer.DOAEstimatorSRPBasePtr_final_nbest_hypotheses(self)

    def set_energy_threshold(self, engeryThreshold):
        return _beamformer.DOAEstimatorSRPBasePtr_set_energy_threshold(self, engeryThreshold)

    def set_frequency_range(self, fbinMin, fbinMax):
        return _beamformer.DOAEstimatorSRPBasePtr_set_frequency_range(self, fbinMin, fbinMax)

    def init_accs(self):
        return _beamformer.DOAEstimatorSRPBasePtr_init_accs(self)
DOAEstimatorSRPBasePtr_swigregister = _beamformer.DOAEstimatorSRPBasePtr_swigregister
DOAEstimatorSRPBasePtr_swigregister(DOAEstimatorSRPBasePtr)

class DOAEstimatorSRPDSBLAPtr(SubbandDSPtr):
    __swig_setmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, DOAEstimatorSRPDSBLAPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SubbandDSPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, DOAEstimatorSRPDSBLAPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_DOAEstimatorSRPDSBLAPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr___iter__(self)

    def __deref__(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_DOAEstimatorSRPDSBLAPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_reset(self)

    def set_array_geometry(self, positions):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_set_array_geometry(self, positions)

    def clear_channel(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_snapshot_array_f(self, fbinX)

    def snapshot_array(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_snapshot_array(self)

    def set_channel(self, chan):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_is_end(self)

    def dim(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_dim(self)

    def fftLen(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_fftLen(self)

    def chanN(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_chanN(self)

    def name(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_name(self)

    def size(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_size(self)

    def current(self):
        return _beamformer.DOAEstimatorSRPDSBLAPtr_current(self)
DOAEstimatorSRPDSBLAPtr_swigregister = _beamformer.DOAEstimatorSRPDSBLAPtr_swigregister
DOAEstimatorSRPDSBLAPtr_swigregister(DOAEstimatorSRPDSBLAPtr)

class DOAEstimatorSRPEBPtr(EigenBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [EigenBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, DOAEstimatorSRPEBPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [EigenBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, DOAEstimatorSRPEBPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_DOAEstimatorSRPEBPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.DOAEstimatorSRPEBPtr___iter__(self)

    def __deref__(self):
        return _beamformer.DOAEstimatorSRPEBPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_DOAEstimatorSRPEBPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.DOAEstimatorSRPEBPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.DOAEstimatorSRPEBPtr_reset(self)

    def dim(self):
        return _beamformer.DOAEstimatorSRPEBPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.DOAEstimatorSRPEBPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.DOAEstimatorSRPEBPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.DOAEstimatorSRPEBPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.DOAEstimatorSRPEBPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.DOAEstimatorSRPEBPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.DOAEstimatorSRPEBPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.DOAEstimatorSRPEBPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.DOAEstimatorSRPEBPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.DOAEstimatorSRPEBPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.DOAEstimatorSRPEBPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.DOAEstimatorSRPEBPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.DOAEstimatorSRPEBPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.DOAEstimatorSRPEBPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.DOAEstimatorSRPEBPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.DOAEstimatorSRPEBPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.DOAEstimatorSRPEBPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.DOAEstimatorSRPEBPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.DOAEstimatorSRPEBPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.DOAEstimatorSRPEBPtr_is_end(self)

    def fftLen(self):
        return _beamformer.DOAEstimatorSRPEBPtr_fftLen(self)

    def chanN(self):
        return _beamformer.DOAEstimatorSRPEBPtr_chanN(self)

    def name(self):
        return _beamformer.DOAEstimatorSRPEBPtr_name(self)

    def size(self):
        return _beamformer.DOAEstimatorSRPEBPtr_size(self)

    def current(self):
        return _beamformer.DOAEstimatorSRPEBPtr_current(self)
DOAEstimatorSRPEBPtr_swigregister = _beamformer.DOAEstimatorSRPEBPtr_swigregister
DOAEstimatorSRPEBPtr_swigregister(DOAEstimatorSRPEBPtr)

class SphericalDSBeamformerPtr(EigenBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [EigenBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SphericalDSBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [EigenBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SphericalDSBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SphericalDSBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SphericalDSBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SphericalDSBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SphericalDSBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SphericalDSBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SphericalDSBeamformerPtr_reset(self)

    def calc_wng(self):
        return _beamformer.SphericalDSBeamformerPtr_calc_wng(self)

    def dim(self):
        return _beamformer.SphericalDSBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.SphericalDSBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.SphericalDSBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.SphericalDSBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.SphericalDSBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.SphericalDSBeamformerPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.SphericalDSBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.SphericalDSBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.SphericalDSBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.SphericalDSBeamformerPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.SphericalDSBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.SphericalDSBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.SphericalDSBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SphericalDSBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SphericalDSBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SphericalDSBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SphericalDSBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SphericalDSBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.SphericalDSBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SphericalDSBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.SphericalDSBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SphericalDSBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SphericalDSBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SphericalDSBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SphericalDSBeamformerPtr_current(self)
SphericalDSBeamformerPtr_swigregister = _beamformer.SphericalDSBeamformerPtr_swigregister
SphericalDSBeamformerPtr_swigregister(SphericalDSBeamformerPtr)

class DualSphericalDSBeamformerPtr(SphericalDSBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, DualSphericalDSBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, DualSphericalDSBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_DualSphericalDSBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.DualSphericalDSBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.DualSphericalDSBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_DualSphericalDSBeamformerPtr
    __del__ = lambda self: None

    def snapshot_array(self):
        return _beamformer.DualSphericalDSBeamformerPtr_snapshot_array(self)

    def next(self, frame_no=-5):
        return _beamformer.DualSphericalDSBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.DualSphericalDSBeamformerPtr_reset(self)

    def calc_wng(self):
        return _beamformer.DualSphericalDSBeamformerPtr_calc_wng(self)

    def dim(self):
        return _beamformer.DualSphericalDSBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.DualSphericalDSBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.DualSphericalDSBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.DualSphericalDSBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.DualSphericalDSBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.DualSphericalDSBeamformerPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.DualSphericalDSBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.DualSphericalDSBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.DualSphericalDSBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array2(self):
        return _beamformer.DualSphericalDSBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.DualSphericalDSBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.DualSphericalDSBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.DualSphericalDSBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.DualSphericalDSBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.DualSphericalDSBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.DualSphericalDSBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.DualSphericalDSBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.DualSphericalDSBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.DualSphericalDSBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.DualSphericalDSBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.DualSphericalDSBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.DualSphericalDSBeamformerPtr_name(self)

    def size(self):
        return _beamformer.DualSphericalDSBeamformerPtr_size(self)

    def current(self):
        return _beamformer.DualSphericalDSBeamformerPtr_current(self)
DualSphericalDSBeamformerPtr_swigregister = _beamformer.DualSphericalDSBeamformerPtr_swigregister
DualSphericalDSBeamformerPtr_swigregister(DualSphericalDSBeamformerPtr)

class DOAEstimatorSRPSphDSBPtr(SphericalDSBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, DOAEstimatorSRPSphDSBPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, DOAEstimatorSRPSphDSBPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_DOAEstimatorSRPSphDSBPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr___iter__(self)

    def __deref__(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_DOAEstimatorSRPSphDSBPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_reset(self)

    def calc_wng(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_calc_wng(self)

    def dim(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_is_end(self)

    def fftLen(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_fftLen(self)

    def chanN(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_chanN(self)

    def name(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_name(self)

    def size(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_size(self)

    def current(self):
        return _beamformer.DOAEstimatorSRPSphDSBPtr_current(self)
DOAEstimatorSRPSphDSBPtr_swigregister = _beamformer.DOAEstimatorSRPSphDSBPtr_swigregister
DOAEstimatorSRPSphDSBPtr_swigregister(DOAEstimatorSRPSphDSBPtr)

class SphericalHWNCBeamformerPtr(EigenBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [EigenBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SphericalHWNCBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [EigenBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SphericalHWNCBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SphericalHWNCBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SphericalHWNCBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SphericalHWNCBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SphericalHWNCBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SphericalHWNCBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SphericalHWNCBeamformerPtr_reset(self)

    def calc_wng(self):
        return _beamformer.SphericalHWNCBeamformerPtr_calc_wng(self)

    def set_wng(self, ratio):
        return _beamformer.SphericalHWNCBeamformerPtr_set_wng(self, ratio)

    def dim(self):
        return _beamformer.SphericalHWNCBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.SphericalHWNCBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.SphericalHWNCBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.SphericalHWNCBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.SphericalHWNCBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.SphericalHWNCBeamformerPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.SphericalHWNCBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.SphericalHWNCBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.SphericalHWNCBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.SphericalHWNCBeamformerPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.SphericalHWNCBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.SphericalHWNCBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.SphericalHWNCBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SphericalHWNCBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SphericalHWNCBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SphericalHWNCBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SphericalHWNCBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SphericalHWNCBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.SphericalHWNCBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SphericalHWNCBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.SphericalHWNCBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SphericalHWNCBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SphericalHWNCBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SphericalHWNCBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SphericalHWNCBeamformerPtr_current(self)
SphericalHWNCBeamformerPtr_swigregister = _beamformer.SphericalHWNCBeamformerPtr_swigregister
SphericalHWNCBeamformerPtr_swigregister(SphericalHWNCBeamformerPtr)

class SphericalGSCBeamformerPtr(SphericalDSBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SphericalGSCBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SphericalGSCBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SphericalGSCBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SphericalGSCBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SphericalGSCBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SphericalGSCBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SphericalGSCBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SphericalGSCBeamformerPtr_reset(self)

    def set_look_direction(self, theta, phi):
        return _beamformer.SphericalGSCBeamformerPtr_set_look_direction(self, theta, phi)

    def set_active_weights_f(self, fbinX, packedWeight):
        return _beamformer.SphericalGSCBeamformerPtr_set_active_weights_f(self, fbinX, packedWeight)

    def calc_wng(self):
        return _beamformer.SphericalGSCBeamformerPtr_calc_wng(self)

    def dim(self):
        return _beamformer.SphericalGSCBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.SphericalGSCBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.SphericalGSCBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.SphericalGSCBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.SphericalGSCBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def mode_amplitudes(self):
        return _beamformer.SphericalGSCBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.SphericalGSCBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.SphericalGSCBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.SphericalGSCBeamformerPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.SphericalGSCBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.SphericalGSCBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.SphericalGSCBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SphericalGSCBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SphericalGSCBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SphericalGSCBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SphericalGSCBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SphericalGSCBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.SphericalGSCBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SphericalGSCBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.SphericalGSCBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SphericalGSCBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SphericalGSCBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SphericalGSCBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SphericalGSCBeamformerPtr_current(self)
SphericalGSCBeamformerPtr_swigregister = _beamformer.SphericalGSCBeamformerPtr_swigregister
SphericalGSCBeamformerPtr_swigregister(SphericalGSCBeamformerPtr)

class SphericalHWNCGSCBeamformerPtr(SphericalHWNCBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalHWNCBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SphericalHWNCGSCBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalHWNCBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SphericalHWNCGSCBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SphericalHWNCGSCBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SphericalHWNCGSCBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_reset(self)

    def set_look_direction(self, theta, phi):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_look_direction(self, theta, phi)

    def set_active_weights_f(self, fbinX, packedWeight):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_active_weights_f(self, fbinX, packedWeight)

    def calc_wng(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_calc_wng(self)

    def set_wng(self, ratio):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_wng(self, ratio)

    def dim(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def mode_amplitudes(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SphericalHWNCGSCBeamformerPtr_current(self)
SphericalHWNCGSCBeamformerPtr_swigregister = _beamformer.SphericalHWNCGSCBeamformerPtr_swigregister
SphericalHWNCGSCBeamformerPtr_swigregister(SphericalHWNCGSCBeamformerPtr)

class DualSphericalGSCBeamformerPtr(SphericalGSCBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalGSCBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, DualSphericalGSCBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalGSCBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, DualSphericalGSCBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_DualSphericalGSCBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.DualSphericalGSCBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.DualSphericalGSCBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_DualSphericalGSCBeamformerPtr
    __del__ = lambda self: None

    def snapshot_array(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_snapshot_array(self)

    def next(self, frame_no=-5):
        return _beamformer.DualSphericalGSCBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_reset(self)

    def set_look_direction(self, theta, phi):
        return _beamformer.DualSphericalGSCBeamformerPtr_set_look_direction(self, theta, phi)

    def set_active_weights_f(self, fbinX, packedWeight):
        return _beamformer.DualSphericalGSCBeamformerPtr_set_active_weights_f(self, fbinX, packedWeight)

    def calc_wng(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_calc_wng(self)

    def dim(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.DualSphericalGSCBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.DualSphericalGSCBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.DualSphericalGSCBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def mode_amplitudes(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.DualSphericalGSCBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.DualSphericalGSCBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array2(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.DualSphericalGSCBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.DualSphericalGSCBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.DualSphericalGSCBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.DualSphericalGSCBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.DualSphericalGSCBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.DualSphericalGSCBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.DualSphericalGSCBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_name(self)

    def size(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_size(self)

    def current(self):
        return _beamformer.DualSphericalGSCBeamformerPtr_current(self)
DualSphericalGSCBeamformerPtr_swigregister = _beamformer.DualSphericalGSCBeamformerPtr_swigregister
DualSphericalGSCBeamformerPtr_swigregister(DualSphericalGSCBeamformerPtr)

class SphericalMOENBeamformerPtr(SphericalDSBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SphericalMOENBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SphericalMOENBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SphericalMOENBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SphericalMOENBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SphericalMOENBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SphericalMOENBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SphericalMOENBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SphericalMOENBeamformerPtr_reset(self)

    def fix_terms(self, flag):
        return _beamformer.SphericalMOENBeamformerPtr_fix_terms(self, flag)

    def set_diagonal_looading(self, fbinX, diagonalWeight):
        return _beamformer.SphericalMOENBeamformerPtr_set_diagonal_looading(self, fbinX, diagonalWeight)

    def snapshot_array(self):
        return _beamformer.SphericalMOENBeamformerPtr_snapshot_array(self)

    def beampattern(self, *args, **kwargs):
        return _beamformer.SphericalMOENBeamformerPtr_beampattern(self, *args, **kwargs)

    def calc_wng(self):
        return _beamformer.SphericalMOENBeamformerPtr_calc_wng(self)

    def dim(self):
        return _beamformer.SphericalMOENBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.SphericalMOENBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.SphericalMOENBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.SphericalMOENBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.SphericalMOENBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.SphericalMOENBeamformerPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.SphericalMOENBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.SphericalMOENBeamformerPtr_array_geometry(self, type)

    def snapshot_array2(self):
        return _beamformer.SphericalMOENBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.SphericalMOENBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.SphericalMOENBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SphericalMOENBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SphericalMOENBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SphericalMOENBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SphericalMOENBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SphericalMOENBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.SphericalMOENBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SphericalMOENBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.SphericalMOENBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SphericalMOENBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SphericalMOENBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SphericalMOENBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SphericalMOENBeamformerPtr_current(self)
SphericalMOENBeamformerPtr_swigregister = _beamformer.SphericalMOENBeamformerPtr_swigregister
SphericalMOENBeamformerPtr_swigregister(SphericalMOENBeamformerPtr)

class nonamePdfPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, nonamePdfPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, nonamePdfPtr, name)
    __repr__ = _swig_repr

    def __init__(self):
        this = _beamformer.new_nonamePdfPtr()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __deref__(self):
        return _beamformer.nonamePdfPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_nonamePdfPtr
    __del__ = lambda self: None

    def loadCoeffDescFile(self, coefDescfn):
        return _beamformer.nonamePdfPtr_loadCoeffDescFile(self, coefDescfn)
nonamePdfPtr_swigregister = _beamformer.nonamePdfPtr_swigregister
nonamePdfPtr_swigregister(nonamePdfPtr)

class gammaPdfPtr(nonamePdfPtr):
    __swig_setmethods__ = {}
    for _s in [nonamePdfPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, gammaPdfPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [nonamePdfPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, gammaPdfPtr, name)
    __repr__ = _swig_repr

    def __init__(self, numberOfVariate=2):
        this = _beamformer.new_gammaPdfPtr(numberOfVariate)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __deref__(self):
        return _beamformer.gammaPdfPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_gammaPdfPtr
    __del__ = lambda self: None

    def calcLog(self, x, N):
        return _beamformer.gammaPdfPtr_calcLog(self, x, N)

    def calcDerivative1(self, x, N):
        return _beamformer.gammaPdfPtr_calcDerivative1(self, x, N)

    def bi(self):
        return _beamformer.gammaPdfPtr_bi(self)

    def four(self):
        return _beamformer.gammaPdfPtr_four(self)

    def printCoeff(self):
        return _beamformer.gammaPdfPtr_printCoeff(self)

    def loadCoeffDescFile(self, coefDescfn):
        return _beamformer.gammaPdfPtr_loadCoeffDescFile(self, coefDescfn)
gammaPdfPtr_swigregister = _beamformer.gammaPdfPtr_swigregister
gammaPdfPtr_swigregister(gammaPdfPtr)

class ModalDecompositionPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, ModalDecompositionPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, ModalDecompositionPtr, name)
    __repr__ = _swig_repr

    def __init__(self, orderN, subbandsN, a, samplerate, useSubbandsN=0):
        this = _beamformer.new_ModalDecompositionPtr(orderN, subbandsN, a, samplerate, useSubbandsN)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _beamformer.delete_ModalDecompositionPtr
    __del__ = lambda self: None
ModalDecompositionPtr_swigregister = _beamformer.ModalDecompositionPtr_swigregister
ModalDecompositionPtr_swigregister(ModalDecompositionPtr)

class SpatialDecompositionPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, SpatialDecompositionPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, SpatialDecompositionPtr, name)
    __repr__ = _swig_repr

    def __init__(self, orderN, subbandsN, a, samplerate, useSubbandsN=0):
        this = _beamformer.new_SpatialDecompositionPtr(orderN, subbandsN, a, samplerate, useSubbandsN)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _beamformer.delete_SpatialDecompositionPtr
    __del__ = lambda self: None
SpatialDecompositionPtr_swigregister = _beamformer.SpatialDecompositionPtr_swigregister
SpatialDecompositionPtr_swigregister(SpatialDecompositionPtr)

class ModalSphericalArrayTrackerPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, ModalSphericalArrayTrackerPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, ModalSphericalArrayTrackerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_ModalSphericalArrayTrackerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.ModalSphericalArrayTrackerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.ModalSphericalArrayTrackerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_ModalSphericalArrayTrackerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.ModalSphericalArrayTrackerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.ModalSphericalArrayTrackerPtr_reset(self)

    def chanN(self):
        return _beamformer.ModalSphericalArrayTrackerPtr_chanN(self)

    def set_channel(self, chan):
        return _beamformer.ModalSphericalArrayTrackerPtr_set_channel(self, chan)

    def set_V(self, Vk, subbandX):
        return _beamformer.ModalSphericalArrayTrackerPtr_set_V(self, Vk, subbandX)

    def next_speaker(self):
        return _beamformer.ModalSphericalArrayTrackerPtr_next_speaker(self)

    def set_initial_position(self, theta, phi):
        return _beamformer.ModalSphericalArrayTrackerPtr_set_initial_position(self, theta, phi)
ModalSphericalArrayTrackerPtr_swigregister = _beamformer.ModalSphericalArrayTrackerPtr_swigregister
ModalSphericalArrayTrackerPtr_swigregister(ModalSphericalArrayTrackerPtr)

class SpatialSphericalArrayTrackerPtr(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, SpatialSphericalArrayTrackerPtr, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, SpatialSphericalArrayTrackerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SpatialSphericalArrayTrackerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SpatialSphericalArrayTrackerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SpatialSphericalArrayTrackerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SpatialSphericalArrayTrackerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SpatialSphericalArrayTrackerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SpatialSphericalArrayTrackerPtr_reset(self)

    def chanN(self):
        return _beamformer.SpatialSphericalArrayTrackerPtr_chanN(self)

    def set_channel(self, chan):
        return _beamformer.SpatialSphericalArrayTrackerPtr_set_channel(self, chan)

    def set_V(self, Vk, subbandX):
        return _beamformer.SpatialSphericalArrayTrackerPtr_set_V(self, Vk, subbandX)

    def next_speaker(self):
        return _beamformer.SpatialSphericalArrayTrackerPtr_next_speaker(self)

    def set_initial_position(self, theta, phi):
        return _beamformer.SpatialSphericalArrayTrackerPtr_set_initial_position(self, theta, phi)
SpatialSphericalArrayTrackerPtr_swigregister = _beamformer.SpatialSphericalArrayTrackerPtr_swigregister
SpatialSphericalArrayTrackerPtr_swigregister(SpatialSphericalArrayTrackerPtr)

class PlaneWaveSimulatorPtr(btk20.stream.VectorComplexFeatureStreamPtr):
    __swig_setmethods__ = {}
    for _s in [btk20.stream.VectorComplexFeatureStreamPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, PlaneWaveSimulatorPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [btk20.stream.VectorComplexFeatureStreamPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, PlaneWaveSimulatorPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_PlaneWaveSimulatorPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.PlaneWaveSimulatorPtr___iter__(self)

    def __deref__(self):
        return _beamformer.PlaneWaveSimulatorPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_PlaneWaveSimulatorPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.PlaneWaveSimulatorPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.PlaneWaveSimulatorPtr_reset(self)

    def name(self):
        return _beamformer.PlaneWaveSimulatorPtr_name(self)

    def size(self):
        return _beamformer.PlaneWaveSimulatorPtr_size(self)

    def current(self):
        return _beamformer.PlaneWaveSimulatorPtr_current(self)
PlaneWaveSimulatorPtr_swigregister = _beamformer.PlaneWaveSimulatorPtr_swigregister
PlaneWaveSimulatorPtr_swigregister(PlaneWaveSimulatorPtr)

class SphericalSpatialDSBeamformerPtr(SphericalDSBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SphericalSpatialDSBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalDSBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SphericalSpatialDSBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SphericalSpatialDSBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SphericalSpatialDSBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SphericalSpatialDSBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_reset(self)

    def calc_wng(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_calc_wng(self)

    def dim(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.SphericalSpatialDSBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.SphericalSpatialDSBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.SphericalSpatialDSBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.SphericalSpatialDSBeamformerPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.SphericalSpatialDSBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.SphericalSpatialDSBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.SphericalSpatialDSBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SphericalSpatialDSBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SphericalSpatialDSBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SphericalSpatialDSBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SphericalSpatialDSBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SphericalSpatialDSBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.SphericalSpatialDSBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SphericalSpatialDSBeamformerPtr_current(self)
SphericalSpatialDSBeamformerPtr_swigregister = _beamformer.SphericalSpatialDSBeamformerPtr_swigregister
SphericalSpatialDSBeamformerPtr_swigregister(SphericalSpatialDSBeamformerPtr)

class SphericalSpatialHWNCBeamformerPtr(SphericalHWNCBeamformerPtr):
    __swig_setmethods__ = {}
    for _s in [SphericalHWNCBeamformerPtr]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, SphericalSpatialHWNCBeamformerPtr, name, value)
    __swig_getmethods__ = {}
    for _s in [SphericalHWNCBeamformerPtr]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, SphericalSpatialHWNCBeamformerPtr, name)
    __repr__ = _swig_repr

    def __init__(self, *args, **kwargs):
        this = _beamformer.new_SphericalSpatialHWNCBeamformerPtr(*args, **kwargs)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def __iter__(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr___iter__(self)

    def __deref__(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr___deref__(self)
    __swig_destroy__ = _beamformer.delete_SphericalSpatialHWNCBeamformerPtr
    __del__ = lambda self: None

    def next(self, frame_no=-5):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_next(self, frame_no)

    def reset(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_reset(self)

    def calc_wng(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_calc_wng(self)

    def set_wng(self, ratio):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_set_wng(self, ratio)

    def dim(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_dim(self)

    def set_sigma2(self, sigma2):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_set_sigma2(self, sigma2)

    def set_weight_gain(self, wgain):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_set_weight_gain(self, wgain)

    def set_eigenmike_geometry(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_set_eigenmike_geometry(self)

    def set_array_geometry(self, a, theta_s, phi_s):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_set_array_geometry(self, a, theta_s, phi_s)

    def set_look_direction(self, theta, phi):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_set_look_direction(self, theta, phi)

    def mode_amplitudes(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_mode_amplitudes(self)

    def array_geometry(self, type):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_array_geometry(self, type)

    def beampattern(self, *args, **kwargs):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_beampattern(self, *args, **kwargs)

    def snapshot_array(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_snapshot_array(self)

    def snapshot_array2(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_snapshot_array2(self)

    def blocking_matrix(self, fbinX, unitX=0):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_blocking_matrix(self, fbinX, unitX)

    def clear_channel(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_clear_channel(self)

    def get_weights(self, fbinX):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_get_weights(self, fbinX)

    def calc_array_manifold_vectors(self, samplerate, delays):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_calc_array_manifold_vectors(self, samplerate, delays)

    def calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_calc_array_manifold_vectors_2(self, samplerate, delays_t, delays_j)

    def calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC=2):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_calc_array_manifold_vectors_n(self, samplerate, delays_t, delays_j, NC)

    def snapshot_array_f(self, fbinX):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_snapshot_array_f(self, fbinX)

    def set_channel(self, chan):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_set_channel(self, chan)

    def is_end(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_is_end(self)

    def fftLen(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_fftLen(self)

    def chanN(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_chanN(self)

    def name(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_name(self)

    def size(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_size(self)

    def current(self):
        return _beamformer.SphericalSpatialHWNCBeamformerPtr_current(self)
SphericalSpatialHWNCBeamformerPtr_swigregister = _beamformer.SphericalSpatialHWNCBeamformerPtr_swigregister
SphericalSpatialHWNCBeamformerPtr_swigregister(SphericalSpatialHWNCBeamformerPtr)

# This file is compatible with both classic and new-style classes.
# This file was automatically generated by SWIG (http://www.swig.org). # Version 3.0.12 # # Do not make changes to this file unless you know what you are doing--modify # the SWIG interface file instead. # Python < 2.2 doesn't have 'property'. import btk20.stream # This file is compatible with both classic and new-style classes.