aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/functors
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2017-01-25 18:13:53 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2017-01-25 18:13:53 +0100
commit850ca961d28df99a0ba44bd8bf034ac08e39686e (patch)
treeb13edddb2b703365096c9c5ce3a50492dc81e8ec /Eigen/src/Core/functors
parent296d24be4dd3c700089d1d9182a843c60d68019c (diff)
bug #1383: fix regression in LinSpaced for integers and high<low
Diffstat (limited to 'Eigen/src/Core/functors')
-rw-r--r--Eigen/src/Core/functors/NullaryFunctors.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/Eigen/src/Core/functors/NullaryFunctors.h b/Eigen/src/Core/functors/NullaryFunctors.h
index 60c5f7f2a..6a30466fb 100644
--- a/Eigen/src/Core/functors/NullaryFunctors.h
+++ b/Eigen/src/Core/functors/NullaryFunctors.h
@@ -93,8 +93,8 @@ struct linspaced_op_impl<Scalar,Packet,/*IsInteger*/true>
linspaced_op_impl(const Scalar& low, const Scalar& high, Index num_steps) :
m_low(low),
m_multiplier((high-low)/convert_index<Scalar>(num_steps<=1 ? 1 : num_steps-1)),
- m_divisor(convert_index<Scalar>(num_steps+high-low)/((high-low+1)==0?1:(high-low+1))),
- m_use_divisor((high+1)<(low+num_steps))
+ m_divisor(convert_index<Scalar>((high>=low?num_steps:-num_steps)+(high-low))/((numext::abs(high-low)+1)==0?1:(numext::abs(high-low)+1))),
+ m_use_divisor(num_steps>1 && (numext::abs(high-low)+1)<num_steps)
{}
template<typename IndexType>