# HG changeset patch
# Parent 31601e58f4b93a54522883faf6b55403b4d3f334
Remove some code that has been commented out since several versions of the spkg

diff --git a/src/pGroupCohomology/cohomology.pyx b/src/pGroupCohomology/cohomology.pyx
--- a/src/pGroupCohomology/cohomology.pyx
+++ b/src/pGroupCohomology/cohomology.pyx
@@ -1810,158 +1810,6 @@
             self._inst._decorator_cache[key][0] = a
             return a
 
-class temporary_result_nonzero(temporary_result):
-    """
-    1. override stored value, if the ring has changed
-    2. the wrapped method must accept an argument "current_deg" that is the last argument without default value.
-    3. if the result is not None, then it is cached.
-       otherwise, a re-computation in the new current degree
-       is used.
-
-    SEE ALSO:
-
-    :class:`temporary_result`
-
-    EXAMPLES::
-
-        sage: from pGroupCohomology.cohomology import temporary_result_nonzero
-        sage: class Foo:
-        ...    def __init__(self):
-        ...        self._decorator_cache = {}
-        ...        self.knownDeg = 3
-        ...    @temporary_result_nonzero
-        ...    def test(self, n, current_deg, offset=0):
-        ...        print "computation in degree",current_deg
-        ...        if current_deg>n:
-        ...            return n*n+offset
-        ...        return None
-        ...    def last_interesting_degree(self):
-        ...        return 0
-        sage: f = Foo()
-        sage: f.test(5)
-        computation in degree 1
-        computation in degree 2
-        computation in degree 3
-        sage: f.knownDeg = 7
-        sage: a = f.test(5)
-        computation in degree 5
-        computation in degree 6
-        sage: a
-        25
-        sage: a is f.test(5)
-        True
-        sage: f.test(5, offset=2)
-        computation in degree 1
-        computation in degree 2
-        computation in degree 3
-        computation in degree 4
-        computation in degree 5
-        computation in degree 6
-        27
-
-    Since the argument ``current_deg`` is only of internal use (it is not
-    possible to provide it with a value), it is suppressed when requesting
-    the method arguments::
-
-        sage: from sage.misc.sageinspect import sage_getargspec
-        sage: sage_getargspec(f.test)
-        ArgSpec(args=['self', 'n', 'offset'], varargs=None, keywords=None, defaults=(0,))
-
-    """
-    def __init__(self, f):
-        """
-        EXAMPLES::
-
-            sage: from pGroupCohomology.cohomology import temporary_result_nonzero
-            sage: class Foo:
-            ...    def __init__(self):
-            ...        self._decorator_cache = {}
-            ...        self.knownDeg = 3
-            ...    @temporary_result_nonzero
-            ...    def test(self, n, current_deg, offset=0):
-            ...        print "computation in degree",current_deg
-            ...        if current_deg>n:
-            ...            return n*n+offset
-            ...        return None
-            ...    def last_interesting_degree(self):
-            ...        return 0
-            sage: f = Foo()
-            sage: type(f.test)
-            <class 'pGroupCohomology.cohomology.temporary_result_nonzero'>
-
-        """
-        temporary_result.__init__(self,f)
-        T = self._sage_argspec_()
-    def __call__(self, *args, **kwds):
-        if self._inst is None:
-            raise ValueError, '%s instance can not be called unboundedly'%repr(self.__class__)
-        try:
-            val, old_deg = self.get_cache(*args,**kwds)
-            if isinstance(val,KeyboardInterrupt):
-                raise val
-            if val is not None:
-                return val
-        except KeyError:
-            val = None
-            old_deg = 0
-        if 'current_deg' in kwds:
-            curr_deg = kwds['current_deg']
-        else:
-            curr_deg = old_deg+1
-        while curr_deg<=self._inst.knownDeg:
-            print_protocol('Compute '+self._name+' in degree %d'%curr_deg, self._inst)
-            try:
-                val = self._f(self._inst,*args,current_deg=curr_deg, **kwds)
-            except KeyboardInterrupt,msg:
-                if msg.args:
-                    val = KeyboardInterrupt(msg.args[0]+'\n%s interrupted. Force re-computation at %s with ``forced=True``'%(self._name,repr(self._inst)))
-                else:
-                    val = KeyboardInterrupt('%s interrupted. Force re-computation at %s with ``forced=True``'%(self._name,repr(self._inst)))
-            if val is not None:
-                break
-            curr_deg += 1
-        self.set_cache((val, curr_deg), *args,**kwds)
-        if isinstance(val,KeyboardInterrupt):
-             raise val
-        return val
-
-    def _sage_argspec_(self):
-        """
-        EXAMPLES::
-
-            sage: from pGroupCohomology.cohomology import temporary_result_nonzero
-            sage: class Foo:
-            ...    def __init__(self):
-            ...        self._decorator_cache = {}
-            ...        self.knownDeg = 3
-            ...    @temporary_result_nonzero
-            ...    def test(self, n, current_deg, offset=0):
-            ...        print "computation in degree",current_deg
-            ...        if current_deg>n:
-            ...            return n*n+offset
-            ...        return None
-            ...    def last_interesting_degree(self):
-            ...        return 0
-            sage: f = Foo()
- 
-        Since the argument ``current_deg`` is only of internal use (it is not
-        possible to provide it with a value), it is suppressed when requesting
-        the method arguments::
-
-            sage: from sage.misc.sageinspect import sage_getargspec
-            sage: sage_getargspec(f.test)
-            ArgSpec(args=['self', 'n', 'offset'], varargs=None, keywords=None, defaults=(0,))
-
-        """
-        T = sage_getargspec(self._f)
-        l = len(T.args)
-        n = T.args.index('current_deg')
-        T.args.pop(n)
-        if T.defaults is not None and len(T.defaults)>=l-n:
-            raise ValueError, "The argument 'current_deg' must not have a default value"
-        return T
-
-
 #########################################
 ##
 ## The main course...
