Prev Next det_grad_33.hpp Headings

Source: det_grad_33
# ifndef CPPAD_DET_GRAD_33_INCLUDED
# define CPPAD_DET_GRAD_33_INCLUDED
# include <cppad/near_equal.hpp>
namespace CppAD {
template <class Vector>
     bool det_grad_33(const Vector &x, const Vector &g)
     {    bool ok = true;
     
          // use expansion by minors to compute the derivative by hand
          double check[9];
          check[0] = + ( x[4] * x[8] - x[5] * x[7] );
          check[1] = - ( x[3] * x[8] - x[5] * x[6] );
          check[2] = + ( x[3] * x[7] - x[4] * x[6] );
          //
          check[3] = - ( x[1] * x[8] - x[2] * x[7] );
          check[4] = + ( x[0] * x[8] - x[2] * x[6] );
          check[5] = - ( x[0] * x[7] - x[1] * x[6] );
          //
          check[6] = + ( x[1] * x[5] - x[2] * x[4] );
          check[7] = - ( x[0] * x[5] - x[2] * x[3] );
          check[8] = + ( x[0] * x[4] - x[1] * x[3] ); 
          //
          size_t i;
          for(i = 0; i < 3 * 3; i++)
               ok &= CppAD::NearEqual(check[i], g[i], 1e-10, 1e-10);
          
          return ok;
     }
}
# endif

Input File: omh/det_grad_33_hpp.omh