Skip to Content.
Sympa Menu

cgal-discuss - [cgal-discuss] error in comparing CORE Expr values

Subject: CGAL users discussion list

List archive

[cgal-discuss] error in comparing CORE Expr values


Chronological Thread 
  • From: Peter Palfrader <>
  • To:
  • Subject: [cgal-discuss] error in comparing CORE Expr values
  • Date: Wed, 18 Sep 2019 13:33:18 +0000
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-phdr: 9a23:NSuXYB9Pdxhy6/9uRHKM819IXTAuvvDOBiVQ1KB30uwcTK2v8tzYMVDF4r011RmVBN6dsqIP1bCe8/i5HzBZu9DZ6DFKWacPfidNsd8RkQ0kDZzNImzAB9muURYHGt9fXkRu5XCxPBsdMs//Y1rPvi/6tmZKSV3wOgVvO+v6BJPZgdip2OCu4Z3TZBhDiCagbb9oIxi6sAvcutMLjYZhJao8ywXFqWZMd+hK2G9kP12ekwvi6suq4JJv7yFcsO89+sBdVqn3Y742RqFCAjQ8NGA16szrtR3dQgaK+3ARTGYYnAdWDgbc9B31UYv/vSX8tupmxSmVJtb2QqwuWTSj9KhkVhnlgzoaOjEj8WHXjstwjL9HoB+kuhdyzZLYbJ2TOfFjeK7WYNEUSndbXstJWSJPAp2yYZYMAeUOIelXsofyqkALrReiGQWhHv/jxyVWinLwwKY00/4hEQbD3AE4BdwBrmjUo8vvNKwPS+661q3IzTvZb/xMxDjy9pLIeQ0mrPGUQ71wbdTeyVM0GgPdlFqQrYLlPymP2esQrWeb9fBsVeW1i24osgx8pCWkyMkrionMnI0Vy1bE+D1hwIkvId24RlR7bsS5H5ROrSGWLYx2QtktQ21wpSk11KYJuZ+hcygM0pgnwATfa/OBfoOV4RzjTP6cLSlliH9rYr6zmRi//Ei6xuHiWMS4zUxGojRZntTMsH0Gygbd5dKdSvRn+0eswTaP2B7X6uFDOU00jrDUK4Q/zb4zjJYTt0PDHjXol0XuiK+Xdl8o+u+y6+Toernmp5mcOJFoigzmLKgih8KyDf4mPgUAX2WX4/qw2bP+8UHjXrlGkv07nrHcsJ/AJMQboqC5AxVS0oYm8xu/Fymp0MgGknkdN19FYAiIj4znO1HUOv/3EOmwg062nDds3fDGMaXtAo/RIXjbjLfhYbF95lZAxwo8199f44tYBawAIPLoRkDxqcfYDgQiPgyvw+fnDc192ZkEVWKOBK+ZKqLSvkWS6uIhOenfLLMS7T3yIvxg6//1hmIigncce7Oo1N0ZciOWBPNjdn2UfXf2yu8IFWkQtwYzVqS+kFCeXCR7f3+2Ubg16jwhToW8AtGQFciWnLWd0XLjTdVtbWdcBwXUSCq6R8C/Q/4JLRmqDIphnzgDDOnzUIY72BLosgjgxqJjP6zT4CJK7cuyhugw3PXakFQJzRIxCs2c12+XSGQtwzEQTjs4xqlzrFY7zU2Mg/Eh365oUOdL7vYMaT8UcIbGxrUnWcj7Xgzbd9uEUhChWNr0WTw=

Hi!

I have encountered what seems like a strange issue:

Consider this code snippet:
] std::cout << "v1: " << v1 << std::endl;
] std::cout << "v2: " << v2 << std::endl;
] std::cout << "v1 < v2: " << (v1 < v2 ? "yes" : "no") << std::endl;
which prints this:
] v1: 0.49770
] v2: 0.01047
] v1 < v2: yes

I'm not sure what is going on, but I don't think that 0.49770 is
less than 0.01047. :)

This is with libcgal13 (as shipped in Debian 10[1] and Ubuntu 18.04). The
attached piece of code constructs v1 and v2. Compiling with clang++ (or g++)
produces this effect:

| weasel@waschbaer:~$ clang++ cgal0_1.cpp -o cgal -lgmpxx -lgmp
-lboost_thread -lCGAL_Core -lCGAL
| weasel@waschbaer:~$ ./cgal
| v1: 0.49770
| v2: 0.01047
| v1 < v2: yes


If you multiply all the constants (not unity) by 100, nothing changes:
| v1: 49.7703
| v2: 1.04670
| v1 < v2: yes

Once you multiply them by 10000: (cf. cgal0_2.cpp).
| v1: 4977.03
| v2: 104.670
| v1 < v2: no

Something's fishy here.

Cheers,
Peter

1. Versions of packages libcgal13:amd64 depends on:
libboost-thread1.67.0 1.67.0-13
libc6 2.28-10
libgcc1 1:8.3.0-6
libgmp10 2:6.1.2+dfsg-4
libstdc++6 8.3.0-6
zlib1g 1:1.2.11.dfsg-1
--
| .''`. ** Debian **
Peter Palfrader | : :' : The universal
https://www.palfrader.org/ | `. `' Operating System
| `- https://www.debian.org/
#include <iostream>
#include <CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h>
using Kernel  = CGAL::Exact_predicates_exact_constructions_kernel_with_sqrt;
using NT = Kernel::FT;

