Adam Wulkiewicz
65fa7653ba
[algorithms][distance][is_valid] Explicitly get const iterators.
2015-04-08 14:18:40 +02:00
Adam Wulkiewicz
1113955b88
[algorithms][buffer] Explicitly get const random iterators. Use Range consistently.
2015-04-01 23:54:28 +02:00
Adam Wulkiewicz
2808beed3d
[algorithm][iterator] Avoid preincrementation of temporaries.
2015-04-01 23:52:01 +02:00
Menelaos Karavelas
494045809e
[util][promote integral] guard use of int128 and uint128 by the macro
...
BOOST_GEOMETRY_ENABLE_INT128
2015-03-30 17:43:08 +03:00
Barend Gehrels
32ccdc79eb
[minor] add const
2015-03-28 14:50:58 +01:00
Barend Gehrels
4be353a5e4
[minor] fix typo
2015-03-28 14:50:32 +01:00
Adam Wulkiewicz
d6ca52c90e
[util] Avoid conversion of negative number to unsigned (MSVC warning).
2015-03-28 02:46:21 +01:00
Menelaos Karavelas
7b515316e7
[util][promote integral] re-implement detail::promote_integral::bit_size<>
...
in a more type safe way; split the implementation of promote_integral<>
for (fundamental) integral and other types (non-integral or user-defined)
so that for those types the compilation is simpler/faster;
2015-03-28 03:16:35 +02:00
Menelaos Karavelas
e169f80ad3
[util][promote integral] update inline documentation; polish code;
...
measure all sizes in bits rather than a mixture of bits and bytes;
2015-03-28 01:30:07 +02:00
Menelaos Karavelas
af1a3da823
[util][promote integral] add support for unsigned long long and uint128
2015-03-27 22:45:49 +02:00
Menelaos Karavelas
88009aa38b
[util][promote integral] replace boost::integral_constant<std::size_t, Value>
...
by boost::mpl::size_t<Value> when possible (2 instances)
2015-03-27 14:18:23 +02:00
Menelaos Karavelas
74556828af
[util][promote integral] re-implement the mpl::list loop using MPL list iterators;
...
add support for unsigned integral numbers (including a template parameter that
indicates whether they should be promoted to signed or unsigned numbers);
be more precise on the (bit) sizes required for the promoted type;
2015-03-27 11:50:38 +02:00
Menelaos Karavelas
90c2c5f288
[policies][relate][intersection points] move calls to get<> out of down-cast
...
of promoted type to coordinate type
2015-03-27 11:27:27 +02:00
Menelaos Karavelas
2651afa92b
[util][promote integral] fix issue with boost::mpl::if_c not allowing
...
enum values as return types
2015-03-26 16:31:14 +02:00
Menelaos Karavelas
e0a0b8e3b1
[policies][relate][intersection_points] promote values to a larger integral
...
type in order to avoid overflow when computing the products:
ratio.numerator() * dx and ratio.numerator() * dy
This change fixes ticket #10835
2015-03-26 08:49:18 +02:00
Menelaos Karavelas
abbb664226
[util][promote integral] add meta-function promote_integral<T> that promotes
...
a fundamental integral type T to another integral type with at least twice
the size of T
2015-03-26 08:44:08 +02:00
Adam Wulkiewicz
57d55eb964
[index] Fix count() - access of destroyed temporary if convertible type passed.
2015-03-24 19:31:47 +01:00
Adam Wulkiewicz
0115da1dd3
[relate] Rename check() to more specific check_element() and check_matrix().
2015-03-24 01:23:08 +01:00
Adam Wulkiewicz
efeb592d80
[index][doc] Improve the rtree description.
2015-03-23 17:53:08 +01:00
Adam Wulkiewicz
bd7b7da000
[index][doc] Small docs improvements.
2015-03-23 17:27:14 +01:00
Adam Wulkiewicz
a6ad1be145
Merge pull request #268 from mkaravel/ext/ttmath_support_for_fmod
...
Extensions: add ttmath support for fmod
2015-03-22 17:51:03 +01:00
Menelaos Karavelas
aac92cbd93
[extensions][ttmath] rename fmod() free function to mod()
2015-03-22 17:11:36 +02:00
Adam Wulkiewicz
b80a462d04
Merge pull request #270 from mkaravel/ext/define_ttmath_big_missing_arithmetic_operators
...
Extensions: define ttmath big missing arithmetic operators
2015-03-22 15:12:20 +01:00
Adam Wulkiewicz
e8fafc942d
Merge pull request #272 from awulkiew/fix/cart_intersect2
...
Fix for cart_intersect and side_by_triangle - inconsistencies on MinGW and more (robustness)
2015-03-22 14:44:33 +01:00
Adam Wulkiewicz
d1358af447
Merge pull request #267 from awulkiew/fix/cart_intersect
...
[strategies][cart_intersect] Compare ratios denominators consistently.
2015-03-22 14:41:41 +01:00
Adam Wulkiewicz
d3f95f2cbb
[index][doc] Remove manually enabled doxygen code for details since now it should be automatically generated.
2015-03-20 03:42:13 +01:00
Adam Wulkiewicz
cc4ac4599d
[index][doc] Hide details in docs if DOXYGEN_NO_DETAIL is defined.
...
Change functions return types to unspecified.
Replace parameters defaults generated by functions/metafunctions with values.
Hide base classes.
2015-03-20 02:07:23 +01:00
Adam Wulkiewicz
b788a9e4ab
[index] Rename node_auto_ptr with subtree_destroyer and auto_deallocator with scoped_dealloactor.
2015-03-19 23:39:42 +01:00
Adam Wulkiewicz
4514e325f9
[index] Move predicates and operators into detail::predicates namespace.
...
In order to use the operators only for predicates.
2015-03-19 23:36:32 +01:00
Adam Wulkiewicz
0f4ce76449
[index] Replace std::auto_ptr with boost::scoped_ptr in query_iterator.
2015-03-19 23:35:20 +01:00
Adam Wulkiewicz
91fb7241e5
[index] Support move_iterator in packing algorithm.
2015-03-19 01:25:34 +01:00
Adam Wulkiewicz
6eb80018c6
[index][pack_create] Fix for iterators not returning true references.
...
Don't dereference iterators passed by the user in the expression where a
dereferenced value is passed into the translator/indexable-getter.
Without this fix if an iterator returns non-true reference (e.g. like
segment_iterator) and this reference is adapted to the Geometry concept
(like pointing_segment returned by segment_iterator) and the default
indexable<> getter is used (which returns a true reference), then a true
reference returned by it is a dangling reference corresponding to a
destroyed temporary object.
2015-03-17 02:49:54 +01:00
Adam Wulkiewicz
062a7abce9
[strategies][cart_intersect] Modify type of factor stored in the equals policy.
2015-03-16 17:26:20 +01:00
Adam Wulkiewicz
6098d419ba
[util][math] Fix equals policies return types.
...
To avoid returning reference to temporary object.
Add equals_factor_policy "empty" specialization for integral types.
2015-03-16 17:22:13 +01:00
Menelaos Karavelas
4230755b07
[extensions][ttmath] fix years in copyright header
2015-03-16 10:31:45 +02:00
Menelaos Karavelas
6dff815238
[extensions][ttmath] implement binary arithmetic operators for ttmath_big as free functions
2015-03-16 10:26:34 +02:00
Adam Wulkiewicz
f59f6fface
[strategies][side_by_triangle] Use equals() with policy.
...
Compare the floating-point results of determinant (denominators) using
the epsilon scaled by the greatest of the differences of coordinates of
the points passed into the determinant formula.
2015-03-14 04:03:02 +01:00
Adam Wulkiewicz
dbeb823fcb
[strategies][cart_intersect] Use equals() with policy.
...
Compare the floating-point results of cramer's rule (denominators) using the epsilon
scaled by the greatest of the differences of coordinates of the segments'
endpoints (the input of the determinant formula).
2015-03-14 03:55:44 +01:00
Adam Wulkiewicz
b5887efd5e
[math] Add/improve math utils.
...
Add the support for policy calculating epsilon factor in equals().
Add greatest() algorithm - max() equivalent taking more than 2 parameters.
Add specialization of abs() for floating-point numbers.
2015-03-14 03:52:02 +01:00
Menelaos Karavelas
7b4798231e
[extensions][ttmath] add missing arithmetic operators for ttmath_big:
...
unary and binary +, binary *, binary /;
these operators are needed so that the result of arithmetic operations
on objects of type ttmath_big is also of type ttmath_big (instead of
ttmath:Big<1,4> which is the base class for ttmath_big);
2015-03-14 01:51:04 +02:00
Menelaos Karavelas
4940d8d669
[extensions][ttmath] add support for fmod free function
2015-03-13 12:22:57 +02:00
Adam Wulkiewicz
ec6f9148cd
[strategies][cart_intersect] Compare ratios denominators consistently.
...
Compare both ratios' potential denominators, corresponding to both
segments. Furthermore, take into account the machine epsilon.
2015-03-12 23:03:27 +01:00
Adam Wulkiewicz
e5c40ca188
[buffer] Fix unused variable MSVC warning in analyse_turn_wrt_point_piece.
2015-03-11 03:56:04 +01:00
Adam Wulkiewicz
6828fd5bda
[policies] Fix unused parameter warnings in direction policy.
2015-03-11 03:54:42 +01:00
Adam Wulkiewicz
666837bcb9
[algorithms] Fix the type of returned Range/Ring in sub_range(Polygon).
2015-03-09 16:05:29 +01:00
Adam Wulkiewicz
731ea108d7
Merge pull request #252 from sdebionne/fix/range_reference
...
[range] Use range_reference
2015-03-09 12:58:59 +01:00
Samuel Debionne
d7aae45daf
[util][range] Use range_reference
...
Use range_reference to determine the return type of boost::at,
boost::front and boost::back.
2015-03-09 09:52:11 +01:00
Menelaos Karavelas
b3b95ae92b
[strategies][cartesian][buffer][join_round] protect std::max with parentheses
2015-03-08 20:56:02 +02:00
Menelaos Karavelas
ca45ee76ac
[strategies][cartesian][buffer][join_round] optimize expression
...
calculating number of interior points
2015-03-08 20:11:53 +02:00
Barend Gehrels
64ee58ed46
[buffer] Fix calculation of the number of points. For an angle of 125 or more,
...
no points in between were generated, which was erroneous.
Thanks to Menelaos for spotting and Adam for the calculation
This changes some of the unit test results, because in some cases a point in between
is generated now, creating a larger polygon
2015-03-08 18:08:43 +01:00