Prev Next vector_set_get_xam.cpp Headings

@(@\newcommand{\B}[1]{ {\bf #1} } \newcommand{\R}[1]{ {\rm #1} }@)@
C++: Setting and Getting Vector Elements: Example and Test
# include <cstdio>
# include <string>
# include <cppad/swig/cppad_swig.hpp>

bool vector_set_get_xam(void) {
     using cppad_swig::a_double;
     using cppad_swig::vec_bool;
     using cppad_swig::vec_int;
     using cppad_swig::vec_double;
     using cppad_swig::vec_a_double;
     using cppad_swig::a_fun;
     using cppad_swig::sparse_rc;
     using cppad_swig::sparse_rcv;
     using cppad_swig::sparse_jac_work;
     using cppad_swig::sparse_hes_work;
     using std::string;
     //
     // initialize return variable
     bool ok = true;
     //------------------------------------------------------------------------
     int n = 4;
     vec_bool bv = cppad_swig::vec_bool(n);
     vec_int iv = cppad_swig::vec_int(n);
     vec_double dv = cppad_swig::vec_double(n);
     vec_a_double av = cppad_swig::vec_a_double(n);
     //
     // setting elements
     for(int i = 0; i < n ; i++) {
          bv[i] = i > n / 2;
          iv[i] = 2 * i;
          dv[i] = 3.0 * i;
          av[i] = cppad_swig::a_double(4.0 * i);
     }
     //
     for(int i = 0; i < n ; i++) {
          bool be = bv[i];
          ok = ok && be == (i > n / 2) ;
          //
          int ie = iv[i];
          ok = ok && ie == 2 * i ;
          //
          double de = dv[i];
          ok = ok && de == 3.0 * i ;
          //
          a_double ae = av[i];
          ok = ok && ae.value() == 4.0 * i ;
     }
     //
     return( ok );
}

Input File: build/lib/example/cplusplus/vector_set_get_xam.cpp