int main() {

     NT e_000000 = NT::getZero(); // 0  // tree-height:  1
     NT e_111111 = NT::getOne(); // 1  // tree-height:  1

     NT e_e49370 = NT("-926776695296637/250000000000000"); // -3.70711  // tree-height:  1
     NT e_e4b470 = NT("-6176526454685371/2000000000000000"); // -3.08826  // tree-height:  1
     NT e_e4b3f0 = NT("-7562817917197151/2500000000000000"); // -3.02513  // tree-height:  1
     NT e_ec78a0 = e_e4b470 - e_e4b3f0; // -0.06314  // tree-height:  2
     NT e_f82f00 = e_e49370 - e_111111; // -4.70711  // tree-height:  2
     NT e_e4b430 = NT("-39812305722547183/10000000000000000"); // -3.98123  // tree-height:  1
     NT e_e4b4b0 = NT("-7864914871474987/2000000000000000"); // -3.93246  // tree-height:  1
     NT e_ec7850 = e_e4b430 - e_e4b4b0; // -0.04877  // tree-height:  2
     NT e_f26290 = - e_ec7850; // 0.04877  // tree-height:  3
     NT e_fa6b88 = e_f82f00 * e_ec7850; // 0.22958  // tree-height:  3
     NT e_e493b0 = NT("-1176776695296637/250000000000000"); // -4.70711  // tree-height:  1
     NT e_f26250 = - e_e4b3f0; // 3.02513  // tree-height:  2
     NT e_ede980 = e_f26250 * e_ec7850; // -0.14754  // tree-height:  3
     NT e_ede9c8 = e_e4b430 * e_ec78a0; // 0.25136  // tree-height:  3
     NT e_ec78f0 = e_ede980 - e_ede9c8; // -0.39890  // tree-height:  4
     NT e_fdd950 = e_ec7850 + e_ec78f0; // -0.44768  // tree-height:  5
     NT e_fb16a0 = - e_fdd950; // 0.44768  // tree-height:  6
     NT e_f53398 = e_fb16a0 / e_ec78a0; // -7.09068  // tree-height:  7
     NT e_f82f50 = e_e493b0 - e_f53398; // 2.38357  // tree-height:  8
     NT e_fa6bd0 = e_f82f50 * e_ec78a0; // -0.15049  // tree-height:  9
     NT e_fdd9f0 = e_fa6b88 + e_fa6bd0; // 0.07909  // tree-height:  10
     NT e_fa6c18 = e_ec7850 * e_ec7850; // 0.00238  // tree-height:  3
     NT e_fa6c60 = e_ec78a0 * e_ec78a0; // 0.00399  // tree-height:  3
     NT e_fdda40 = e_fa6c18 + e_fa6c60; // 0.00636  // tree-height:  4
     NT e_f36020 = CGAL::sqrt(e_fdda40); // 0.07978  // tree-height:  5
     NT e_e492f0 = NT("-464966243551581/125000000000000"); // -3.71973  // tree-height:  1
     NT e_ec7990 = e_e49370 - e_e492f0; // 0.01262  // tree-height:  2
     NT e_e493f0 = NT("-36944836139604567/10000000000000000"); // -3.69448  // tree-height:  1
     NT e_ec77b0 = e_e493f0 - e_e49370; // 0.01262  // tree-height:  2
     NT e_e49430 = NT("-4719729948412639/1000000000000000"); // -4.71973  // tree-height:  1
     NT e_ec7760 = e_e493b0 - e_e49430; // 0.01262  // tree-height:  2
     NT e_f261d0 = - e_ec7760; // -0.01262  // tree-height:  3
     NT e_ede860 = e_ec7760 * e_ec7760; // 0.00016  // tree-height:  3
     NT e_ede8a8 = e_ec77b0 * e_ec77b0; // 0.00016  // tree-height:  3
     NT e_eeb070 = e_ede860 + e_ede8a8; // 0.00032  // tree-height:  4
     NT e_f341a0 = CGAL::sqrt(e_eeb070); // 0.01785  // tree-height:  5
     NT e_f455b0 = e_ec7760 / e_f341a0; // 0.70711  // tree-height:  6
     NT e_ef69c0 = e_111111 + e_f455b0; // 1.70711  // tree-height:  7
     NT e_f2f1d0 = - e_ec7760; // -0.01262  // tree-height:  3
     NT e_f6c5d0 = e_ef69c0 * e_f2f1d0; // -0.02155  // tree-height:  8
     NT e_f26190 = - e_e49370; // 3.70711  // tree-height:  2
     NT e_ede7d0 = e_f26190 * e_ec7760; // 0.04680  // tree-height:  3
     NT e_ede818 = e_e493b0 * e_ec77b0; // -0.05942  // tree-height:  3
     NT e_ec7800 = e_ede7d0 - e_ede818; // 0.10621  // tree-height:  4
     NT e_ef6970 = e_ec7760 + e_ec7800; // 0.11884  // tree-height:  5
     NT e_f2f190 = - e_ef6970; // -0.11884  // tree-height:  6
     NT e_f4c168 = e_f2f190 / e_ec77b0; // -9.41421  // tree-height:  7
     NT e_f455f8 = e_ec77b0 / e_f341a0; // 0.70711  // tree-height:  6
     NT e_ef6a10 = e_f4c168 + e_f455f8; // -8.70711  // tree-height:  8
     NT e_f6c618 = e_ef6a10 * e_ec77b0; // -0.10991  // tree-height:  9
     NT e_ed6850 = e_f6c5d0 - e_f6c618; // 0.08836  // tree-height:  10
     NT e_f6c6f0 = e_ec7990 * e_ed6850; // 0.00112  // tree-height:  11
     NT e_e49330 = NT("-4694483613960447/1000000000000000"); // -4.69448  // tree-height:  1
     NT e_ec7940 = e_e49330 - e_e493b0; // 0.01262  // tree-height:  2
     NT e_f26350 = - e_ec7940; // -0.01262  // tree-height:  3
     NT e_edebc0 = e_ec7940 * e_ec7940; // 0.00016  // tree-height:  3
     NT e_edec08 = e_ec7990 * e_ec7990; // 0.00016  // tree-height:  3
     NT e_eeb110 = e_edebc0 + e_edec08; // 0.00032  // tree-height:  4
     NT e_f34220 = CGAL::sqrt(e_eeb110); // 0.01785  // tree-height:  5
     NT e_f456d0 = e_ec7940 / e_f34220; // 0.70711  // tree-height:  6
     NT e_ef6880 = e_111111 + e_f456d0; // 1.70711  // tree-height:  7
     NT e_f2f110 = - e_ec7940; // -0.01262  // tree-height:  3
     NT e_f6c4b0 = e_ef6880 * e_f2f110; // -0.02155  // tree-height:  8
     NT e_f26310 = - e_e492f0; // 3.71973  // tree-height:  2
     NT e_edeb30 = e_f26310 * e_ec7940; // 0.04695  // tree-height:  3
     NT e_edeb78 = e_e49330 * e_ec7990; // -0.05926  // tree-height:  3
     NT e_ec79e0 = e_edeb30 - e_edeb78; // 0.10621  // tree-height:  4
     NT e_ef6830 = e_ec7940 + e_ec79e0; // 0.11884  // tree-height:  5
     NT e_f2f0d0 = - e_ef6830; // -0.11884  // tree-height:  6
     NT e_f4c120 = e_f2f0d0 / e_ec7990; // -9.41421  // tree-height:  7
     NT e_f45718 = e_ec7990 / e_f34220; // 0.70711  // tree-height:  6
     NT e_ef68d0 = e_f4c120 + e_f45718; // -8.70711  // tree-height:  8
     NT e_f6c4f8 = e_ef68d0 * e_ec7990; // -0.10991  // tree-height:  9
     NT e_ed67b0 = e_f6c4b0 - e_f6c4f8; // 0.08836  // tree-height:  10
     NT e_f6c738 = e_ec77b0 * e_ed67b0; // 0.00112  // tree-height:  11
     NT e_ed68f0 = e_f6c6f0 - e_f6c738; // -4.92304e-17  // tree-height:  12
     NT e_f6c660 = e_ec7940 * e_ec77b0; // 0.00016  // tree-height:  3
     NT e_f6c6a8 = e_ec7760 * e_ec7990; // 0.00016  // tree-height:  3
     NT e_ed68a0 = e_f6c660 - e_f6c6a8; // 1.64101e-17  // tree-height:  4
     NT e_f4c1b0 = e_ed68f0 / e_ed68a0; // -3.00000  // tree-height:  13
     NT e_ed6990 = e_f4c1b0 - e_e49370; // 0.70711  // tree-height:  14
     NT e_fa6cf0 = e_ed6990 * e_ec7850; // -0.03449  // tree-height:  15
     NT e_f6c780 = e_ec7760 * e_ed67b0; // 0.00112  // tree-height:  11
     NT e_f6c7c8 = e_ec7940 * e_ed6850; // 0.00112  // tree-height:  11
     NT e_ed6940 = e_f6c780 - e_f6c7c8; // -6.56405e-17  // tree-height:  12
     NT e_f4c1f8 = e_ed6940 / e_ed68a0; // -4.00000  // tree-height:  13
     NT e_ed69e0 = e_f4c1f8 - e_e493b0; // 0.70711  // tree-height:  14
     NT e_fa6d38 = e_ed69e0 * e_ec78a0; // -0.04464  // tree-height:  15
     NT e_fdda90 = e_fa6cf0 + e_fa6d38; // -0.07913  // tree-height:  16
     NT e_f82fa0 = e_f36020 - e_fdda90; // 0.15891  // tree-height:  17
     NT e_f533e0 = e_fdd9f0 / e_f82fa0; // 0.49770  // tree-height:  18


     NT e_e4bb70 = NT("-37440590959507967/10000000000000000"); // -3.74406  // tree-height:  1
     NT e_e4baf0 = NT("-4670064590775217/1250000000000000"); // -3.73605  // tree-height:  1
     NT e_f82320 = e_e4bb70 - e_e4baf0; // -0.00801  // tree-height:  2
     NT e_e4ba70 = NT("-3727481491980763/1000000000000000"); // -3.72748  // tree-height:  1
     NT e_ec8d40 = e_e4baf0 - e_e4ba70; // -0.00857  // tree-height:  2
     NT e_ec8e30 = e_e4bb70 - e_e4baf0; // -0.00801  // tree-height:  2
     NT e_e4bb30 = NT("-33230471551108343/10000000000000000"); // -3.32305  // tree-height:  1
     NT e_e4bbb0 = NT("-1665823867386329/500000000000000"); // -3.33165  // tree-height:  1
     NT e_ec8de0 = e_e4bb30 - e_e4bbb0; // 0.00860  // tree-height:  2
     NT e_f273d0 = - e_ec8de0; // -0.00860  // tree-height:  3
     NT e_ee10e0 = e_ec8de0 * e_ec8de0; // 0.00007  // tree-height:  3
     NT e_ee1128 = e_ec8e30 * e_ec8e30; // 0.00006  // tree-height:  3
     NT e_eeb7f0 = e_ee10e0 + e_ee1128; // 0.00014  // tree-height:  4
     NT e_f347a0 = CGAL::sqrt(e_eeb7f0); // 0.01175  // tree-height:  5
     NT e_f46330 = e_ec8de0 / e_f347a0; // 0.73189  // tree-height:  6
     NT e_ef9e40 = e_111111 + e_f46330; // 1.73189  // tree-height:  7
     NT e_f31150 = - e_ec8de0; // -0.00860  // tree-height:  3
     NT e_f71880 = e_ef9e40 * e_f31150; // -0.01490  // tree-height:  8
     NT e_f27390 = - e_e4baf0; // 3.73605  // tree-height:  2
     NT e_ee1050 = e_f27390 * e_ec8de0; // 0.03213  // tree-height:  3
     NT e_ee1098 = e_e4bb30 * e_ec8e30; // 0.02661  // tree-height:  3
     NT e_ec8e80 = e_ee1050 - e_ee1098; // 0.00552  // tree-height:  4
     NT e_ef9df0 = e_ec8de0 + e_ec8e80; // 0.01412  // tree-height:  5
     NT e_f31110 = - e_ef9df0; // -0.01412  // tree-height:  6
     NT e_f4d908 = e_f31110 / e_ec8e30; // 1.76383  // tree-height:  7
     NT e_f46378 = e_ec8e30 / e_f347a0; // -0.68142  // tree-height:  6
     NT e_ef9e90 = e_f4d908 + e_f46378; // 1.08241  // tree-height:  8
     NT e_f718c8 = e_ef9e90 * e_ec8e30; // -0.00867  // tree-height:  9
     NT e_f758f0 = e_f71880 - e_f718c8; // -0.00623  // tree-height:  10
     NT e_f719a0 = e_ec8d40 * e_f758f0; // 0.00005  // tree-height:  11
     NT e_e4bab0 = NT("-33327875678154193/10000000000000000"); // -3.33279  // tree-height:  1
     NT e_ec8cf0 = e_e4bab0 - e_e4bb30; // -0.00974  // tree-height:  2
     NT e_f27310 = - e_ec8cf0; // 0.00974  // tree-height:  3
     NT e_ee0f30 = e_ec8cf0 * e_ec8cf0; // 0.00009  // tree-height:  3
     NT e_ee0f78 = e_ec8d40 * e_ec8d40; // 0.00007  // tree-height:  3
     NT e_eeb7a0 = e_ee0f30 + e_ee0f78; // 0.00017  // tree-height:  4
     NT e_f34760 = CGAL::sqrt(e_eeb7a0); // 0.01297  // tree-height:  5
     NT e_f462a0 = e_ec8cf0 / e_f34760; // -0.75077  // tree-height:  6
     NT e_ef9d00 = e_111111 + e_f462a0; // 0.24923  // tree-height:  7
     NT e_f31090 = - e_ec8cf0; // 0.00974  // tree-height:  3
     NT e_f71760 = e_ef9d00 * e_f31090; // 0.00243  // tree-height:  8
     NT e_f272d0 = - e_e4ba70; // 3.72748  // tree-height:  2
     NT e_ee0ea0 = e_f272d0 * e_ec8cf0; // -0.03631  // tree-height:  3
     NT e_ee0ee8 = e_e4bab0 * e_ec8d40; // 0.02856  // tree-height:  3
     NT e_ec8d90 = e_ee0ea0 - e_ee0ee8; // -0.06487  // tree-height:  4
     NT e_ef9cb0 = e_ec8cf0 + e_ec8d90; // -0.07461  // tree-height:  5
     NT e_f31050 = - e_ef9cb0; // 0.07461  // tree-height:  6
     NT e_f4d8c0 = e_f31050 / e_ec8d40; // -8.70579  // tree-height:  7
     NT e_f462e8 = e_ec8d40 / e_f34760; // -0.66057  // tree-height:  6
     NT e_ef9d50 = e_f4d8c0 + e_f462e8; // -9.36636  // tree-height:  8
     NT e_f717a8 = e_ef9d50 * e_ec8d40; // 0.08027  // tree-height:  9
     NT e_f75850 = e_f71760 - e_f717a8; // -0.07784  // tree-height:  10
     NT e_f719e8 = e_ec8e30 * e_f75850; // 0.00062  // tree-height:  11
     NT e_f75990 = e_f719a0 - e_f719e8; // -0.00057  // tree-height:  12
     NT e_f71910 = e_ec8cf0 * e_ec8e30; // 0.00008  // tree-height:  3
     NT e_f71958 = e_ec8de0 * e_ec8d40; // -0.00007  // tree-height:  3
     NT e_f75940 = e_f71910 - e_f71958; // 0.00015  // tree-height:  4
     NT e_f4d950 = e_f75990 / e_f75940; // -3.75701  // tree-height:  13
     NT e_f75a30 = e_f4d950 - e_e4baf0; // -0.02095  // tree-height:  14
     NT e_e4bbf0 = NT("-941860013189427/250000000000000"); // -3.76744  // tree-height:  1
     NT e_ec8c50 = e_e4bbf0 - e_e4bb70; // -0.02338  // tree-height:  2
     NT e_e4bc30 = NT("-3358630797336759/1000000000000000"); // -3.35863  // tree-height:  1
     NT e_ec8c00 = e_e4bbb0 - e_e4bc30; // 0.02698  // tree-height:  2
     NT e_f27250 = - e_ec8c00; // -0.02698  // tree-height:  3
     NT e_ee0d80 = e_ec8c00 * e_ec8c00; // 0.00073  // tree-height:  3
     NT e_ee0dc8 = e_ec8c50 * e_ec8c50; // 0.00055  // tree-height:  3
     NT e_eeb750 = e_ee0d80 + e_ee0dc8; // 0.00127  // tree-height:  4
     NT e_f34720 = CGAL::sqrt(e_eeb750); // 0.03570  // tree-height:  5
     NT e_f46210 = e_ec8c00 / e_f34720; // 0.75575  // tree-height:  6
     NT e_efa0c0 = e_111111 + e_f46210; // 1.75575  // tree-height:  7
     NT e_f312d0 = - e_ec8c00; // -0.02698  // tree-height:  3
     NT e_f71c70 = e_efa0c0 * e_f312d0; // -0.04738  // tree-height:  8
     NT e_f27210 = - e_e4bb70; // 3.74406  // tree-height:  2
     NT e_ee0cf0 = e_f27210 * e_ec8c00; // 0.10103  // tree-height:  3
     NT e_ee0d38 = e_e4bbb0 * e_ec8c50; // 0.07790  // tree-height:  3
     NT e_ec8ca0 = e_ee0cf0 - e_ee0d38; // 0.02313  // tree-height:  4
     NT e_efa070 = e_ec8c00 + e_ec8ca0; // 0.05011  // tree-height:  5
     NT e_f31290 = - e_efa070; // -0.05011  // tree-height:  6
     NT e_f4da28 = e_f31290 / e_ec8c50; // 2.14329  // tree-height:  7
     NT e_f46258 = e_ec8c50 / e_f34720; // -0.65486  // tree-height:  6
     NT e_efa110 = e_f4da28 + e_f46258; // 1.48843  // tree-height:  8
     NT e_f71cb8 = e_efa110 * e_ec8c50; // -0.03480  // tree-height:  9
     NT e_f75bc0 = e_f71c70 - e_f71cb8; // -0.01257  // tree-height:  10
     NT e_f71d90 = e_ec8e30 * e_f75bc0; // 0.00010  // tree-height:  11
     NT e_ef9f80 = e_111111 + e_f46330; // 1.73189  // tree-height:  7
     NT e_f31210 = - e_ec8de0; // -0.00860  // tree-height:  3
     NT e_f71b50 = e_ef9f80 * e_f31210; // -0.01490  // tree-height:  8
     NT e_ef9f30 = e_ec8de0 + e_ec8e80; // 0.01412  // tree-height:  5
     NT e_f311d0 = - e_ef9f30; // -0.01412  // tree-height:  6
     NT e_f4d9e0 = e_f311d0 / e_ec8e30; // 1.76383  // tree-height:  7
     NT e_ef9fd0 = e_f4d9e0 + e_f46378; // 1.08241  // tree-height:  8
     NT e_f71b98 = e_ef9fd0 * e_ec8e30; // -0.00867  // tree-height:  9
     NT e_f75b20 = e_f71b50 - e_f71b98; // -0.00623  // tree-height:  10
     NT e_f71dd8 = e_ec8c50 * e_f75b20; // 0.00015  // tree-height:  11
     NT e_f75c60 = e_f71d90 - e_f71dd8; // -0.00004  // tree-height:  12
     NT e_f71d00 = e_ec8de0 * e_ec8c50; // -0.00020  // tree-height:  3
     NT e_f71d48 = e_ec8c00 * e_ec8e30; // -0.00022  // tree-height:  3
     NT e_f75c10 = e_f71d00 - e_f71d48; // 0.00001  // tree-height:  4
     NT e_f4da70 = e_f75c60 / e_f75c10; // -3.00000  // tree-height:  13
     NT e_f75d00 = e_f4da70 - e_e4bb70; // 0.74406  // tree-height:  14
     NT e_f85570 = e_f75a30 - e_f75d00; // -0.76501  // tree-height:  15
     NT e_f54550 = e_f82320 / e_f85570; // 0.01047  // tree-height:  16


    NT v1 = e_f533e0;
    NT v2 = e_f54550;
    std::cout << "v1: " << v1 << std::endl;
    std::cout << "v2: " << v2 << std::endl;

    std::cout << "v1 < v2: " << (v1 < v2 ? "yes" : "no") << std::endl;
};

