Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] how to understand CGAL's computational accuracy

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] how to understand CGAL's computational accuracy


Chronological Thread 
  • From: Sebastien Loriot <>
  • To:
  • Subject: Re: [cgal-discuss] how to understand CGAL's computational accuracy
  • Date: Fri, 12 Mar 2021 14:47:51 +0100
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-hdrordr: A9a23:x3cxpK+OWSUhR644PI9uk+BbI+orLtY04lQ7vn1ZYxpTb8CeioSSjO0WvCWVtB89elEF3eqBNq6JXG/G+fdOirU5EL++UGDd1VeAA41v4IDryT+lOwCWzJ876Y5OaK57YeedMXFejdzmpDW+Ccoq2tOd8Kul7N2urEtFaSFPR+Ve4xxiCgCde3cWeCBjCYAiHJSRouprzgDQHUg/V9+2DHUJU+/Iq7Tw5fDbSCULDRIm9wWC5AnAgILSKQSS3RsVTlp0r4sKzG6tqWPEz5Tml8uV4Tq07QXuxqUTpcXg18ZOH4inquV9EESItjqV
  • Ironport-phdr: A9a23:hrhbeBwXH82vXkTXCzKWzVBlVkAck4WxBRYc798ds5kLTJ7L16rrMEGX3/hxlliBBdydt6sVzbOM6eu9BCQp2tWoiDg6aptCVhsI2409vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7Ovr6GpLIj8Swyuu+54Dfbx9HiTagZb5+Ngi6oRvPusUZgYZvKrs6xwfUrHdPZ+lY335jK0iJnxb76Mew/Zpj/DpVtvk86cNOUrj0crohQ7BAAzsoL2465MvwtRneVgSP/WcTUn8XkhVTHQfI6gzxU4rrvSv7sup93zSaPdHzQLspVzmu87tnRRn1gyoBKjU38nzYitZogaxGvhyhqRxxzY3abo6bO/VxfL/Sc9wBSGpdXMtcTTBNDp+yYoYNCecKIOZWr5P6p1sLtRawGBejC/j1xT9Tmn/23LM10+I8Gg/A2wwgBdMOsHPIrN7oM6oSSuS1zK7SzTXCaPNWxS3x6I3Mch06rvGMWKh/ccvVyUU1CwzFiVCQpJXjMjiI2esDr3KV4PB8VeKzlWEnsQdxryCgyMsyl4XEiIIbx03H+Ch3z4s4Jd+1RU17b9O4HpZeuSCXO5VrT84+TWxluSg0xqMJt5KlYSUExpcqyR7BZ/CbdYWD/xztVOGUIThihXJlfqqyhxCo/ke70eL8Ute73ExWoSpCl9nBsG0G2R/L6sWfVPdx4kOs1SyM2g3T8O1IP144mbfBJ5Mu3LI8joQfvl7fEiPrnUj5krOaeV8h9+S29+jrf7Drq5GGOINqlg3zN74hmsKiDesjNwUDXHOU9fqg2LDm8kD1XLpHgeYzn6XErpzXJdgXq6ikCAFPyIkj8QywDzK+3dQYg3YHKFVFdQqCj4fzOlHOJOn0DPmlg1ixiTtryf/LMqP7DpXCKXjDl7jhfbJj5EJG1AUzytVf64pVCrEHPv3zRlf8uMLEAhI9KQC5wObqBM9j2o8ARG6DGKCUPL3KvV+N/O0vIu2MZIEPuDb6Lvgo/+XujXs+mV8HfKmp2ocXZGq9HvRiOEiZbn/sjc0AEWcOpAYxUOvqiFiaXT5Je3myR7485i08CI++EYjDSZqigLiY0CimH51WfXxJCk2XEXfzbIiEQPcNaCeKIsB7iDAEVL6hS5Ug1R60rgP6xaBnfaLo/XgTupvnkdR0/ObOjgoa9DpuDs3b3XveYXtzmzYzSjU/x7x+rEo17lCZ0K9ky6hDEdtJ5vRVFAI+HZHZxu1+Tdv1X1SSLZ+yVF+6T4D+UnkKRdUrzopWC25NXu66hxWG5BKERqcPntSjC5k986aa1H/0dZ4V40aD77EoihwdeuUKNWCigcZX8gHSA8vWiRzcmfrwM6sb2yHJ+SGIym/c5ClwYEtLSazAGEsnSA7TpNX96FnFSteGBrEuMw8HwsmHePIiVw==

Sorry I thought you were using "inexact_constructions".

Then using
std::cout << CGAL::exact(p) << " " << CGAL::exact(q) << " " << CGAL::exact(r) << "\n";

You will see that you have different numbers. You can also
call q == CGAL::midpoint(p, r) ? "equal" : "not equal" if you want.

By default operator<< is giving a approximation but not the exact value
(it is a filtered number type).

Best,

Sebastien.

On 3/12/21 2:34 PM, Aomandeyi ( via cgal-discuss Mailing List) wrote:
Aha! i can give you counter-example:
------------------------------
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <sstream>
typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel;
typedef Kernel::Point_2 Point_2;
int main()
{
Point_2 p(0, 0.4), q(1, 0.7), r(2, 1);
{
std::cout << std::setprecision(17) << p << " " << q << " " << r <<
"\n";
std::cout << (CGAL::collinear(p, q, r) ? "collinear\n" : "not
collinear\n");
}

{
q = CGAL::midpoint(p, r);
std::cout << std::setprecision(17) << p << " " << q << " " << r <<
"\n";
std::cout << (CGAL::collinear(p, q, r) ? "collinear\n" : "not
collinear\n");
}


return 0;
}
--------------------
the results:the same input but different output
----------------------------------------
0 0.40000000000000002 1 0.69999999999999996 2 1
not collinear
0 0.40000000000000002 1 0.69999999999999996 2 1
collinear
---------------------------------------------



--
Sent from: http://cgal-discuss.949826.n4.nabble.com/




Archive powered by MHonArc 2.6.19+.

Top of Page