code: def adapt(self, d, x):
          
          y = np.dot(self.w, x)
          e = d - y
          nu = self.mu / (self.eps + np.dot(x, x))
          self.w += nu * x * e**3
docs: Adapt weights according one desired value and its input.
  
          **Args:**
  
          * `d` : desired value (float)
  
          * `x` : input array (1-dimensional array)