(self,S)
return value,err
This routine applies the convergence acceleration to the list of partial sums.

        A   = sum(a_k, k = 0..infinity)
        s_n = sum(a_k, k = 0..n)

        v, e = ...update_psum([s_0, s_1,..., s_k])

        output:
          v      current estimate of the series A
          e      an error estimate which is simply the difference between the current
                 estimate and the last estimate.
This routine applies the convergence acceleration to the list of partial sums.
This routine applies the convergence acceleration to the list of partial sums .
def update_psum(self,S):
        """
        This routine applies the convergence acceleration to the list of partial sums.

        A   = sum(a_k, k = 0..infinity)
        s_n = sum(a_k, k = 0..n)

        v, e = ...update_psum([s_0, s_1,..., s_k])

        output:
          v      current estimate of the series A
          e      an error estimate which is simply the difference between the current
                 estimate and the last estimate.
        """

        if self.variant!="v":
            if self.n==0:
                self.run(S[0],S[0])
            while self.n<len(S):
                self.run(S[self.n],S[self.n]-S[self.n-1])
        else:
            if len(S)==1:
                self.last=0
                return S[0],abs(S[0])

            if self.n==0:
                self.a1=S[1]-S[0]
                self.run(S[0],S[0],self.a1)

            while self.n<len(S)-1:
                na1=S[self.n+1]-S[self.n]
                self.run(S[self.n],self.a1,na1)
                self.a1=na1

        value=self.A[0]/self.B[0]
        err=abs(value-self.last)
        self.last=value

        return value,err
def update_psum ( self , S ) : if self . variant != "v" : if self . n == 0 : self . run ( S [ 0 ] , S [ 0 ] ) while self . n < len ( S ) : self . run ( S [ self . n ] , S [ self . n ] - S [ self . n - 1 ] ) else : if len ( S ) == 1 : self . last = 0 return S [ 0 ] , abs ( S [ 0 ] ) if self . n == 0 : self . a1 = S [ 1 ] - S [ 0 ] self . run ( S [ 0 ] , S [ 0 ] , self . a1 ) while self . n < len ( S ) - 1 : na1 = S [ self . n + 1 ] - S [ self . n ] self . run ( S [ self . n ] , self . a1 , na1 ) self . a1 = na1 value = self . A [ 0 ] / self . B [ 0 ] err = abs ( value - self . last ) self . last = value return value , err