class_docstr: 1d-solver generating pairs of approximative root and error.
  
  Needs starting points x0 and x1 close to the root.
  x1 defaults to x0 + 0.25.
  
  Pro:
  
  * converges fast
  
  Contra:
  
  * converges slowly for multiple roots
class_docstr_tok: ["1d-solver","generating","pairs","of","approximative","root","and","error",".","Needs","starting","points","x0","and","x1","close","to","the","root",".","x1","defaults","to","x0","+","0.25",".","Pro",":","*","converges","fast","Contra",":","*","converges","slowly","for","multiple","roots"]
code: def __iter__(self):
      f = self.f
      x0 = self.x0
      x1 = self.x1
      f0 = f(x0)
      while True:
          f1 = f(x1)
          l = x1 - x0
          if not l:
              break
          s = (f1 - f0) / l
          if not s:
              break
          x0, x1 = x1, x1 - f1 / s
          f0 = f1
          yield x1, abs(l)
  
imports: from __future__ import print_function
  from copy import copy
  from ..libmp.backend import xrange
label_desc: Use image node_id 2 for calling the Secant obj's underlying member method code with example usage: obj.__iter__() without return types