det_33.hpp

View page source

Source: det_33

# ifndef CPPAD_DET_33_HPP
# define CPPAD_DET_33_HPP
# include <cppad/utility/near_equal.hpp>
namespace CppAD {
template <class Vector>
   bool det_33(const Vector &x, const Vector &d)
   {  bool ok = true;
      double eps99 = 99.0 * std::numeric_limits<double>::epsilon();

      // use expansion by minors to compute the determinant by hand
      double check = 0.;
      check += x[0] * ( x[4] * x[8] - x[5] * x[7] );
      check -= x[1] * ( x[3] * x[8] - x[5] * x[6] );
      check += x[2] * ( x[3] * x[7] - x[4] * x[6] );

      ok &= CppAD::NearEqual(check, d[0], eps99, eps99);

      return ok;
   }
}

# endif