class_docstr: Generate a set of numbers on the real axis, concentrating on
  'interesting' regions and covering all orders of magnitude.
class_docstr_tok: ["Generate","a","set","of","numbers","on","the","real","axis",",","concentrating","on","'interesting","'","regions","and","covering","all","orders","of","magnitude","."]
code: def _positive_values(self, a, b, n):
      if a < 0:
          raise ValueError("a should be positive")
  
      # Try to put half of the points into a linspace between a and
      # 10 the other half in a logspace.
      if n % 2 == 0:
          nlogpts = n // 2
          nlinpts = nlogpts
      else:
          nlogpts = n // 2
          nlinpts = nlogpts + 1
  
      if a >= 10:
          # Outside of linspace range; just return a logspace.
          pts = np.logspace(np.log10(a), np.log10(b), n)
      elif a > 0 and b < 10:
          # Outside of logspace range; just return a linspace
          pts = np.linspace(a, b, n)
      elif a > 0:
          # Linspace between a and 10 and a logspace between 10 and
          # b.
          linpts = np.linspace(a, 10, nlinpts, endpoint=False)
          logpts = np.logspace(1, np.log10(b), nlogpts)
          pts = np.hstack((linpts, logpts))
      elif a == 0 and b <= 10:
          # Linspace between 0 and b and a logspace between 0 and
          # the smallest positive point of the linspace
          linpts = np.linspace(0, b, nlinpts)
          if linpts.size > 1:
              right = np.log10(linpts[1])
          else:
              right = -30
          logpts = np.logspace(-30, right, nlogpts, endpoint=False)
          pts = np.hstack((logpts, linpts))
      else:
          # Linspace between 0 and 10, logspace between 0 and the
          # smallest positive point of the linspace, and a logspace
          # between 10 and b.
          if nlogpts % 2 == 0:
              nlogpts1 = nlogpts // 2
              nlogpts2 = nlogpts1
          else:
              nlogpts1 = nlogpts // 2
              nlogpts2 = nlogpts1 + 1
          linpts = np.linspace(0, 10, nlinpts, endpoint=False)
          if linpts.size > 1:
              right = np.log10(linpts[1])
          else:
              right = -30
          logpts1 = np.logspace(-30, right, nlogpts1, endpoint=False)
          logpts2 = np.logspace(1, np.log10(b), nlogpts2)
          pts = np.hstack((logpts1, linpts, logpts2))
  
      return np.sort(pts)
  
imports: import os
  import sys
  import time
  import numpy
  from numpy.testing import assert_
  import pytest
  from scipy.special._testutils import assert_func_equal
label_desc: Use image node_id 2 for calling the Arg obj's underlying member method code with example usage: obj._positive_values(a, b, n) and returns: np