original_docstring: 
      Input:
          - A: feature Mat
          - b: diagnoses Vec
          - w: hypothesis Vec
          - sigma: step size
      Output:
          - The vector w' resulting from 1 iteration of gradient descent
            starting from w and moving sigma.
      Example:
          >>> A = Mat(({'a','b','c'},{'A','B'}), {('a','A'):-4, ('a','B'):3, ('b','A'):1, ('b','B'):8, ('c','A'):5, ('c','B'):2})
          >>> b = Vec({'a','b','c'}, {'a':1, 'b':-1,'c':1})
          >>> w = Vec({'A','B'}, {'A':1, 'B':-2})
          >>> sigma = .1
          >>> gradient_descent_step(A, b, w, sigma) == Vec({'B', 'A'},{'B': 27.0, 'A': -5.0})
          True
      
docstring: feature Mat
  b: diagnoses Vec
  w: hypothesis Vec
  sigma: step size
  Output:
  The vector w' resulting from 1 iteration of gradient descent
  starting from w and moving sigma.
docstring_tokens: feature Mat b : diagnoses Vec w : hypothesis Vec sigma : step size Output : The vector w ' resulting from 1 iteration of gradient descent starting from w and moving sigma .
code: def gradient_descent_step(A, b, w, sigma):
      '''
      Input:
          - A: feature Mat
          - b: diagnoses Vec
          - w: hypothesis Vec
          - sigma: step size
      Output:
          - The vector w' resulting from 1 iteration of gradient descent
            starting from w and moving sigma.
      Example:
          >>> A = Mat(({'a','b','c'},{'A','B'}), {('a','A'):-4, ('a','B'):3, ('b','A'):1, ('b','B'):8, ('c','A'):5, ('c','B'):2})
          >>> b = Vec({'a','b','c'}, {'a':1, 'b':-1,'c':1})
          >>> w = Vec({'A','B'}, {'A':1, 'B':-2})
          >>> sigma = .1
          >>> gradient_descent_step(A, b, w, sigma) == Vec({'B', 'A'},{'B': 27.0, 'A': -5.0})
          True
      '''
      return w - sigma * find_grad(A, b, w)
code_tokens: def gradient_descent_step ( A , b , w , sigma ) : return w - sigma * find_grad ( A , b , w )
short_docstring: Input:
   A: feature Mat
   b: diagnoses Vec
   w: hypothesis Vec
   sigma: step size
  Output:
   The vector w' resulting from 1 iteration of gradient descent
  starting from w and moving sigma.
short_docstring_tokens: Input : A : feature Mat b : diagnoses Vec w : hypothesis Vec sigma : step size Output : The vector w ' resulting from 1 iteration of gradient descent starting from w and moving sigma .
comment: '''
      Input:
          - A: feature Mat
          - b: diagnoses Vec
          - w: hypothesis Vec
          - sigma: step size
      Output:
          - The vector w' resulting from 1 iteration of gradient descent
            starting from w and moving sigma.
      Example:
          >>> A = Mat(({'a','b','c'},{'A','B'}), {('a','A'):-4, ('a','B'):3, ('b','A'):1, ('b','B'):8, ('c','A'):5, ('c','B'):2})
          >>> b = Vec({'a','b','c'}, {'a':1, 'b':-1,'c':1})
          >>> w = Vec({'A','B'}, {'A':1, 'B':-2})
          >>> sigma = .1
          >>> gradient_descent_step(A, b, w, sigma) == Vec({'B', 'A'},{'B': 27.0, 'A': -5.0})
          True
      '''