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