Skip to content

Add a kernel that stores objects twice: with Intervals and Gmpq #4495

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 96 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
14f9859
Add a kernel that stores objects twice: with Intervals and Gmqq
afabri Jan 28, 2020
8851c28
tentative correct result_type
sloriot Jan 30, 2020
3055a97
Construct_vertex_2 passes
afabri Jan 30, 2020
998341c
Fix Intersect
afabri Jan 30, 2020
a225161
Deal with coordinate iterator. Can we really use the pointer to the p…
afabri Jan 30, 2020
fc9fd66
WIP for Aff_transformation
afabri Jan 30, 2020
87021e7
fix compilation issues
sloriot Jan 30, 2020
22d1965
move forward to the next error
sloriot Jan 30, 2020
b5e5b31
fix return type and use rep
sloriot Jan 30, 2020
f4c67db
update Getter to handle Rep + first get_first return type
sloriot Jan 30, 2020
3f5abf6
No sqrt if the ET has no sqrt
afabri Jan 30, 2020
a599eed
The testsuite compiles
afabri Jan 30, 2020
e4ba665
Fix Make_optional_variant
afabri Jan 31, 2020
39644f2
Rename template parameters
afabri Jan 31, 2020
bd5911f
More renaming
afabri Jan 31, 2020
e12be8c
WIP
afabri Jan 31, 2020
2490190
Fix compilation for some kernel objects
MaelRL Jan 31, 2020
feae9aa
Fix taking const& of variadic parameters, which prevents correct resu…
MaelRL Jan 31, 2020
b2ed3f8
Clean code
MaelRL Jan 31, 2020
2a97659
Remove the #if 0
afabri Feb 3, 2020
3863280
When we read a double from a stream we construct the interval from th…
afabri Feb 3, 2020
79a4180
Add static filter
afabri Feb 4, 2020
16b3381
This const& should probably be cherry-picked
afabri Feb 4, 2020
0fd3cbe
FRK may be Epeck -- WIP, as corefinement_union does not compile yet
afabri Feb 4, 2020
78ce6ad
WIP
afabri Feb 4, 2020
c58380b
Fix compilation
MaelRL Feb 4, 2020
46876c8
Use Static_filters to add static filtered predicates to Filtered_rati…
MaelRL Feb 4, 2020
68922fa
Make corefinement_union example work
afabri Feb 5, 2020
8c652e9
add example using a internal exact vertex point map
sloriot Feb 5, 2020
2e1df78
Output a double; Initialize interval from double
afabri Feb 5, 2020
e81b1a3
Use boost::small_vector
afabri Feb 5, 2020
6e6bb46
inline functions
afabri Feb 6, 2020
9a634f2
Put Parify in a namespace as it exists slightly different in Kernel_c…
afabri Feb 6, 2020
0118e27
Use timer
afabri Feb 7, 2020
cb6a4f6
Use Interval_nt<false> and not <true>
afabri Feb 10, 2020
3f445d8
Add support for latest MPFR
afabri Feb 13, 2020
374b105
Remove a template parameter
afabri Feb 14, 2020
70da4e3
Fix internal namespace
afabri Feb 14, 2020
7d55d01
Use Get_approx
afabri Mar 4, 2020
f7ad80a
Move #include to the right scope
afabri Mar 4, 2020
477436f
Add typedef
afabri Mar 4, 2020
9ed87ae
Do not use get_approx, but use Static_filtered_predicate
afabri Mar 5, 2020
cb98b28
Remove call to get_approx() in static filters
afabri Mar 5, 2020
482a102
WIP: get it working with boost::multiprecision::mpq_rational
afabri Mar 17, 2020
2ab8f34
Add a data set for simple.cpp. Note that in the first line is the nu…
afabri Mar 17, 2020
02ed403
WIP: I try to add an overload for Construct_point_3
afabri Mar 18, 2020
1c0851a
Partial compilation fix
MaelRL Mar 18, 2020
41068e0
Why does this not compile
afabri Mar 18, 2020
862b324
It must be Kernel_::Point_3 (thank you Mael)
afabri Mar 18, 2020
fa6eebc
Fix debug code
afabri Mar 19, 2020
abdc4d9
Construct interval directly from doubles
afabri Mar 20, 2020
5a9fc4c
Make the construction of the rational from the double lazy
afabri Mar 20, 2020
1af20a3
remove trailing comma
afabri Mar 25, 2020
47ec426
Update branch from master after trailing whitespaces and tabs removal
sloriot Mar 26, 2020
814c636
extra run of the script to remove tabs and trailing whitespaces
sloriot Mar 26, 2020
2a938e1
Merge branch 'Filtered_kernel-Filtered_rational_kernel-GF' of github.…
afabri Apr 7, 2020
7db7734
#ifdef the lazy construction of exact version
afabri Apr 7, 2020
647d107
Clean code (cosmetic only)
MaelRL Apr 9, 2020
5da5a0d
Re-organize DT3 benchmarks
MaelRL Apr 9, 2020
ded0a96
Re-enable some tests
MaelRL Apr 9, 2020
769af3b
Boolean must be mutable since approx()/exact() are const
MaelRL Apr 9, 2020
6e325ce
Fix compilation of FRK construct_point_3 when lazyness isn't used
MaelRL Apr 9, 2020
d4e195e
Do not automatically filter the kernel in Statics_filters_base
MaelRL Apr 9, 2020
4bce4af
Remove comments (it's better to use the interval)
MaelRL Apr 9, 2020
b68a73d
Fix Static_filters::collinear_3 being hidden behind the wrong macro
MaelRL Apr 9, 2020
1ccb00f
DT3 benchmark improvements
MaelRL Apr 9, 2020
75eb9a3
Fix FRK::FT is_valid() : must check if both NT valid + NT2 initialized
MaelRL Apr 9, 2020
babd91e
Add a remark about NT1 necessarily being an CGAL::Interval_nt
MaelRL Apr 9, 2020
724780f
"Is NT2 initialized"-Boolean must be mutable (FRK::FT)
MaelRL Apr 9, 2020
313c64d
Fix namespace of call of is_valid() in FRK::FT::is_valid()
MaelRL Apr 9, 2020
79e7717
Follow convention on '&' ('Type &var' to 'Type& var')
MaelRL Apr 9, 2020
2f374ce
Fix FRK::FT not constructing n2 from int/double (when not lazy)
MaelRL Apr 9, 2020
7885a51
Enforce that NT1 := Interval_nt<bool>
MaelRL Apr 9, 2020
d31e283
Fix constructor FRK::FT(NT2) to avoid ambiguities
MaelRL Apr 9, 2020
7041e29
Fix initializing interval with not-yet initialized n2 member
MaelRL Apr 9, 2020
2070372
WIP on making FRK.cpp with Core::Expr
MaelRL Apr 9, 2020
709abfc
Fix namespace usage
MaelRL Apr 13, 2020
dfaf5fb
Restore old static filtering mechanisms:
MaelRL Apr 14, 2020
8834724
Compare the interval directly to the exact value in FR::is_valid
MaelRL Apr 14, 2020
9af7ebc
Change FR::is_finite from is_finite<n1> to is_finite<n2>
MaelRL Apr 14, 2020
83b832d
Fix Filtered_rational's category: it cannot be stronger than Interval…
MaelRL Apr 14, 2020
47634ae
Use macro CGAL_Kernel_obj to define FRK's objects
MaelRL Apr 14, 2020
e057ab2
Misc cleaning
MaelRL Apr 14, 2020
97b34bf
Relax a bit assertion for mpq (operation is part of the type)
MaelRL Apr 14, 2020
6db362b
Replace hardcoded Gmpq with Exact_field_selector
MaelRL Apr 14, 2020
53b581d
Also put a shortcut for Construct_point_2 in FRK (to avoid useless co…
MaelRL Apr 14, 2020
25eb007
Re-add automatically filtering kernels when calling static_filters
MaelRL Apr 14, 2020
7818334
Add a mutex
afabri Apr 16, 2020
fb69000
Rule of 5 for FR and FRK::Approximation_pair (due to mutex member)
MaelRL Apr 16, 2020
fa2c6dc
Make mutex mutable
MaelRL Apr 16, 2020
7d93d8c
Clean namespace for FRK (hide a lot of stuff behind frk::internal)
MaelRL Apr 17, 2020
1ac5405
Fix expecting the number of vertices at the top of .xyz
MaelRL Apr 17, 2020
24dbb53
Merge remote-tracking branch 'cgal/master' into Filtered_kernel-Filte…
MaelRL Apr 29, 2020
12ddeed
Remove trailing whitespace
MaelRL Apr 29, 2020
2e1b5af
Simplify to_interval(Filtered_rational)
MaelRL Apr 29, 2020
655ae08
Merge remote-tracking branch 'cgal/master' into Filtered_kernel-Filte…
MaelRL Apr 29, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions BGL/include/CGAL/boost/graph/Euler_operations.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
#include <stdexcept>

#include <boost/graph/graph_traits.hpp>
#include <boost/container/small_vector.hpp>

#include <CGAL/boost/graph/properties.h>

#include <CGAL/assertions.h>
Expand Down Expand Up @@ -614,9 +616,8 @@ add_face(const VertexRange& vr, Graph& g)
patch_start, patch_end;
// cache for set_next and vertex' set_halfedge
typedef std::pair<halfedge_descriptor, halfedge_descriptor> NextCacheEntry;
typedef std::vector<NextCacheEntry> NextCache;
typedef boost::container::small_vector<NextCacheEntry,12> NextCache;
NextCache next_cache;
next_cache.reserve(3 * n);

// re-link patches if necessary
for (unsigned int i = 0, ii = 1; i<n; ++i, ++ii, ii %= n)
Expand Down
15 changes: 8 additions & 7 deletions Filtered_kernel/include/CGAL/Filtered_kernel.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,11 +97,12 @@ template < typename CK >
struct Static_filters_base
: public internal::Static_filters< Filtered_kernel_base<CK> >
{
template < typename Kernel2 >
struct Base {
typedef typename CK::template Base<Kernel2>::Type CK2;
typedef Static_filters_base<CK2> Type;
};
template < typename Kernel2 >
struct Base
{
typedef typename CK::template Base<Kernel2>::Type CK2;
typedef Static_filters_base<CK2> Type;
};
};

#ifdef CGAL_NO_STATIC_FILTERS
Expand All @@ -112,14 +113,14 @@ template < typename CK, bool UseStaticFilters = true >
struct Filtered_kernel_adaptor
: public Filtered_kernel_base<CK>
{
enum { Has_static_filters = false };
enum { Has_static_filters = false };
};

template < typename CK >
struct Filtered_kernel_adaptor<CK, true>
: public Static_filters_base<CK>
{
enum { Has_static_filters = true };
enum { Has_static_filters = true };
};

// UseStaticFilters has a default value, depending on
Expand Down
Loading