![]() |
Prev | Next | a_fun_property_xam.pm | Headings |
package a_fun_property_xam; sub a_fun_property_xam() { # check for standard perl programming conventions use strict; use warnings; # # load the Cppad Swig library use pm_cppad; # # initilaize return variable my $ok = 1; # --------------------------------------------------------------------- my $n_ind = 1; # number of independent variables my $n_dep = 2; # number of dependent variables my $n_var = 1; # phantom variable at address 0 my $n_op = 1; # special operator at beginning # # dimension some vectors my $x = new pm_cppad::vec_double($n_ind); my $ay = new pm_cppad::vec_a_double($n_dep); # # independent variables $x->set(0, 1.0); my $ax = pm_cppad::independent($x); $n_var = $n_var + $n_ind; # one for each indpendent $n_op = $n_op + $n_ind; # # first dependent variable $ay->set(0, $ax->get(0) + $ax->get(0)); $n_var = $n_var + 1; # one variable and operator $n_op = $n_op + 1; # # second dependent variable my $ax0 = $ax->get(0); $ay->set(1, $ax0->sin()); $n_var = $n_var + 2; # two varialbes, one operator $n_op = $n_op + 1; # # define f(x) = y my $af = new pm_cppad::a_fun($ax, $ay); $n_op = $n_op + 1; # speical operator at end # # check af properties $ok = $ok && $af->size_ind() == $n_ind; $ok = $ok && $af->size_dep() == $n_dep; $ok = $ok && $af->size_var() == $n_var; $ok = $ok && $af->size_op() == $n_op; # return( $ok ); }