<commit_before>module TimeIntegrator
    def ts_euler_explicit(y_tn, dt)
        y_tn+dt*func(y_tn)
    end

    def ts_RK2(y_tn,dt)
        y_dem=y_tn+0.5*dt*func(y_tn)
        y_tn+dt*func(y_dem)
    end

    def ts_RK4(y_tn, dt)
        k1=func(y_tn)
        k2=func(y_tn+0.5*dt*k1)
        k3=func(y_tn+0.5*dt*k2)
        k4=func(y_tn+dt*k3)

        y_tn+dt/6.0 * (k1+2.0*k2+2.0*k3+k4)
    end<commit_msg>Intégration temporelle<commit_after>#encoding: utf-8
# Module d'intégration temporel
module TimeIntegrator
    # Intégration par Euler explicite
    #
    # @param [NArray] y_tn Vecteur au temps précédent
    # @param [FixNum] dt Pas de temps
    # @return [NArray] vecteur au temps (n+1)dt
    def ts_euler_explicit(y_tn, dt)
        y_tn+dt*func(y_tn)
    end

    # Intégration par Runge-Kutta d'ordre 2
    #
    # @param [NArray] y_tn Vecteur au temps précédent
    # @param [FixNum] dt Pas de temps
    # @return [NArray] vecteur au temps (n+1)dt
    def ts_RK2(y_tn,dt)
        y_dem=y_tn+0.5*dt*func(y_tn)
        y_tn+dt*func(y_dem)
    end

    # Intégration par Runge-Kutta d'ordre 4
    #
    # @param [NArray] y_tn Vecteur au temps précédent
    # @param [FixNum] dt Pas de temps
    # @return [NArray] vecteur au temps (n+1)dt
    def ts_RK4(y_tn, dt)
        k1=func(y_tn)
        k2=func(y_tn+0.5*dt*k1)
        k3=func(y_tn+0.5*dt*k2)
        k4=func(y_tn+dt*k3)

        y_tn+dt/6.0 * (k1+2.0*k2+2.0*k3+k4)
    end
{'fraction_non_alphanumeric': 0.1276005547850208, 'fraction_numerical': 0.038834951456310676, 'mean_word_length': 2.6347607052896724, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5153691', 'n_tokens_mistral': 689, 'n_tokens_neox': 681, 'n_words': 120}