Andreas Fabri
1ba311a602
Prefix macro with CORE_
2022-10-27 10:41:13 +01:00
Sébastien Loriot
e82ae363b3
take CORE into account in Boost mp's arithmetic kernel
2022-10-27 11:40:34 +02:00
Andreas Fabri
27ca0dfb03
BigInt and BigRep are no longer real CORE storage
2022-10-27 09:35:47 +01:00
Andreas Fabri
e98692d8b8
WIP: Replace CORE::BigInt and BigRat with the boost::mp classes. Just typedef
2022-10-25 15:32:26 +01:00
Andreas Fabri
b32d1f0023
Merge branch 'master' into CORE-boost_mp_number-GF
2022-10-21 13:27:48 +01:00
albert-github
81d78f7969
Some obvious missing quotes and typos
...
Some obvious missing quotes and typos
2022-09-24 18:47:33 +02:00
Sébastien Loriot
32e89c1b91
add assertions
2022-06-02 15:56:08 +02:00
Sébastien Loriot
ee0ec71857
add a template version of the constructor
2022-06-02 15:55:57 +02:00
Sebastien Loriot
65b10f226a
fix function
...
Co-authored-by: Marc Glisse <marc.glisse@inria.fr>
2022-06-01 20:16:45 +02:00
Laurent Rineau
370217ad28
Merge pull request #6131 from lrineau/CGAL_Core-fix_header_only-GF
...
CGAL Core: Remove explicit instanciations: CGAL is header-only!
2021-11-23 15:39:26 +01:00
Laurent Rineau
a8dbdc3b06
Remove explicit instanciations: CGAL is header-only!
2021-11-16 16:46:52 +01:00
Sébastien Loriot
6680a6e6f9
constructing a string from nullptr is undefined behavior
2021-11-09 16:20:48 +01:00
Sébastien Loriot
4ede33059b
add a switch for the gmp backend
2021-10-14 15:14:38 +02:00
Andreas Fabri
64a64e1a8a
Add a makeCopy()
2021-10-13 23:11:56 +01:00
Andreas Fabri
f13e14994c
I think we must call abs(); Someone has to check
2021-10-12 15:50:41 +01:00
Andreas Fabri
74040d9d10
msb(BigInt) is only defined for i > 0
2021-10-12 15:49:26 +01:00
Andreas Fabri
ef4b0ca154
Add implementations; Fix getBinExpo() for zero
2021-10-12 10:06:23 +01:00
Andreas Fabri
a7b0b30028
Add an assert()
2021-10-12 09:17:52 +01:00
Sébastien Loriot
ed41c475f4
remove TWS
2021-10-12 09:07:47 +02:00
Sebastien Loriot
112b633ad6
add tmp assertions
2021-10-11 17:16:04 +02:00
Sébastien Loriot
e2f38514ce
revert changes
2021-10-11 17:14:05 +02:00
Sébastien Loriot
b93c2ce96a
fixes while doing a review
2021-10-11 17:12:16 +02:00
Sébastien Loriot
dc93a3eccd
fix include
2021-10-11 15:40:14 +02:00
Andreas Fabri
945ba57bc1
lsb works ony on positive numbers
2021-10-11 14:39:17 +01:00
Andreas Fabri
b801aaa8fe
Fix getKaryExpo()
2021-10-07 18:26:17 +01:00
Andreas Fabri
f5367709ad
Use boost::multiprecision::number API (WIP)
2021-10-07 17:29:09 +01:00
Mael Rouxel-Labbé
625848e629
Fix missing ':' in various namespaces
2021-10-04 13:21:47 +02:00
Andreas Fabri
a5a3ffb654
Remove unused variable
2021-09-23 17:00:09 +02:00
Andreas Fabri
0f5ef1065a
Use std::to_string() instead of sprinf()
2021-09-23 17:00:09 +02:00
Andreas Fabri
b6e2656389
Use std::string in CORE_Expr and CORE_Bigfloat
2021-09-23 17:00:03 +02:00
Andreas Fabri
6a2958bdd7
Update BigFloat_impl.h
2021-09-15 11:36:35 +02:00
Laurent Rineau
59a0da4f13
Merge pull request #5692 from maxGimeno/CGAL_cpp11_atomic_and_threads-maxGimeno
...
CGAL:: Use std atomic and threads
# Conflicts:
# Arrangement_on_surface_2/include/CGAL/Arr_counting_traits_2.h
2021-05-19 17:23:53 +02:00
Maxime Gimeno
3e03d50b8a
replace usages of CGAL::cpp11::atomic and thread by std:: calls
2021-05-07 11:10:30 +02:00
Maxime Gimeno
e9b7595fff
Deprecate CGAL headers for threads, atomic and result_of, and move their content to config.h as fallback
2021-05-07 11:09:24 +02:00
Ahmed Essam
12fd01defd
Fix eating extra whitespace in CORE::BigRat
2020-09-21 08:54:29 +02:00
Ahmed Essam
6d949cd14f
Fix bug with self intersecting bezier curves
2020-08-08 17:29:55 +02:00
Laurent Rineau
10e99cb400
Untabify: I wrote init_CORE() in MS devenv
2020-07-22 09:51:07 +02:00
Laurent Rineau
642078f65d
Missing #include <CGAL/use.h>
2020-07-22 09:47:43 +02:00
Laurent Rineau
8a7d3fa21e
CGAL_Core no longer needs Boost.Thread
2020-07-21 17:32:30 +02:00
Laurent Rineau
bd172e5aa4
Call init_CORE() before any thread_local CORE static variables
...
The reason is actually simple:
- `ExprRep::approx` may have to create a `Real` variable of a `double`,
- that variable needs `MemoryPool<RealDouble>`.
If, for example, `Expr::getZero()` is called first, then the static
variable representing that zero is created first, and will be
destroyed last.
But if, during the computation, CORE needs to call `approx` on that
zero, then the `MemoryPool<RealDouble>` is created. At the end of the
program execution, at the destruction of static variables, the static
variable for `MemoryPool<RealDouble>` is destroyed. The static
variable of `Expr::getZero()` is destroyed last. ... But, as its
`approx` function was called, the destructor of that variable may need
`MemoryPool<RealDouble>` to call `free`, but that pool has already
been destroyed!
The function `init_CORE()`, if called *before* any thread-local local
static variable is created, ensured that `MemoryPool<RealDouble>` is
created first, and then destroyed last during the execution of the
program (or thread).
2020-07-21 17:15:45 +02:00
Sébastien Loriot
6c94c1501e
Merge remote-tracking branch 'cgal/releases/CGAL-4.14-branch'
2020-05-05 14:40:55 +02:00
Sébastien Loriot
0ebe5350db
fix interval
...
Fix suggested by Stefan Schirra following recommendation in Stefan Funke's Diplomarbeit
2020-04-30 11:12:12 +02:00
Maxime Gimeno
627a7b29be
Fix warnings
2020-04-27 17:20:50 +02:00
Sébastien Loriot
0779373835
extra run of the script to remove tabs and trailing whitespaces
...
right after the merge of 4.14 release branch
+ manual fix on one line in:
* Arrangement_on_surface_2/include/CGAL/IO/Arr_text_formatter.h
* .travis/generate_travis.sh
2020-03-26 14:16:06 +01:00
Sébastien Loriot
590612a563
run the script to remove tabs and trailing whitespaces
2020-03-26 13:25:16 +01:00
Sébastien Loriot
26fb266410
Remove license notice in CORE headers
...
also fix some SPDX tags
2019-10-19 16:28:33 +02:00
Sébastien Loriot
9bd9c68b83
update LGPL[23]+ and GPL[23]+ SPDX tags
...
ack -l --no-svg "SPDX-License-Identifier: GPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-3.0+/SPDX-License-Identifier: GPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-3.0+/SPDX-License-Identifier: LGPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: GPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-2.0+/SPDX-License-Identifier: GPL-2.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-2.0+/SPDX-License-Identifier: LGPL-2.0-or-later/"
2019-10-18 21:57:54 +02:00
Laurent Rineau
d3b9d89596
Merge pull request #4013 from lrineau/CGAL_Core-no_need_for_Boost.Thread-GF
...
Remove the need for Boost.Thread (but for CGAL_Core and gcc<9.1)
2019-07-10 14:22:53 +02:00
Laurent Rineau
c0ba28f80a
Merge branch 'releases/CGAL-4.14-branch'
2019-07-03 11:18:20 +02:00
Laurent Rineau
e79bfd5d03
Merge branch 'releases/CGAL-4.13-branch' into releases/CGAL-4.14-branch
2019-07-03 11:10:03 +02:00
Laurent Rineau
dca6b5c19e
Strange patch that fixes the remaining bugs
...
https://github.com/CGAL/cgal/pull/4013#issuecomment-507291311
Because of two constructions in Algebraic_curve_kernel_2 and
Hyperbolic_octagon_translation, the assertion "!blocks.empty()" from
`<CGAL/CORE/MemoryPool.h>` was triggered during the destruction of
thread-local objects.
This strange patch ensures that the order of creation of thread-local
object is right, so the order of destruction is right as well.
2019-07-02 10:53:09 +02:00
Laurent Rineau
9eed06477d
Use the function-local thread_local memPool, but for gcc<9.1
2019-06-26 15:52:39 +02:00
Laurent Rineau
aa0a9c848d
Remove 'using namespace std' from namespaces
2019-06-26 15:16:36 +02:00
Laurent Rineau
2ce7800239
Unfortunately gcc < 9.1 has bug with thread_local that impact CGAL
2019-06-24 14:27:20 +02:00
Laurent Rineau
e260ea1dd4
C++11: remove the need for Boost.Thread, even with CGAL_Core
2019-06-18 15:06:23 +02:00
Andreas Fabri
4581f1b7a8
Morte replacements
2019-06-05 08:39:55 +02:00
Mael Rouxel-Labbé
2848158354
Fix typos
2019-05-20 08:54:04 +02:00
Laurent Rineau
90782d4b7f
Revert the merge of two pull-requests that target CGAL-4.14-branch
...
- Revert "Merge pull request #3857 from MaelRL/CGAL-Fix_duplicate_non_manifold_vertices-GF"
- Revert "Merge pull request #3898 from lrineau/Mesh_3-stop_during_protection-lrineau"
2019-05-14 17:50:45 +02:00
Laurent Rineau
8e872081fc
Merge pull request #3898 from lrineau/Mesh_3-stop_during_protection-lrineau
...
Mesh_3 `Protect_edges_sizing_field`: handle the `stop` Boolean
# Conflicts:
# .travis/build_package.sh
# Installation/cmake/modules/CGALConfig_binary.cmake.in
# Installation/cmake/modules/CGALConfig_install.cmake.in
# Installation/cmake/modules/CGAL_SetupCGAL_CoreDependencies.cmake
# Installation/lib/cmake/CGAL/CGALConfig.cmake
# Polygon_mesh_processing/include/CGAL/Polygon_mesh_slicer.h
# Polyhedron/demo/Polyhedron/Plugins/Classification/CMakeLists.txt
# Polyhedron/demo/Polyhedron/Plugins/Mesh_3/CMakeLists.txt
2019-05-14 16:18:24 +02:00
Laurent Rineau
870ff45168
Merge pull request #3886 from lrineau/CGAL-Adapt_to_Boost_1.70-GF
...
Adapt to Boost 1.70
2019-05-07 15:48:03 +02:00
Laurent Rineau
aebb058b58
Merge pull request #3886 from lrineau/CGAL-Adapt_to_Boost_1.70-GF
...
Adapt to Boost 1.70
2019-05-07 15:45:00 +02:00
Laurent Rineau
5e65027d46
I did not know clang defines __GNUC__
...
The patch now uses `BOOST_GCC`, to avoid including clang in the
conditional.
2019-04-29 09:52:14 +02:00
Sébastien Loriot
5bac189dc3
remove cpp11 workaround for CORE
2019-03-29 10:41:50 +01:00
Andreas Fabri
f1e1b57fa4
Remove call of setprecision() as it has no effect
2019-01-31 19:00:14 +01:00
Sébastien Loriot
cbe02d40e7
rename ilogb macro
2018-11-06 10:59:54 +01:00
Laurent Rineau
2d7dcb0c39
Merge pull request #3166 from sloriot/Core-bigfloat_from_ui
...
Add missing constructor for unsigned int
2018-06-14 17:36:49 +02:00
Sébastien Loriot
7511b3e1b2
add missing constructor for unsigned int
2018-06-12 12:59:51 +02:00
Sébastien Loriot
ef09d971e2
undo unwanted change in 777d305
2018-06-11 22:09:37 +02:00
Andreas Fabri
777d3057d9
Undef the macros at the end, as they are not identical (one has an EXPORT)
2018-05-23 11:48:58 +02:00
Andreas Fabri
b33ab791e1
Disable a warning. Fix an allocator call
2018-05-15 15:37:51 +02:00
Laurent Rineau
78e7060525
Merge pull request #2712 from afabri/CGAL-VC+warnlevel_4-GF
...
Deal with VC++ warnings of level /W4
2018-02-19 14:27:06 +01:00
Andreas Fabri
d38fea5ffe
Add missing #include
2018-02-12 09:44:10 +00:00
Andreas Fabri
abe933a684
Address the warning concerning SCL_SECURE for VC++
2018-02-09 15:00:14 +00:00
Andreas Fabri
c9728abdee
build CORE lib without warnings
2018-02-01 10:52:44 +00:00
Andreas Fabri
6cc385c6ec
Number_types
2018-01-17 15:47:18 +00:00
Andreas Fabri
cbf3a16471
libs compile without warning
2018-01-17 15:02:32 +00:00
Laurent Rineau
3c6640bf59
Merge pull request #1436 from lrineau/CGAL-new_cmake-GF
...
Renewal of CMake scripts: header-only, ctest, CMake>=3.1
# Conflicts:
# Installation/config/testfiles/CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.cpp
2017-12-05 18:20:05 +01:00
Laurent Rineau
26fe3df693
Try to fix link errors on Windows
2017-11-29 11:22:30 +01:00
Laurent Rineau
bfc654c929
Change the exports of CGAL_Core, to fix a link error
2017-11-28 17:59:18 +01:00
Sébastien Loriot
8cdfad0d08
add missing URL and Id tags
2017-11-15 22:58:57 +01:00
Sébastien Loriot
6b568a8f62
add SPDX identifiers for Core
2017-11-12 10:21:35 +01:00
Sébastien Loriot
0698f79aff
add SPDX identifier for files under the LGPL-3+ license
2017-11-12 10:17:50 +01:00
Laurent Rineau
8dfa4f4dc8
Fix link error of demo/Polyhedron, in Debug and CGAL_HEADER_ONLY
2017-07-27 17:28:21 +02:00
Andreas Fabri
cc3c4c93ba
CGAL_Core: make it less verbose to fix #1915
2017-04-03 12:36:43 +02:00
Laurent Rineau
6d79ebdaf8
Merge pull request #1916 from sloriot/Core-bug_fix_large_MSB
...
Fix Expr computation when a Node in the tree has a large MSB bound
2017-02-21 17:50:21 +01:00
Laurent Rineau
784ce69bea
Merge pull request #1923 from sloriot/CORE-Expr_approx_bound
...
Make sure the approximation exceeds the separation bound
2017-02-21 17:50:08 +01:00
Sébastien Loriot
aab162e81c
use a thighter approximation
2017-02-21 17:30:24 +01:00
Sébastien Loriot
3dc5f7d800
make sure the approximation exceeds the separation bound
2017-02-21 17:12:56 +01:00
Sébastien Loriot
e9cfce4f45
Do the approximation computation even if MSB bounds are too large
...
extLong manages overflow and underflow, this patch forces the
approximation to be done even if the bounds are too large
2017-02-20 18:15:49 +01:00
Laurent Rineau
b73a88babc
CGAL_Core MemoryPool<T> will always use Boost.Thread with g++
...
Because of bug in gcc, even if the C++11 `thread_local` keyword can be
used, it cannot be used for the TLS static member of the class template
`MemoryPool<T>`. That triggers a bug in gcc (tested with g++ 6.3.1):
```
.../include/CGAL/CORE/MemoryPool.h:113:25: error: redefinition of 'bool __tls_guard'
MemoryPool<T, nObjects> MemoryPool<T, nObjects>::memPool;
^~~~~~~~~~~~~~~~~~~~~~~
.../include/CGAL/CORE/MemoryPool.h:113:25: note: 'bool __tls_guard' previously declared here
.../include/CGAL/CORE/MemoryPool.h:113: confused by earlier errors, bailing out
Preprocessed source stored into /tmp/cc4xCWuR.out file, please attach this to your bugreport.
```
The bug seems to be from g++ >= 5:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54948
2017-02-08 17:05:13 +01:00
Laurent Rineau
4e1b250b9c
Followup for PR #1744
...
The commit 6c77740485 was not complete:
> CORE MemoryPool<T> has to be destroyed last
>
> If Boost implementation of thread local storage is used, the order of
> destructors is reversed, compared to C++11 `static thread_local`. The
> solution for CORE `MemoryPool<T>` is to make the static variable a
> static member of the class, and initialize the pointer only inside the
> function. That ensures that the destructor will be called after the
> destructor of local static variables.
Actually the explanation about the reverse order is not right, and even
with C++ `thread_local`, we have to ensure that the static data member
of `MemoryPool<T>` is created before any other CORE static variable.
This commit is a followup of the commit
6c7774048521d2779d1657871f476624a46d220b: even in C++11, the `memPool`
variable becomes a thread-local data member, instead of a thread-local
variable at function scope.
Fix #1844 .
2017-02-07 14:18:32 +01:00
Laurent Rineau
ee21a5a077
Merge pull request #1744 from afabri/CORE-static-GF
...
CGAL_CORE: Make it thread safe
2017-01-12 11:10:38 +01:00
Laurent Rineau
6c77740485
CORE MemoryPool<T> has to be destroyed last
...
If Boost implementation of thread local storage is used, the order of
destructors is reversed, compared to C++11 `static thread_local`. The
solution for CORE `MemoryPool<T>` is to make the static variable a
static member of the class, and initialize the pointer only inside the
function. That ensures that the destructor will be called after the
destructor of local static variables.
2017-01-10 16:27:44 +01:00
Andreas Fabri
e869afa8af
bugfix
2017-01-10 14:09:27 +01:00
Andreas Fabri
7b6e4a27ca
Even read only static const variables must be thread local
...
as otherwise their destructor is called after the destructor
of the CORE memory pool.
2017-01-10 13:53:50 +01:00
Andreas Fabri
46c6ea1f3f
Deal with CGAL_NO_ATOMIC
2017-01-09 15:08:42 +01:00
Sébastien Loriot
e696a857f9
use direct initialization also in header-only mode
2017-01-09 15:08:42 +01:00
Sébastien Loriot
109f021a3a
use direct initialization
2017-01-09 15:08:42 +01:00
Andreas Fabri
185208646a
fixed and tested
2017-01-09 15:08:42 +01:00
Andreas Fabri
f1a39ef43f
No need for static
2017-01-09 15:08:42 +01:00