Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Re: Test_runtime_rounding_modes throws exception

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Re: Test_runtime_rounding_modes throws exception


Chronological Thread 
  • From: Philipp Moeller <>
  • To:
  • Subject: Re: [cgal-discuss] Re: Test_runtime_rounding_modes throws exception
  • Date: Sat, 07 Apr 2012 12:41:08 +0200
  • Organization: GeometryFactory

Hamid G
<>
writes:

> Thanks for your reply Sebastien
>
>
> Sebastien Loriot (GeometryFactory) wrote
>>
>> Since it seems no CGAL code is involved at the moment of the crash, it
>> might be another issue not related to CGAL.
>>
>
> I'm just curious then what
>
> CGAL::Interval_nt<false>::Test_runtime_rounding_modes::Test_runtime_rounding_modes
>
> is doing.

It tries to figure out if excess precision in floating point operations
is used. This is usually disabled in gcc with the switch -frounding-math

We really need a minimal, compiling example that reproduces your
problem including the output of gcc --version and the the CMakeLists.txt
to reproduce what is happening.

Also: please don't snip previous messages if they contain important
information :)

>
> I followed your advice and recompile it in debug mode, this time it prompted
> me for input files and seem to actually perform the boolean operation, but
> it crashed again (@array.h).
> Here is the output of 'where' in gdb:
>
> CGAL::make_array<CGAL::Point_3&lt;CGAL::Simple_cartesian&lt;CGAL::Interval_nt&lt;false>
>> > > (b1=@0x7fff5fbfc570,
>> > >
>> > > b2=@0x7fff5fbfc520)
>> > > at array.h:104
> 104 cpp0x::array<T, 2> a = { { b1, b2 } };
> (gdb) where
> #0
> CGAL::make_array<CGAL::Point_3&lt;CGAL::Simple_cartesian&lt;CGAL::Interval_nt&lt;false>
>> > > (b1=@0x7fff5fbfc570,
>> > >
>> > > b2=@0x7fff5fbfc520)
>> > > at array.h:104
> #1 0x0000000100042697 in
> CGAL::RayC3<CGAL::Simple_cartesian&lt;CGAL::Interval_nt&lt;false> > >::RayC3
> (this=0x7fff5fbfc658,
> sp=@0x7fff5fbfc570,
>
> secondp=@0x7fff5fbfc520)
> at
> Ray_3.h:53
> #2 0x00000001000426c8 in
> CGAL::CommonKernelFunctors::Construct_ray_3<CGAL::Simple_cartesian&lt;CGAL::Interval_nt&lt;false>
>> >::operator() (this=0x7fff5fbfc4d0,
>> >p=@0x7fff5fbfc570,
>> >
>> >q=@0x7fff5fbfc520)
> at function_objects.h:1564
> #3 0x000000010004271b in
> CGAL::Ray_3<CGAL::Simple_cartesian&lt;CGAL::Interval_nt&lt;false> > >::Ray_3
> (this=0x7fff5fbfc658,
> sp=@0x7fff5fbfc570,
>
> secondp=@0x7fff5fbfc520)
> at
> Ray_3.h:73
> #4 0x000000010010295e in
> CGAL::Cartesian_converter<CGAL::Simple_cartesian&lt;CGAL::Gmpq>,
> CGAL::Simple_cartesian<CGAL::Interval_nt&lt;false> >,
> CGAL::NT_converter<CGAL::Gmpq, CGAL::Interval_nt&lt;false> > >::operator()
> (this=0x7fff5fbfc718,
> a=@0x10448a1b0)
> at Cartesian_converter.h:238
> #5 0x00000001000a45b3 in
> CGAL::Lazy_rep_3<CGAL::CommonKernelFunctors::Construct_ray_3&lt;CGAL::Simple_cartesian&lt;CGAL::Interval_nt&lt;false>
>> >,
> CGAL::CommonKernelFunctors::Construct_ray_3<CGAL::Simple_cartesian&lt;CGAL::Gmpq>
>>, CGAL::Cartesian_converter<CGAL::Simple_cartesian&lt;CGAL::Gmpq>,
> CGAL::Simple_cartesian<CGAL::Interval_nt&lt;false> >,
> CGAL::NT_converter<CGAL::Gmpq, CGAL::Interval_nt&lt;false> > >,
> CGAL::Return_base_tag, CGAL::Point_3<CGAL::Epeck>,
> CGAL::Direction_3<CGAL::Epeck> >::update_exact (this=0x1044839e0) at
> Lazy.h:430
> #6 0x00000001000410da in
> CGAL::Lazy_rep<CGAL::Ray_3&lt;CGAL::Simple_cartesian&lt;CGAL::Interval_nt&lt;false>
>> >, CGAL::Ray_3<CGAL::Simple_cartesian&lt;CGAL::Gmpq> >,
> CGAL::Cartesian_converter<CGAL::Simple_cartesian&lt;CGAL::Gmpq>,
> CGAL::Simple_cartesian<CGAL::Interval_nt&lt;false> >,
> CGAL::NT_converter<CGAL::Gmpq, CGAL::Interval_nt&lt;false> > > >::exact
> (this=0x1044839e0) at Lazy.h:239
> #7 0x0000000100041118 in
> CGAL::Lazy<CGAL::Ray_3&lt;CGAL::Simple_cartesian&lt;CGAL::Interval_nt&lt;false>
>> >, CGAL::Ray_3<CGAL::Simple_cartesian&lt;CGAL::Gmpq> >, CGAL::Gmpq,
> CGAL::Cartesian_converter<CGAL::Simple_cartesian&lt;CGAL::Gmpq>,
> CGAL::Simple_cartesian<CGAL::Interval_nt&lt;false> >,
> CGAL::NT_converter<CGAL::Gmpq, CGAL::Interval_nt&lt;false> > > >::exact
> (this=0x10448a068) at Lazy.h:1148
> #8 0x0000000100041178 in
> CGAL::exact<CGAL::Ray_3&lt;CGAL::Simple_cartesian&lt;CGAL::Interval_nt&lt;false>
>> >, CGAL::Ray_3<CGAL::Simple_cartesian&lt;CGAL::Gmpq> >, CGAL::Gmpq,
> CGAL::Cartesian_converter<CGAL::Simple_cartesian&lt;CGAL::Gmpq>,
> CGAL::Simple_cartesian<CGAL::Interval_nt&lt;false> >,
> CGAL::NT_converter<CGAL::Gmpq, CGAL::Interval_nt&lt;false> > > >
> (l=@0x10448a068)
> at Lazy.h:71
> #9 0x00000001000a0318 in
> CGAL::Lazy_rep_1<CGAL::CommonKernelFunctors::Construct_source_3&lt;CGAL::Simple_cartesian&lt;CGAL::Interval_nt&lt;false>
>> >,
> CGAL::CommonKernelFunctors::Construct_source_3<CGAL::Simple_cartesian&lt;CGAL::Gmpq>
>>, CGAL::Cartesian_converter<CGAL::Simple_cartesian&lt;CGAL::Gmpq>,
> CGAL::Simple_cartesian<CGAL::Interval_nt&lt;false> >,
> CGAL::NT_converter<CGAL::Gmpq, CGAL::Interval_nt&lt;false> > >,
> CGAL::Ray_3<CGAL::Epeck> >::update_exact (this=0x10448a020) at Lazy.h:328
> #10 0x000000010002115a in
> CGAL::Lazy_rep<CGAL::Point_3&lt;CGAL::Simple_cartesian&lt;CGAL::Interval_nt&lt;false>
>> >, CGAL::Point_3<CGAL::Simple_cartesian&lt;CGAL::Gmpq> >,
> CGAL::Cartesian_converter<CGAL::Simple_cartesian&lt;CGAL::Gmpq>,
> CGAL::Simple_cartesian<CGAL::Interval_nt&lt;false> >,
> CGAL::NT_converter<CGAL::Gmpq, CGAL::Interval_nt&lt;false> > > >::exact
> (this=0x10448a020) at Lazy.h:239
> #11 0x0000000100021198 in
> CGAL::Lazy<CGAL::Point_3&lt;CGAL::Simple_cartesian&lt;CGAL::Interval_nt&lt;false>
>> >, CGAL::Point_3<CGAL::Simple_cartesian&lt;CGAL::Gmpq> >, CGAL::Gmpq,
> CGAL::Cartesian_converter<CGAL::Simple_cartesian&lt;CGAL::Gmpq>,
> CGAL::Simple_cartesian<CGAL::Interval_nt&lt;false> >,
> CGAL::NT_converter<CGAL::Gmpq, CGAL::Interval_nt&lt;false> > > >::exact
> (this=0x7fff5fbfcb58) at Lazy.h:1148
> #12 0x00000001000211ca in CGAL::Exact_converter<CGAL::Epeck,
> CGAL::Simple_cartesian&lt;CGAL::Gmpq>
>>::operator()<CGAL::Point_3&lt;CGAL::Epeck> > (this=0x7fff5fbfca0a,
> t=@0x7fff5fbfcb58)
> at Lazy.h:869
> #13 0x00000001001ab970 in
> CGAL::Filtered_predicate<CGAL::CartesianKernelFunctors::Has_on_3&lt;CGAL::Simple_cartesian&lt;CGAL::Gmpq>
>>,
> CGAL::CartesianKernelFunctors::Has_on_3<CGAL::Simple_cartesian&lt;CGAL::Interval_nt&lt;false>
>> >, CGAL::Exact_converter<CGAL::Epeck,
> CGAL::Simple_cartesian&lt;CGAL::Gmpq> >, CGAL::Approx_converter<CGAL::Epeck,
> CGAL::Simple_cartesian&lt;CGAL::Interval_nt&lt;false> > >,
> true>::operator()<CGAL::Plane_3&lt;CGAL::Epeck>, CGAL::Point_3<CGAL::Epeck>
>> (this=0x7fff5fbfca08,
>> a1=@0x7fff5fbfcb40,
>>
>> a2=@0x7fff5fbfcb58)
>> at
> Filtered_predicate.h:217
> #14 0x00000001001aba8b in CGAL::Plane_3<CGAL::Epeck>::has_on
> (this=0x7fff5fbfcb40,
> p=@0x7fff5fbfcb58)
> at Plane_3.h:141
> #15 0x00000001001f6278 in
> CGAL::SNC_intersection<CGAL::SNC_structure&lt;CGAL::Epeck,
> CGAL::SNC_indexed_items, bool> >::does_intersect_internally
> (this=0x101ef4308,
> ray=@0x7fff5fbfd498,
> f={node = 0x10a512cd0},
> p=@0x7fff5fbfcfb0,
> checkHasOn=true) at SNC_intersection.h:282
> #16 0x000000010000c747 in
> CGAL::SNC_point_locator_by_spatial_subdivision<CGAL::SNC_decorator&lt;CGAL::SNC_structure&lt;CGAL::Epeck,
> CGAL::SNC_indexed_items, bool> > >::shoot (this=0x101ef4240,
> ray=@0x7fff5fbfd498,
> mask=255) at SNC_point_locator.h:628
> #17 0x000000010020234f in CGAL::SNC_external_structure_base<int,
> CGAL::SNC_structure&lt;CGAL::Epeck, CGAL::SNC_indexed_items, bool>
>>::get_facet_below (this=0x7fff5fbfe2b0, vi={node = 0x10c041290},
> MinimalSFace=@0x7fff5fbfdb90,
>
> Shell=@0x7fff5fbfdce8)
> at
> SNC_external_structure.h:874
> #18 0x0000000100203053 in CGAL::SNC_external_structure_base<int,
> CGAL::SNC_structure&lt;CGAL::Epeck, CGAL::SNC_indexed_items, bool>
>>::determine_volume (this=0x7fff5fbfe2b0, sf={node = 0x10c03a6d0},
> MinimalSFace=@0x7fff5fbfdb90,
>
> Shell=@0x7fff5fbfdce8)
> at
> SNC_external_structure.h:928
> #19 0x000000010026d9e2 in CGAL::SNC_external_structure_base<int,
> CGAL::SNC_structure&lt;CGAL::Epeck, CGAL::SNC_indexed_items, bool>
>>::create_volumes (this=0x7fff5fbfe2b0) at SNC_external_structure.h:853
> #20 0x000000010026dfce in
> CGAL::SNC_external_structure<CGAL::SNC_indexed_items,
> CGAL::SNC_structure&lt;CGAL::Epeck, CGAL::SNC_indexed_items, bool>
>>::create_volumes (this=0x7fff5fbfe2b0) at SNC_external_structure.h:1235
> #21 0x000000010026e64f in
> CGAL::SNC_external_structure<CGAL::SNC_indexed_items,
> CGAL::SNC_structure&lt;CGAL::Epeck, CGAL::SNC_indexed_items, bool>
>>::build_external_structure (this=0x7fff5fbfe2b0) at
> SNC_external_structure.h:1293
> #22 0x000000010026e7cd in CGAL::Nef_polyhedron_3<CGAL::Epeck,
> CGAL::SNC_indexed_items, bool>::build_external_structure
> (this=0x7fff5fbfed78) at Nef_polyhedron_3.h:359
> #23 0x000000010026ead0 in CGAL::Nef_polyhedron_3<CGAL::Epeck,
> CGAL::SNC_indexed_items, bool>::Nef_polyhedron_3<CGAL::Epeck,
> CGAL::Polyhedron_items_3, CGAL::HalfedgeDS_default, std::allocator&lt;int> >
> (this=0x7fff5fbfed78,
> P=@0x7fff5fbff578)
> at Nef_polyhedron_3.h:569
> #24 0x0000000100001521 in main (nargc=1, argv=0x7fff5fbff758) at
> subtract_polyhedron_cgal.cpp:57
>
> thanks again,
> Hamid



Archive powered by MHonArc 2.6.16.

Top of Page