mirror of https://github.com/CGAL/cgal
- Initial revision.
This commit is contained in:
parent
e9553717f0
commit
72d58961c7
|
|
@ -0,0 +1,241 @@
|
|||
// ======================================================================
|
||||
//
|
||||
// Copyright (c) 1999 The CGAL Consortium
|
||||
//
|
||||
// This software and related documentation is part of an INTERNAL release
|
||||
// of the Computational Geometry Algorithms Library (CGAL). It is not
|
||||
// intended for general use.
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
// release :
|
||||
// release_date :
|
||||
//
|
||||
// file : include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_ftC3.h
|
||||
// package : Interval_arithmetic
|
||||
// author(s) : Sylvain Pion <Sylvain.Pion@sophia.inria.fr>
|
||||
//
|
||||
// coordinator : INRIA Sophia-Antipolis (<Mariette.Yvinec@sophia.inria.fr>)
|
||||
// ======================================================================
|
||||
|
||||
// This file is automatically generated by the script
|
||||
// examples/Interval_arithmetic/filtered_predicate_converter.
|
||||
|
||||
#ifndef CGAL_ARITHMETIC_FILTER_REGULAR_TRIANGULATION_FTC3_H
|
||||
#define CGAL_ARITHMETIC_FILTER_REGULAR_TRIANGULATION_FTC3_H
|
||||
|
||||
CGAL_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION
|
||||
template < class CGAL_IA_CT, class CGAL_IA_ET, class CGAL_IA_CACHE >
|
||||
#endif
|
||||
/* */
|
||||
Oriented_side
|
||||
power_testC3(
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &px,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &py,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &pz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &pwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qy,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &ry,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &sx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &sy,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &sz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &swt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &tx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &ty,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &tz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &twt)
|
||||
{
|
||||
CGAL_assertion(Interval_nt_advanced::want_exceptions);
|
||||
FPU_CW_t backup = FPU_get_and_set_cw(FPU_cw_up);
|
||||
try
|
||||
{
|
||||
Oriented_side result = power_testC3(
|
||||
px.interval(),
|
||||
py.interval(),
|
||||
pz.interval(),
|
||||
pwt.interval(),
|
||||
qx.interval(),
|
||||
qy.interval(),
|
||||
qz.interval(),
|
||||
qwt.interval(),
|
||||
rx.interval(),
|
||||
ry.interval(),
|
||||
rz.interval(),
|
||||
rwt.interval(),
|
||||
sx.interval(),
|
||||
sy.interval(),
|
||||
sz.interval(),
|
||||
swt.interval(),
|
||||
tx.interval(),
|
||||
ty.interval(),
|
||||
tz.interval(),
|
||||
twt.interval());
|
||||
FPU_set_cw(backup);
|
||||
return result;
|
||||
}
|
||||
catch (Interval_nt_advanced::unsafe_comparison)
|
||||
{
|
||||
FPU_set_cw(backup);
|
||||
return power_testC3(
|
||||
px.exact(),
|
||||
py.exact(),
|
||||
pz.exact(),
|
||||
pwt.exact(),
|
||||
qx.exact(),
|
||||
qy.exact(),
|
||||
qz.exact(),
|
||||
qwt.exact(),
|
||||
rx.exact(),
|
||||
ry.exact(),
|
||||
rz.exact(),
|
||||
rwt.exact(),
|
||||
sx.exact(),
|
||||
sy.exact(),
|
||||
sz.exact(),
|
||||
swt.exact(),
|
||||
tx.exact(),
|
||||
ty.exact(),
|
||||
tz.exact(),
|
||||
twt.exact());
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION
|
||||
template < class CGAL_IA_CT, class CGAL_IA_ET, class CGAL_IA_CACHE >
|
||||
#endif
|
||||
/* */
|
||||
Oriented_side
|
||||
power_testC3(
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &px,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &py,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &pz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &pwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qy,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &ry,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &tx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &ty,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &tz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &twt)
|
||||
{
|
||||
CGAL_assertion(Interval_nt_advanced::want_exceptions);
|
||||
FPU_CW_t backup = FPU_get_and_set_cw(FPU_cw_up);
|
||||
try
|
||||
{
|
||||
Oriented_side result = power_testC3(
|
||||
px.interval(),
|
||||
py.interval(),
|
||||
pz.interval(),
|
||||
pwt.interval(),
|
||||
qx.interval(),
|
||||
qy.interval(),
|
||||
qz.interval(),
|
||||
qwt.interval(),
|
||||
rx.interval(),
|
||||
ry.interval(),
|
||||
rz.interval(),
|
||||
rwt.interval(),
|
||||
tx.interval(),
|
||||
ty.interval(),
|
||||
tz.interval(),
|
||||
twt.interval());
|
||||
FPU_set_cw(backup);
|
||||
return result;
|
||||
}
|
||||
catch (Interval_nt_advanced::unsafe_comparison)
|
||||
{
|
||||
FPU_set_cw(backup);
|
||||
return power_testC3(
|
||||
px.exact(),
|
||||
py.exact(),
|
||||
pz.exact(),
|
||||
pwt.exact(),
|
||||
qx.exact(),
|
||||
qy.exact(),
|
||||
qz.exact(),
|
||||
qwt.exact(),
|
||||
rx.exact(),
|
||||
ry.exact(),
|
||||
rz.exact(),
|
||||
rwt.exact(),
|
||||
tx.exact(),
|
||||
ty.exact(),
|
||||
tz.exact(),
|
||||
twt.exact());
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION
|
||||
template < class CGAL_IA_CT, class CGAL_IA_ET, class CGAL_IA_CACHE >
|
||||
#endif
|
||||
/* */
|
||||
Oriented_side
|
||||
power_testC3(
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &px,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &py,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &pz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &pwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qy,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &tx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &ty,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &tz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &twt)
|
||||
{
|
||||
CGAL_assertion(Interval_nt_advanced::want_exceptions);
|
||||
FPU_CW_t backup = FPU_get_and_set_cw(FPU_cw_up);
|
||||
try
|
||||
{
|
||||
Oriented_side result = power_testC3(
|
||||
px.interval(),
|
||||
py.interval(),
|
||||
pz.interval(),
|
||||
pwt.interval(),
|
||||
qx.interval(),
|
||||
qy.interval(),
|
||||
qz.interval(),
|
||||
qwt.interval(),
|
||||
tx.interval(),
|
||||
ty.interval(),
|
||||
tz.interval(),
|
||||
twt.interval());
|
||||
FPU_set_cw(backup);
|
||||
return result;
|
||||
}
|
||||
catch (Interval_nt_advanced::unsafe_comparison)
|
||||
{
|
||||
FPU_set_cw(backup);
|
||||
return power_testC3(
|
||||
px.exact(),
|
||||
py.exact(),
|
||||
pz.exact(),
|
||||
pwt.exact(),
|
||||
qx.exact(),
|
||||
qy.exact(),
|
||||
qz.exact(),
|
||||
qwt.exact(),
|
||||
tx.exact(),
|
||||
ty.exact(),
|
||||
tz.exact(),
|
||||
twt.exact());
|
||||
}
|
||||
}
|
||||
|
||||
CGAL_END_NAMESPACE
|
||||
|
||||
#endif // CGAL_ARITHMETIC_FILTER_REGULAR_TRIANGULATION_FTC3_H
|
||||
|
|
@ -0,0 +1,277 @@
|
|||
// ======================================================================
|
||||
//
|
||||
// Copyright (c) 1999 The CGAL Consortium
|
||||
//
|
||||
// This software and related documentation is part of an INTERNAL release
|
||||
// of the Computational Geometry Algorithms Library (CGAL). It is not
|
||||
// intended for general use.
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
// release :
|
||||
// release_date :
|
||||
//
|
||||
// file : include/CGAL/Arithmetic_filter/predicates/Regular_triangulation_rtH3.h
|
||||
// package : Interval_arithmetic
|
||||
// author(s) : Sylvain Pion <Sylvain.Pion@sophia.inria.fr>
|
||||
//
|
||||
// coordinator : INRIA Sophia-Antipolis (<Mariette.Yvinec@sophia.inria.fr>)
|
||||
// ======================================================================
|
||||
|
||||
// This file is automatically generated by the script
|
||||
// examples/Interval_arithmetic/filtered_predicate_converter.
|
||||
|
||||
#ifndef CGAL_ARITHMETIC_FILTER_REGULAR_TRIANGULATION_RTH3_H
|
||||
#define CGAL_ARITHMETIC_FILTER_REGULAR_TRIANGULATION_RTH3_H
|
||||
|
||||
CGAL_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION
|
||||
template < class CGAL_IA_CT, class CGAL_IA_ET, class CGAL_IA_CACHE >
|
||||
#endif
|
||||
/* */
|
||||
Oriented_side
|
||||
power_testH3(
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &phx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &phy,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &phz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &phw,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &pwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qhx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qhy,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qhz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qhw,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rhx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rhy,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rhz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rhw,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &shx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> ­,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &shz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &shw,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &swt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &thx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &thy,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &thz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &thw,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &twt)
|
||||
{
|
||||
CGAL_assertion(Interval_nt_advanced::want_exceptions);
|
||||
FPU_CW_t backup = FPU_get_and_set_cw(FPU_cw_up);
|
||||
try
|
||||
{
|
||||
Oriented_side result = power_testH3(
|
||||
phx.interval(),
|
||||
phy.interval(),
|
||||
phz.interval(),
|
||||
phw.interval(),
|
||||
pwt.interval(),
|
||||
qhx.interval(),
|
||||
qhy.interval(),
|
||||
qhz.interval(),
|
||||
qhw.interval(),
|
||||
qwt.interval(),
|
||||
rhx.interval(),
|
||||
rhy.interval(),
|
||||
rhz.interval(),
|
||||
rhw.interval(),
|
||||
rwt.interval(),
|
||||
shx.interval(),
|
||||
shy.interval(),
|
||||
shz.interval(),
|
||||
shw.interval(),
|
||||
swt.interval(),
|
||||
thx.interval(),
|
||||
thy.interval(),
|
||||
thz.interval(),
|
||||
thw.interval(),
|
||||
twt.interval());
|
||||
FPU_set_cw(backup);
|
||||
return result;
|
||||
}
|
||||
catch (Interval_nt_advanced::unsafe_comparison)
|
||||
{
|
||||
FPU_set_cw(backup);
|
||||
return power_testH3(
|
||||
phx.exact(),
|
||||
phy.exact(),
|
||||
phz.exact(),
|
||||
phw.exact(),
|
||||
pwt.exact(),
|
||||
qhx.exact(),
|
||||
qhy.exact(),
|
||||
qhz.exact(),
|
||||
qhw.exact(),
|
||||
qwt.exact(),
|
||||
rhx.exact(),
|
||||
rhy.exact(),
|
||||
rhz.exact(),
|
||||
rhw.exact(),
|
||||
rwt.exact(),
|
||||
shx.exact(),
|
||||
shy.exact(),
|
||||
shz.exact(),
|
||||
shw.exact(),
|
||||
swt.exact(),
|
||||
thx.exact(),
|
||||
thy.exact(),
|
||||
thz.exact(),
|
||||
thw.exact(),
|
||||
twt.exact());
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION
|
||||
template < class CGAL_IA_CT, class CGAL_IA_ET, class CGAL_IA_CACHE >
|
||||
#endif
|
||||
/* */
|
||||
Oriented_side
|
||||
power_testH3(
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &phx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &phy,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &phz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &phw,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &pwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qhx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qhy,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qhz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qhw,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rhx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rhy,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rhz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rhw,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &rwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &thx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &thy,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &thz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &thw,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &twt)
|
||||
{
|
||||
CGAL_assertion(Interval_nt_advanced::want_exceptions);
|
||||
FPU_CW_t backup = FPU_get_and_set_cw(FPU_cw_up);
|
||||
try
|
||||
{
|
||||
Oriented_side result = power_testH3(
|
||||
phx.interval(),
|
||||
phy.interval(),
|
||||
phz.interval(),
|
||||
phw.interval(),
|
||||
pwt.interval(),
|
||||
qhx.interval(),
|
||||
qhy.interval(),
|
||||
qhz.interval(),
|
||||
qhw.interval(),
|
||||
qwt.interval(),
|
||||
rhx.interval(),
|
||||
rhy.interval(),
|
||||
rhz.interval(),
|
||||
rhw.interval(),
|
||||
rwt.interval(),
|
||||
thx.interval(),
|
||||
thy.interval(),
|
||||
thz.interval(),
|
||||
thw.interval(),
|
||||
twt.interval());
|
||||
FPU_set_cw(backup);
|
||||
return result;
|
||||
}
|
||||
catch (Interval_nt_advanced::unsafe_comparison)
|
||||
{
|
||||
FPU_set_cw(backup);
|
||||
return power_testH3(
|
||||
phx.exact(),
|
||||
phy.exact(),
|
||||
phz.exact(),
|
||||
phw.exact(),
|
||||
pwt.exact(),
|
||||
qhx.exact(),
|
||||
qhy.exact(),
|
||||
qhz.exact(),
|
||||
qhw.exact(),
|
||||
qwt.exact(),
|
||||
rhx.exact(),
|
||||
rhy.exact(),
|
||||
rhz.exact(),
|
||||
rhw.exact(),
|
||||
rwt.exact(),
|
||||
thx.exact(),
|
||||
thy.exact(),
|
||||
thz.exact(),
|
||||
thw.exact(),
|
||||
twt.exact());
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef CGAL_CFG_NO_EXPLICIT_TEMPLATE_FUNCTION_ARGUMENT_SPECIFICATION
|
||||
template < class CGAL_IA_CT, class CGAL_IA_ET, class CGAL_IA_CACHE >
|
||||
#endif
|
||||
/* */
|
||||
Oriented_side
|
||||
power_testH3(
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &phx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &phy,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &phz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &phw,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &pwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qhx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qhy,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qhz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qhw,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &qwt,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &thx,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &thy,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &thz,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &thw,
|
||||
const Filtered_exact <CGAL_IA_CT, CGAL_IA_ET, CGAL_IA_CACHE> &twt)
|
||||
{
|
||||
CGAL_assertion(Interval_nt_advanced::want_exceptions);
|
||||
FPU_CW_t backup = FPU_get_and_set_cw(FPU_cw_up);
|
||||
try
|
||||
{
|
||||
Oriented_side result = power_testH3(
|
||||
phx.interval(),
|
||||
phy.interval(),
|
||||
phz.interval(),
|
||||
phw.interval(),
|
||||
pwt.interval(),
|
||||
qhx.interval(),
|
||||
qhy.interval(),
|
||||
qhz.interval(),
|
||||
qhw.interval(),
|
||||
qwt.interval(),
|
||||
thx.interval(),
|
||||
thy.interval(),
|
||||
thz.interval(),
|
||||
thw.interval(),
|
||||
twt.interval());
|
||||
FPU_set_cw(backup);
|
||||
return result;
|
||||
}
|
||||
catch (Interval_nt_advanced::unsafe_comparison)
|
||||
{
|
||||
FPU_set_cw(backup);
|
||||
return power_testH3(
|
||||
phx.exact(),
|
||||
phy.exact(),
|
||||
phz.exact(),
|
||||
phw.exact(),
|
||||
pwt.exact(),
|
||||
qhx.exact(),
|
||||
qhy.exact(),
|
||||
qhz.exact(),
|
||||
qhw.exact(),
|
||||
qwt.exact(),
|
||||
thx.exact(),
|
||||
thy.exact(),
|
||||
thz.exact(),
|
||||
thw.exact(),
|
||||
twt.exact());
|
||||
}
|
||||
}
|
||||
|
||||
CGAL_END_NAMESPACE
|
||||
|
||||
#endif // CGAL_ARITHMETIC_FILTER_REGULAR_TRIANGULATION_RTH3_H
|
||||
Loading…
Reference in New Issue