#include <iostream>
#include <CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h>
using Kernel  = CGAL::Exact_predicates_exact_constructions_kernel_with_sqrt;
using NT = Kernel::FT;

// #define ZEROES "0000"
// #define ZEROES "00"
#define ZEROES ""

int main() {

     NT e_000000 = NT::getZero(); // 0  // tree-height:  1
     NT e_111111 = NT::getOne(); // 1  // tree-height:  1

     NT e_e49370 = NT("-926776695296637/25000000000" ZEROES); // -3.70711  // tree-height:  1
     NT e_e4b470 = NT("-6176526454685371/200000000000" ZEROES); // -3.08826  // tree-height:  1
     NT e_e4b3f0 = NT("-7562817917197151/250000000000" ZEROES); // -3.02513  // tree-height:  1
     NT e_ec78a0 = e_e4b470 - e_e4b3f0; // -0.06314  // tree-height:  2
     NT e_f82f00 = e_e49370 - e_111111; // -4.70711  // tree-height:  2
     NT e_e4b430 = NT("-39812305722547183/1000000000000" ZEROES); // -3.98123  // tree-height:  1
     NT e_e4b4b0 = NT("-7864914871474987/200000000000" ZEROES); // -3.93246  // tree-height:  1
     NT e_ec7850 = e_e4b430 - e_e4b4b0; // -0.04877  // tree-height:  2
     NT e_f26290 = - e_ec7850; // 0.04877  // tree-height:  3
     NT e_fa6b88 = e_f82f00 * e_ec7850; // 0.22958  // tree-height:  3
     NT e_e493b0 = NT("-1176776695296637/25000000000" ZEROES); // -4.70711  // tree-height:  1
     NT e_f26250 = - e_e4b3f0; // 3.02513  // tree-height:  2
     NT e_ede980 = e_f26250 * e_ec7850; // -0.14754  // tree-height:  3
     NT e_ede9c8 = e_e4b430 * e_ec78a0; // 0.25136  // tree-height:  3
     NT e_ec78f0 = e_ede980 - e_ede9c8; // -0.39890  // tree-height:  4
     NT e_fdd950 = e_ec7850 + e_ec78f0; // -0.44768  // tree-height:  5
     NT e_fb16a0 = - e_fdd950; // 0.44768  // tree-height:  6
     NT e_f53398 = e_fb16a0 / e_ec78a0; // -7.09068  // tree-height:  7
     NT e_f82f50 = e_e493b0 - e_f53398; // 2.38357  // tree-height:  8
     NT e_fa6bd0 = e_f82f50 * e_ec78a0; // -0.15049  // tree-height:  9
     NT e_fdd9f0 = e_fa6b88 + e_fa6bd0; // 0.07909  // tree-height:  10
     NT e_fa6c18 = e_ec7850 * e_ec7850; // 0.00238  // tree-height:  3
     NT e_fa6c60 = e_ec78a0 * e_ec78a0; // 0.00399  // tree-height:  3
     NT e_fdda40 = e_fa6c18 + e_fa6c60; // 0.00636  // tree-height:  4
     NT e_f36020 = CGAL::sqrt(e_fdda40); // 0.07978  // tree-height:  5
     NT e_e492f0 = NT("-464966243551581/12500000000" ZEROES); // -3.71973  // tree-height:  1
     NT e_ec7990 = e_e49370 - e_e492f0; // 0.01262  // tree-height:  2
     NT e_e493f0 = NT("-36944836139604567/1000000000000" ZEROES); // -3.69448  // tree-height:  1
     NT e_ec77b0 = e_e493f0 - e_e49370; // 0.01262  // tree-height:  2
     NT e_e49430 = NT("-4719729948412639/100000000000" ZEROES); // -4.71973  // tree-height:  1
     NT e_ec7760 = e_e493b0 - e_e49430; // 0.01262  // tree-height:  2
     NT e_f261d0 = - e_ec7760; // -0.01262  // tree-height:  3
     NT e_ede860 = e_ec7760 * e_ec7760; // 0.00016  // tree-height:  3
     NT e_ede8a8 = e_ec77b0 * e_ec77b0; // 0.00016  // tree-height:  3
     NT e_eeb070 = e_ede860 + e_ede8a8; // 0.00032  // tree-height:  4
     NT e_f341a0 = CGAL::sqrt(e_eeb070); // 0.01785  // tree-height:  5
     NT e_f455b0 = e_ec7760 / e_f341a0; // 0.70711  // tree-height:  6
     NT e_ef69c0 = e_111111 + e_f455b0; // 1.70711  // tree-height:  7
     NT e_f2f1d0 = - e_ec7760; // -0.01262  // tree-height:  3
     NT e_f6c5d0 = e_ef69c0 * e_f2f1d0; // -0.02155  // tree-height:  8
     NT e_f26190 = - e_e49370; // 3.70711  // tree-height:  2
     NT e_ede7d0 = e_f26190 * e_ec7760; // 0.04680  // tree-height:  3
     NT e_ede818 = e_e493b0 * e_ec77b0; // -0.05942  // tree-height:  3
     NT e_ec7800 = e_ede7d0 - e_ede818; // 0.10621  // tree-height:  4
     NT e_ef6970 = e_ec7760 + e_ec7800; // 0.11884  // tree-height:  5
     NT e_f2f190 = - e_ef6970; // -0.11884  // tree-height:  6
     NT e_f4c168 = e_f2f190 / e_ec77b0; // -9.41421  // tree-height:  7
     NT e_f455f8 = e_ec77b0 / e_f341a0; // 0.70711  // tree-height:  6
     NT e_ef6a10 = e_f4c168 + e_f455f8; // -8.70711  // tree-height:  8
     NT e_f6c618 = e_ef6a10 * e_ec77b0; // -0.10991  // tree-height:  9
     NT e_ed6850 = e_f6c5d0 - e_f6c618; // 0.08836  // tree-height:  10
     NT e_f6c6f0 = e_ec7990 * e_ed6850; // 0.00112  // tree-height:  11
     NT e_e49330 = NT("-4694483613960447/100000000000" ZEROES); // -4.69448  // tree-height:  1
     NT e_ec7940 = e_e49330 - e_e493b0; // 0.01262  // tree-height:  2
     NT e_f26350 = - e_ec7940; // -0.01262  // tree-height:  3
     NT e_edebc0 = e_ec7940 * e_ec7940; // 0.00016  // tree-height:  3
     NT e_edec08 = e_ec7990 * e_ec7990; // 0.00016  // tree-height:  3
     NT e_eeb110 = e_edebc0 + e_edec08; // 0.00032  // tree-height:  4
     NT e_f34220 = CGAL::sqrt(e_eeb110); // 0.01785  // tree-height:  5
     NT e_f456d0 = e_ec7940 / e_f34220; // 0.70711  // tree-height:  6
     NT e_ef6880 = e_111111 + e_f456d0; // 1.70711  // tree-height:  7
     NT e_f2f110 = - e_ec7940; // -0.01262  // tree-height:  3
     NT e_f6c4b0 = e_ef6880 * e_f2f110; // -0.02155  // tree-height:  8
     NT e_f26310 = - e_e492f0; // 3.71973  // tree-height:  2
     NT e_edeb30 = e_f26310 * e_ec7940; // 0.04695  // tree-height:  3
     NT e_edeb78 = e_e49330 * e_ec7990; // -0.05926  // tree-height:  3
     NT e_ec79e0 = e_edeb30 - e_edeb78; // 0.10621  // tree-height:  4
     NT e_ef6830 = e_ec7940 + e_ec79e0; // 0.11884  // tree-height:  5
     NT e_f2f0d0 = - e_ef6830; // -0.11884  // tree-height:  6
     NT e_f4c120 = e_f2f0d0 / e_ec7990; // -9.41421  // tree-height:  7
     NT e_f45718 = e_ec7990 / e_f34220; // 0.70711  // tree-height:  6
     NT e_ef68d0 = e_f4c120 + e_f45718; // -8.70711  // tree-height:  8
     NT e_f6c4f8 = e_ef68d0 * e_ec7990; // -0.10991  // tree-height:  9
     NT e_ed67b0 = e_f6c4b0 - e_f6c4f8; // 0.08836  // tree-height:  10
     NT e_f6c738 = e_ec77b0 * e_ed67b0; // 0.00112  // tree-height:  11
     NT e_ed68f0 = e_f6c6f0 - e_f6c738; // -4.92304e-17  // tree-height:  12
     NT e_f6c660 = e_ec7940 * e_ec77b0; // 0.00016  // tree-height:  3
     NT e_f6c6a8 = e_ec7760 * e_ec7990; // 0.00016  // tree-height:  3
     NT e_ed68a0 = e_f6c660 - e_f6c6a8; // 1.64101e-17  // tree-height:  4
     NT e_f4c1b0 = e_ed68f0 / e_ed68a0; // -3.00000  // tree-height:  13
     NT e_ed6990 = e_f4c1b0 - e_e49370; // 0.70711  // tree-height:  14
     NT e_fa6cf0 = e_ed6990 * e_ec7850; // -0.03449  // tree-height:  15
     NT e_f6c780 = e_ec7760 * e_ed67b0; // 0.00112  // tree-height:  11
     NT e_f6c7c8 = e_ec7940 * e_ed6850; // 0.00112  // tree-height:  11
     NT e_ed6940 = e_f6c780 - e_f6c7c8; // -6.56405e-17  // tree-height:  12
     NT e_f4c1f8 = e_ed6940 / e_ed68a0; // -4.00000  // tree-height:  13
     NT e_ed69e0 = e_f4c1f8 - e_e493b0; // 0.70711  // tree-height:  14
     NT e_fa6d38 = e_ed69e0 * e_ec78a0; // -0.04464  // tree-height:  15
     NT e_fdda90 = e_fa6cf0 + e_fa6d38; // -0.07913  // tree-height:  16
     NT e_f82fa0 = e_f36020 - e_fdda90; // 0.15891  // tree-height:  17
     NT e_f533e0 = e_fdd9f0 / e_f82fa0; // 0.49770  // tree-height:  18


     NT e_e4bb70 = NT("-37440590959507967/1000000000000" ZEROES); // -3.74406  // tree-height:  1
     NT e_e4baf0 = NT("-4670064590775217/125000000000" ZEROES); // -3.73605  // tree-height:  1
     NT e_f82320 = e_e4bb70 - e_e4baf0; // -0.00801  // tree-height:  2
     NT e_e4ba70 = NT("-3727481491980763/100000000000" ZEROES); // -3.72748  // tree-height:  1
     NT e_ec8d40 = e_e4baf0 - e_e4ba70; // -0.00857  // tree-height:  2
     NT e_ec8e30 = e_e4bb70 - e_e4baf0; // -0.00801  // tree-height:  2
     NT e_e4bb30 = NT("-33230471551108343/1000000000000" ZEROES); // -3.32305  // tree-height:  1
     NT e_e4bbb0 = NT("-1665823867386329/50000000000" ZEROES); // -3.33165  // tree-height:  1
     NT e_ec8de0 = e_e4bb30 - e_e4bbb0; // 0.00860  // tree-height:  2
     NT e_f273d0 = - e_ec8de0; // -0.00860  // tree-height:  3
     NT e_ee10e0 = e_ec8de0 * e_ec8de0; // 0.00007  // tree-height:  3
     NT e_ee1128 = e_ec8e30 * e_ec8e30; // 0.00006  // tree-height:  3
     NT e_eeb7f0 = e_ee10e0 + e_ee1128; // 0.00014  // tree-height:  4
     NT e_f347a0 = CGAL::sqrt(e_eeb7f0); // 0.01175  // tree-height:  5
     NT e_f46330 = e_ec8de0 / e_f347a0; // 0.73189  // tree-height:  6
     NT e_ef9e40 = e_111111 + e_f46330; // 1.73189  // tree-height:  7
     NT e_f31150 = - e_ec8de0; // -0.00860  // tree-height:  3
     NT e_f71880 = e_ef9e40 * e_f31150; // -0.01490  // tree-height:  8
     NT e_f27390 = - e_e4baf0; // 3.73605  // tree-height:  2
     NT e_ee1050 = e_f27390 * e_ec8de0; // 0.03213  // tree-height:  3
     NT e_ee1098 = e_e4bb30 * e_ec8e30; // 0.02661  // tree-height:  3
     NT e_ec8e80 = e_ee1050 - e_ee1098; // 0.00552  // tree-height:  4
     NT e_ef9df0 = e_ec8de0 + e_ec8e80; // 0.01412  // tree-height:  5
     NT e_f31110 = - e_ef9df0; // -0.01412  // tree-height:  6
     NT e_f4d908 = e_f31110 / e_ec8e30; // 1.76383  // tree-height:  7
     NT e_f46378 = e_ec8e30 / e_f347a0; // -0.68142  // tree-height:  6
     NT e_ef9e90 = e_f4d908 + e_f46378; // 1.08241  // tree-height:  8
     NT e_f718c8 = e_ef9e90 * e_ec8e30; // -0.00867  // tree-height:  9
     NT e_f758f0 = e_f71880 - e_f718c8; // -0.00623  // tree-height:  10
     NT e_f719a0 = e_ec8d40 * e_f758f0; // 0.00005  // tree-height:  11
     NT e_e4bab0 = NT("-33327875678154193/1000000000000" ZEROES); // -3.33279  // tree-height:  1
     NT e_ec8cf0 = e_e4bab0 - e_e4bb30; // -0.00974  // tree-height:  2
     NT e_f27310 = - e_ec8cf0; // 0.00974  // tree-height:  3
     NT e_ee0f30 = e_ec8cf0 * e_ec8cf0; // 0.00009  // tree-height:  3
     NT e_ee0f78 = e_ec8d40 * e_ec8d40; // 0.00007  // tree-height:  3
     NT e_eeb7a0 = e_ee0f30 + e_ee0f78; // 0.00017  // tree-height:  4
     NT e_f34760 = CGAL::sqrt(e_eeb7a0); // 0.01297  // tree-height:  5
     NT e_f462a0 = e_ec8cf0 / e_f34760; // -0.75077  // tree-height:  6
     NT e_ef9d00 = e_111111 + e_f462a0; // 0.24923  // tree-height:  7
     NT e_f31090 = - e_ec8cf0; // 0.00974  // tree-height:  3
     NT e_f71760 = e_ef9d00 * e_f31090; // 0.00243  // tree-height:  8
     NT e_f272d0 = - e_e4ba70; // 3.72748  // tree-height:  2
     NT e_ee0ea0 = e_f272d0 * e_ec8cf0; // -0.03631  // tree-height:  3
     NT e_ee0ee8 = e_e4bab0 * e_ec8d40; // 0.02856  // tree-height:  3
     NT e_ec8d90 = e_ee0ea0 - e_ee0ee8; // -0.06487  // tree-height:  4
     NT e_ef9cb0 = e_ec8cf0 + e_ec8d90; // -0.07461  // tree-height:  5
     NT e_f31050 = - e_ef9cb0; // 0.07461  // tree-height:  6
     NT e_f4d8c0 = e_f31050 / e_ec8d40; // -8.70579  // tree-height:  7
     NT e_f462e8 = e_ec8d40 / e_f34760; // -0.66057  // tree-height:  6
     NT e_ef9d50 = e_f4d8c0 + e_f462e8; // -9.36636  // tree-height:  8
     NT e_f717a8 = e_ef9d50 * e_ec8d40; // 0.08027  // tree-height:  9
     NT e_f75850 = e_f71760 - e_f717a8; // -0.07784  // tree-height:  10
     NT e_f719e8 = e_ec8e30 * e_f75850; // 0.00062  // tree-height:  11
     NT e_f75990 = e_f719a0 - e_f719e8; // -0.00057  // tree-height:  12
     NT e_f71910 = e_ec8cf0 * e_ec8e30; // 0.00008  // tree-height:  3
     NT e_f71958 = e_ec8de0 * e_ec8d40; // -0.00007  // tree-height:  3
     NT e_f75940 = e_f71910 - e_f71958; // 0.00015  // tree-height:  4
     NT e_f4d950 = e_f75990 / e_f75940; // -3.75701  // tree-height:  13
     NT e_f75a30 = e_f4d950 - e_e4baf0; // -0.02095  // tree-height:  14
     NT e_e4bbf0 = NT("-941860013189427/25000000000" ZEROES); // -3.76744  // tree-height:  1
     NT e_ec8c50 = e_e4bbf0 - e_e4bb70; // -0.02338  // tree-height:  2
     NT e_e4bc30 = NT("-3358630797336759/100000000000" ZEROES); // -3.35863  // tree-height:  1
     NT e_ec8c00 = e_e4bbb0 - e_e4bc30; // 0.02698  // tree-height:  2
     NT e_f27250 = - e_ec8c00; // -0.02698  // tree-height:  3
     NT e_ee0d80 = e_ec8c00 * e_ec8c00; // 0.00073  // tree-height:  3
     NT e_ee0dc8 = e_ec8c50 * e_ec8c50; // 0.00055  // tree-height:  3
     NT e_eeb750 = e_ee0d80 + e_ee0dc8; // 0.00127  // tree-height:  4
     NT e_f34720 = CGAL::sqrt(e_eeb750); // 0.03570  // tree-height:  5
     NT e_f46210 = e_ec8c00 / e_f34720; // 0.75575  // tree-height:  6
     NT e_efa0c0 = e_111111 + e_f46210; // 1.75575  // tree-height:  7
     NT e_f312d0 = - e_ec8c00; // -0.02698  // tree-height:  3
     NT e_f71c70 = e_efa0c0 * e_f312d0; // -0.04738  // tree-height:  8
     NT e_f27210 = - e_e4bb70; // 3.74406  // tree-height:  2
     NT e_ee0cf0 = e_f27210 * e_ec8c00; // 0.10103  // tree-height:  3
     NT e_ee0d38 = e_e4bbb0 * e_ec8c50; // 0.07790  // tree-height:  3
     NT e_ec8ca0 = e_ee0cf0 - e_ee0d38; // 0.02313  // tree-height:  4
     NT e_efa070 = e_ec8c00 + e_ec8ca0; // 0.05011  // tree-height:  5
     NT e_f31290 = - e_efa070; // -0.05011  // tree-height:  6
     NT e_f4da28 = e_f31290 / e_ec8c50; // 2.14329  // tree-height:  7
     NT e_f46258 = e_ec8c50 / e_f34720; // -0.65486  // tree-height:  6
     NT e_efa110 = e_f4da28 + e_f46258; // 1.48843  // tree-height:  8
     NT e_f71cb8 = e_efa110 * e_ec8c50; // -0.03480  // tree-height:  9
     NT e_f75bc0 = e_f71c70 - e_f71cb8; // -0.01257  // tree-height:  10
     NT e_f71d90 = e_ec8e30 * e_f75bc0; // 0.00010  // tree-height:  11
     NT e_ef9f80 = e_111111 + e_f46330; // 1.73189  // tree-height:  7
     NT e_f31210 = - e_ec8de0; // -0.00860  // tree-height:  3
     NT e_f71b50 = e_ef9f80 * e_f31210; // -0.01490  // tree-height:  8
     NT e_ef9f30 = e_ec8de0 + e_ec8e80; // 0.01412  // tree-height:  5
     NT e_f311d0 = - e_ef9f30; // -0.01412  // tree-height:  6
     NT e_f4d9e0 = e_f311d0 / e_ec8e30; // 1.76383  // tree-height:  7
     NT e_ef9fd0 = e_f4d9e0 + e_f46378; // 1.08241  // tree-height:  8
     NT e_f71b98 = e_ef9fd0 * e_ec8e30; // -0.00867  // tree-height:  9
     NT e_f75b20 = e_f71b50 - e_f71b98; // -0.00623  // tree-height:  10
     NT e_f71dd8 = e_ec8c50 * e_f75b20; // 0.00015  // tree-height:  11
     NT e_f75c60 = e_f71d90 - e_f71dd8; // -0.00004  // tree-height:  12
     NT e_f71d00 = e_ec8de0 * e_ec8c50; // -0.00020  // tree-height:  3
     NT e_f71d48 = e_ec8c00 * e_ec8e30; // -0.00022  // tree-height:  3
     NT e_f75c10 = e_f71d00 - e_f71d48; // 0.00001  // tree-height:  4
     NT e_f4da70 = e_f75c60 / e_f75c10; // -3.00000  // tree-height:  13
     NT e_f75d00 = e_f4da70 - e_e4bb70; // 0.74406  // tree-height:  14
     NT e_f85570 = e_f75a30 - e_f75d00; // -0.76501  // tree-height:  15
     NT e_f54550 = e_f82320 / e_f85570; // 0.01047  // tree-height:  16


    NT v1 = e_f533e0;
    NT v2 = e_f54550;
    std::cout << "v1: " << v1 << std::endl;
    std::cout << "v2: " << v2 << std::endl;

    std::cout << "v1 < v2: " << (v1 < v2 ? "yes" : "no") << std::endl;
};




Archive powered by MHonArc 2.6.18.

Top of Page