return a value in a degenerate svd case
re-disable svd by default
This commit is contained in:
@@ -571,17 +571,18 @@ inline void singularValueDecomposition(
|
|||||||
*/
|
*/
|
||||||
inline btScalar wilkinsonShift(const btScalar a1, const btScalar b1, const btScalar a2)
|
inline btScalar wilkinsonShift(const btScalar a1, const btScalar b1, const btScalar a2)
|
||||||
{
|
{
|
||||||
btScalar d = (btScalar)0.5 * (a1 - a2);
|
btScalar d = (btScalar)0.5 * (a1 - a2);
|
||||||
btScalar bs = b1 * b1;
|
btScalar bs = b1 * b1;
|
||||||
btScalar val = d * d + bs;
|
btScalar val = d * d + bs;
|
||||||
if (val>SIMD_EPSILON)
|
if (val>SIMD_EPSILON)
|
||||||
{
|
{
|
||||||
btScalar denom = btFabs(d) + btSqrt(val);
|
btScalar denom = btFabs(d) + btSqrt(val);
|
||||||
|
|
||||||
btScalar mu = a2 - copySign(bs / (denom), d);
|
btScalar mu = a2 - copySign(bs / (denom), d);
|
||||||
// T mu = a2 - bs / ( d + sign_d*sqrt (d*d + bs));
|
// T mu = a2 - bs / ( d + sign_d*sqrt (d*d + bs));
|
||||||
return mu;
|
return mu;
|
||||||
}
|
}
|
||||||
|
return a2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user