@@ -8908,131 +8756,6 @@
                     pass
             singular.eval('degBound='+dgb)
 
-
-#    def improve_parameters(self, P):
-#        """
-#        Try to reduce the degrees of algebraically independent parameters.
-#
-#        INPUT:
-#
-#        A list of strings defining algebraically independent parameters for this cohomology ring.
-#
-#        OUTPUT:
-#
-#        A list of strings defining algebraically independent parameters for this cohomology ring,
-#        typically in smaller degrees than the input.
-#
-#        NOTE:
-#
-#        There is no guarantee that the output is filter-regular, even if the input is.
-#
-#        """
-#        P = list(P) # do not change the given list in-place!
-#        if None in P:
-#            P.pop(P.index(None))
-#            P.append(self.find_small_last_parameter(P,self.knownDeg))
-#        if None in P:
-#            raise ValueError, "The input does not provide parameters"
-#        another_round = True
-#        while another_round:
-#            another_round = False
-#            for i in xrange(len(P)):
-#                P.append(P.pop(0))
-#                p = self.find_small_last_parameter(P,self.knownDeg)
-#                if p!=P[-1]:
-#                    P[-1] = p
-#                    another_round = True
-#        return P
-
-#    @temporary_result
-#    def _quotient_by_some_elements(self, P):
-#        try:
-#            self.set_ring()
-#            singular = self.GenS.parent()
-#            dgb=singular.eval("degBound")
-#            singular.eval("degBound = 0")
-#            if not P:
-#                self.make_groebner()
-#                singular.eval('attrib(%sI,"isSB",1)'%(self.prefix))
-#                return I0
-#            print_protocol('Killing element %s'%P[-1])
-#            return singular('std(%s,%s)'%(self._quotient_by_some_elements(P[:-1]),P[-1]))
-#        finally:
-#            singular.eval('degBound=%s'%dgb)
-
-#    @cached_method
-#    def bla(self):
-#        pass
-#
-#    @temporary_result
-#    def detect_best_parameters_over_field_extension(self, P, filter_regular=True):
-#        # Given filter regular parameters P, try to find an initial sequence
-#        # of P such that it can be complemented by elements in degree
-#        # current_deg to filter regular paramters over a field extension that
-#        # yield a better degree sum.  Return None if no improvement of the
-#        # given parameters is possible
-#        old_result = self._best_existing_parameters
-#        if old_result is None:
-#            self.setprop('_best_existing_parameters',{})
-#            old_result = self._best_existing_parameters
-#        try:
-#            P2, deg = old_result[tuple(P)]
-#        except KeyError:
-#            P2 = None
-#            deg = 0
-#        N = self.dimension()
-#        if filter_regular and len(P)!=N:
-#            raise ValueError, "There are exactly %d filter-regular parameters, not %d"%(N,len(P))
-#
-#        cdef int i
-#        try:
-#            self.set_ring()
-#            singular = self.GenS.parent()
-#            dgb=singular.eval("degBound")
-#            singular.eval("degBound = 0")
-#            if self._good_singular_version:
-#                if (self.Resl.coef()==2 and I0.dim()!=N) or (self.Resl.coef()>2 and I0.GKdim()!=N):
-#                    print_protocol("Dimension %d != %d - The ring structure of %s is incomplete"%(I0.dim() if self.Resl.coef()==2 else I0.GKdim(),N,repr(self)))
-#                    return None
-#            degs = [int(singular.eval('deg(%s)'%p)) for p in P]
-#            for i from 
-#            I0 = self._quotient_by_some_elements(P)
-#            
-#        
-#        cdef int i,d
-#        cdef int max_d, min_d
-#        min_d = self._fr_hsop_detection_failed.get(tuple(P),0)+1
-#        best_sum = degsum
-#        for i from 0<=i<N:
-#            tmpdegsum = sum(dv[:i])
-#            max_d = min(current_deg, dv[i])-1
-#            if i:
-#                singular.eval('%s = std(%s,%s)'%(I0.name(),I0.name(),dv[i-1]))
-#            for d from min_d<=d<=max_d:
-#                 if singular.eval('vdim(groebner(%s+ideal(%s)))'%(I0.name(), ','.join(self.standard_monomials(d))))!='-1':
-#                     if tmpdegsum+(N-i)*d<best_sum:
-#                         return P[:i]+[d]*(N-i)
-#
-#        if singular.eval('vdim(%sI)'%self.prefix)=='-1':
-#            return None
-#
-#
-#            if N:
-#                for PL in FRS[:-N]:
-#                    singular.eval('%s = std(%s,%s)'%(I0.name(),I0.name(),PL))
-#            else:
-#                for PL in FRS:
-#                    singular.eval('%s = std(%s,%s)'%(I0.name(),I0.name(),PL))
-#        else:
-#            if N:
-#                I0 = (singular('%sI'%(self.prefix))+singular.ideal(['0']+FRS[:-N])).groebner()
-#            else:
-#                I0 = (singular('%sI'%(self.prefix))+singular.ideal(['0']+FRS)).groebner()
-#                self.setprop('potential_bound',-1)
-#                return self.knownDeg + 1
-#        finally:
-#            singular.eval('degBound = %s'%dgb)
-
     @permanent_result
     def parameters(self,**kwds):
         """
