def __init__(self, fun, each, grad_rms, epsilon=<NUM_LIT>, scale_limit=<NUM_LIT:0.0>):
self.epsilon = epsilon<EOL>self.scale_limit = scale_limit<EOL>Preconditioner.__init__(self, fun, each, grad_rms)<EOL>self.scales = None<EOL>
Arguments:
 | ``fun``  --  the function whose arguments must be transformed
 | ``each``  --  update the linear transformation after each 'each'
                 minimizer steps without updates
 | ``grad_rms``  --  only update when the rms value of the gradient
                     (in the original coordinates) is below this
                     threshold

Optional argument:
 | ``epsilon``  --  a small scalar used for the finite differences
                    (taken in previous preconditioned coordinates)
                    [default=1e-3]
 | ``scale_limit``  --  scales smaller than scale_limit times the
                        largest scale are fixed to scale_limit times
                        the largest scale