docs: def det(L):
      """
      Determinant
          Compute the determinant given a lower triangular matrix
      Inputs: 
          L :
              lower triangular matrix
      Outputs: 
          det_L : 
              determinant of L
      """
      size_L = L.shape
      if np.size(L) == 1:
          return np.array(L)
      else:    
          try: 
              assert np.all(np.tril(L)==L)
          except AssertionError:
              print 'Error: Input is not a lower triangular matrix.'
              return 0
          try:
              assert size_L[0] == size_L[1]
          except AssertionError:
              print 'Error: Not a square matrix.'
              return 0
          det_L = 1.
          for i in xrange(size_L[1]):
              det_L = det_L*L[i,i]
          return det_L