erf(0.5 * math.sqrt(2) * (e - m_xi) / std_xi)) * m_la

    #===========================================================================
    # Lab
    #===========================================================================
    slab = SPIRRIDLAB(s = s, save_output = True, show_output = True,
                      exact_arr = mu_q_ex(e_arr, m_xi, std_xi, m_la))

    #===========================================================================
    # Compare efficiency of sampling types 
    #===========================================================================
    powers = np.linspace(1, math.log(1000, 10), 80)
    n_int_range = np.array(np.power(10, powers), dtype = int)

#   slab.sampling_efficiency(n_int_range = n_int_range)

    #===========================================================================
    # Compare the structure of sampling
    #===========================================================================

#    slab.sampling_structure(ylim = 18.0, xlim = 1.2,)

    #===========================================================================
    # Compare the code efficiency
    #==============================8=============================================

    s.set(e_arr = np.linspace(0, 2.0, 40), n_int = 400)
    #slab.codegen_language_efficiency(extra_compiler_args = False)
    slab.codegen_language_efficiency(extra_compiler_args = True)