code: def brownian_bridge(ti, tf, bi, bf, n):
      """
      simulation d'un pont brownien sur [ti,tf],
      avec les valeurs extremes bi et bf
      et n points par unite de temps
      sortie :
      - T   : positions temporelles des echantillons
      - B   : valeurs des echantillons
      """
  
      n = int(n * (tf - ti))  # nombre de points
      T = linspace(ti, tf, n)  # points d'echantillonnage
      pas = (tf - ti) / (n - 1.0)  # pas d'echantillonnage
      B = zeros(n)  # initialisation du brownien
      B[0] = bi  # valeur initiale
      B[n - 1] = bf  # valeur finale
      t1 = ti
      for k in range(1, n - 1):  # construction du pont en ti+k*pas
          m = moy(
              t1, tf, B[k - 1], bf, t1 + pas
          )  # sur les intervalle [ti+(k-1)*pas,tf]
          v = var(
              t1, tf, B[k - 1], bf, t1 + pas
          )  # avec les valeurs limites B[k-1],et bf
          B[k] = m + sqrt(v) * norm(0, 1)
          t1 += pas
      return T, B
  
file_path: pythran/pythran/tests/cases/brownian.py
imports: import random
  from math import sqrt
label_desc: Use image node_id 7 for calling a global function with example usage: brownian_bridge(ti, tf, bi, bf, n) and returns: T,  B