![]() |
Prev | Next | fun_dynamic_xam.py | Headings |
import numpy import cppad_py def fun_dynamic_xam() : ok = True nx = 2 nd = 2 # # value of independent variables during recording x = numpy.empty(nx, dtype=float) x[0] = 1.0 x[1] = 2.0 # # value of independent dynamic parameters during recording dynamic = numpy.empty(nd, dtype=float) dynamic[0] = 3.0 dynamic[1] = 4.0 # # start recording (ax, adynamic) = cppad_py.independent(x, dynamic) # # create another dynamic paramerer adyn = adynamic[0] + adynamic[1] # # create another variable avar = ax[0] + ax[1] + adyn # # create f(x) = x[0] + x[1] + dynamic[0] + dynamic[1] ay = numpy.empty(1, dtype=cppad_py.a_double) ay[0] = avar f = cppad_py.d_fun(ax, ay) # # check some properties of f ok = ok and f.size_domain() == nx ok = ok and f.size_order() == 0 # # zero order forward mode using same values as during the recording y = cppad_py.vec_double(1) y = f.forward(0, x) ok = ok and y[0] == (x[0] + x[1] + dynamic[0] + dynamic[1]) # # zero order forward mode using different value for dynamic parameters dynamic[0] = dynamic[0] + 1.0 dynamic[1] = dynamic[1] + 1.0 f.new_dynamic(dynamic) y = f.forward(0, x) ok = ok and y[0] == (x[0] + x[1] + dynamic[0] + dynamic[1]) # return ok