示例#1
0
//==============================================================================
void
interval_orientation3d(const double* x0,
                       const double* x1,
                       const double* x2,
                       const double* x3,
                       double* lower,
                       double* upper)
{
    fesetround(FE_DOWNWARD);
    *lower=simple_orientation3d(x0, x1, x2, x3);
    fesetround(FE_UPWARD);
    *upper=simple_orientation3d(x0, x1, x2, x3);
#ifdef _MSC_VER
    assert( !_isnan(*lower) );
    assert( !_isnan(*upper) );
    assert( _finite(*lower) );
    assert( _finite(*upper) );
#else
    assert( !std::isnan(*lower) );
    assert( !std::isnan(*upper) );
    assert( !std::isinf(*lower) );
    assert( !std::isinf(*upper) );
#endif
    assert(*lower<=*upper);
}
示例#2
0
//==============================================================================
static void
interval_orientation3d(const double* x0,
                       const double* x1,
                       const double* x2,
                       const double* x3,
                       double* lower,
                       double* upper)
{
   fesetround(FE_DOWNWARD);
   *lower=simple_orientation3d(x0, x1, x2, x3);
   fesetround(FE_UPWARD);
   *upper=simple_orientation3d(x0, x1, x2, x3);
   assert(*lower<=*upper);
}