cppad_error_xam#

View page source

Python: Example CppAD Error Message#

def cppad_error_xam() :
   #
   import numpy
   import cppad_py
   #
   # initialize return variable
   ok = True
   # ---------------------------------------------------------------------
   # CppAD only detects and reports the error below when NDEBUG is noi defined
   if cppad_py.build_type() == 'release' :
      return ok
   # ---------------------------------------------------------------------
   n_ind = 1 # number of independent variables
   n_dep = 2 # number of dependent variables
   #
   # dimension some vectors
   x  = numpy.empty(n_ind, dtype=float)
   ay = numpy.empty(n_dep, dtype=cppad_py.a_double)
   #
   # independent variables
   x[0]  = 0.0
   ax    = cppad_py.independent(x)
   #
   # dependent variables
   ay[0] = ax[0] ** 2.0
   ay[1] = cppad_py.pow_int(ax[0], 2)
   #
   # define f(x) = y
   f = cppad_py.d_fun(ax, ay)
   #
   # Attempt to use first order before zero order
   try :
      y   = f.forward(1, x)
   except RuntimeError as error :
      message = str(error)
      index   = 0
      index   = message.find('file =', index)
      ok      = ok and 0 < index
      index   = message.find('line =', index)
      ok      = ok and 0 < index
      index   = message.find('exp =', index)
      ok      = ok and 0 < index
      index   = message.find('msg =', index)
      ok      = ok and 0 < index
   #
   return ok
#