Commit Graph

3002 Commits

Author SHA1 Message Date
Adam Wulkiewicz
3507106295 Merge pull request #244 from mkaravel/fix/make_partition_work_for_forward_ranges
Fix: make partition work for forward ranges
2015-04-06 14:12:43 +02:00
Adam Wulkiewicz
2b11233f00 Merge pull request #264 from mkaravel/fix/remove_deprecated_include_paths
Fix: remove deprecated include paths
2015-04-06 01:32:39 +02:00
Adam Wulkiewicz
6da360ee70 Merge pull request #278 from awulkiew/fix/cs
Rename occurrences of CS in extensions.
2015-04-05 02:26:27 +02:00
Adam Wulkiewicz
5a611caee2 Merge pull request #269 from mkaravel/feature/support_for_fmod
Feature : support for fmod free function from within the math namespace
2015-04-05 01:46:19 +02:00
Adam Wulkiewicz
5d714f94e2 [index][doc] Improve the description of iterator and query related functions.
Add info about the iterator category.
Add more examples.
Add missing doxygen groups for free functions.
2015-04-04 19:53:34 +02:00
Adam Wulkiewicz
34066a4796 [index] Add begin() and end() functions returning const_iterator to the rtree.
Adapt the rtree to the Boost.Range concept.
Tweek the description of functions.
2015-04-04 18:21:52 +02:00
Adam Wulkiewicz
7277f1f38b [index] Upgrade the category of query iterators to ForwardIterator. 2015-04-04 18:21:12 +02:00
Adam Wulkiewicz
5a3b023fc8 [extensions][projections] Rename CS constants to CS_ (and CN to CN_ for consistency). 2015-04-02 03:24:00 +02:00
Adam Wulkiewicz
9c7659c955 [extensions][gis][strategies] Rename CS template parameter to CoordinateSystem. 2015-04-02 03:23:11 +02:00
Menelaos Karavelas
7658231aa4 Merge branch 'develop' of https://github.com/boostorg/geometry into fix/remove_deprecated_include_paths
Conflicts:
	test/algorithms/set_operations/difference/difference.cpp
2015-03-31 14:30:04 +03: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
bf96857a46 [util][math][mod] rename math::fmod() to math::mod() (more generic and descriptive name);
fix/update inline doc and comments; add default value to IsIntegral
template parameter of modulo_for_fundamental struct;
2015-03-16 12:09:36 +02: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
5de5e93780 [util][math][fmod] add support for calls to fmod: for fundamental
floating-point numbers it calls std::fmod; for fundamental integral
numbers it calls operator%; for user defined number types the free
function fmod is called (lookup is activated in the global namespace,
the std namespace and the type's namespace);
2015-03-13 12:31:07 +02:00
Menelaos Karavelas
4940d8d669 [extensions][ttmath] add support for fmod free function 2015-03-13 12:22:57 +02:00