# Path: blond/utils/bmath.py
# def use_mpi():
# def mpiMode():
# def use_fftw():
# def use_precision(_precision='double'):
# def update_active_dict(new_dict):


from builtins import range, object
from scipy.constants import e
from ..utils import bmath as bm
import numpy as np
import ctypes

        >>> from setup_cpp import libblond
        >>>  
        >>> music_cpp = musClass.Music(my_beam, [R_S, 2*np.pi*frequency_R, Q], 
        >>>                               n_macroparticles, n_particles, t_rev)
        >>> music_cpp.track_cpp()

        """
        bm.music_track(self.beam.dt, self.beam.dE, self.induced_voltage,
                       self.array_parameters, self.alpha, self.omega_bar,
                       self.const, self.coeff1, self.coeff2, self.coeff3,
                       self.coeff4)

    def track_cpp_multi_turn(self):
        r"""
        Voltage in time domain (multi-turn) using MuSiC (C++ code).
        Note: this method should be called from turn number 2 onwards when
        multi-turn voltage computations are needed..

        Examples
        --------
        >>> import impedances.music as musClass
        >>> from setup_cpp import libblond
        >>>
        >>> music_cpp = musClass.Music(my_beam, [R_S, 2*np.pi*frequency_R, Q],
        >>>                               n_macroparticles, n_particles, t_rev)
        >>> music_cpp.track_cpp()
        >>> for i in range(2, n_turns):
        >>>     music_cpp.track_cpp_multi_turn()

        """

# Path: blond/utils/bmath.py
# def use_mpi():
# def mpiMode():
# def use_fftw():
# def use_precision(_precision='double'):
# def update_active_dict(new_dict):


# Path: blond/impedances/music.py
from builtins import range, object
from scipy.constants import e
from ..utils import bmath as bm
import numpy as np
import ctypes

        >>> from setup_cpp import libblond
        >>>  
        >>> music_cpp = musClass.Music(my_beam, [R_S, 2*np.pi*frequency_R, Q], 
        >>>                               n_macroparticles, n_particles, t_rev)
        >>> music_cpp.track_cpp()

        """
        bm.music_track(self.beam.dt, self.beam.dE, self.induced_voltage,
                       self.array_parameters, self.alpha, self.omega_bar,
                       self.const, self.coeff1, self.coeff2, self.coeff3,
                       self.coeff4)

    def track_cpp_multi_turn(self):
        r"""
        Voltage in time domain (multi-turn) using MuSiC (C++ code).
        Note: this method should be called from turn number 2 onwards when
        multi-turn voltage computations are needed..

        Examples
        --------
        >>> import impedances.music as musClass
        >>> from setup_cpp import libblond
        >>>
        >>> music_cpp = musClass.Music(my_beam, [R_S, 2*np.pi*frequency_R, Q],
        >>>                               n_macroparticles, n_particles, t_rev)
        >>> music_cpp.track_cpp()
        >>> for i in range(2, n_turns):
        >>>     music_cpp.track_cpp_multi_turn()

        """

        bm.music_track_multiturn(self.beam.dt, self.beam.dE, self.induced_voltage,
