Positive diagonal check
This commit is contained in:
parent
4f34c6a95b
commit
bc90c4f30e
@ -189,13 +189,13 @@ static void b3SolveMPCG(b3DenseVec3& x,
|
|||||||
// Sylvester Criterion to ensure PD-ness
|
// Sylvester Criterion to ensure PD-ness
|
||||||
B3_ASSERT(b3Det(a.x, a.y, a.z) > 0.0f);
|
B3_ASSERT(b3Det(a.x, a.y, a.z) > 0.0f);
|
||||||
|
|
||||||
B3_ASSERT(a.x.x != 0.0f);
|
B3_ASSERT(a.x.x > 0.0f);
|
||||||
float32 xx = 1.0f / a.x.x;
|
float32 xx = 1.0f / a.x.x;
|
||||||
|
|
||||||
B3_ASSERT(a.y.y != 0.0f);
|
B3_ASSERT(a.y.y > 0.0f);
|
||||||
float32 yy = 1.0f / a.y.y;
|
float32 yy = 1.0f / a.y.y;
|
||||||
|
|
||||||
B3_ASSERT(a.z.z != 0.0f);
|
B3_ASSERT(a.z.z > 0.0f);
|
||||||
float32 zz = 1.0f / a.z.z;
|
float32 zz = 1.0f / a.z.z;
|
||||||
|
|
||||||
inv_P[i] = b3Diagonal(xx, yy, zz);
|
inv_P[i] = b3Diagonal(xx, yy, zz);
|
||||||
|
@ -110,13 +110,13 @@ static void b3SolveMPCG(b3DenseVec3& x,
|
|||||||
// Sylvester Criterion to ensure PD-ness
|
// Sylvester Criterion to ensure PD-ness
|
||||||
B3_ASSERT(b3Det(a.x, a.y, a.z) > 0.0f);
|
B3_ASSERT(b3Det(a.x, a.y, a.z) > 0.0f);
|
||||||
|
|
||||||
B3_ASSERT(a.x.x != 0.0f);
|
B3_ASSERT(a.x.x > 0.0f);
|
||||||
float32 xx = 1.0f / a.x.x;
|
float32 xx = 1.0f / a.x.x;
|
||||||
|
|
||||||
B3_ASSERT(a.y.y != 0.0f);
|
B3_ASSERT(a.y.y > 0.0f);
|
||||||
float32 yy = 1.0f / a.y.y;
|
float32 yy = 1.0f / a.y.y;
|
||||||
|
|
||||||
B3_ASSERT(a.z.z != 0.0f);
|
B3_ASSERT(a.z.z > 0.0f);
|
||||||
float32 zz = 1.0f / a.z.z;
|
float32 zz = 1.0f / a.z.z;
|
||||||
|
|
||||||
P[i] = b3Diagonal(a.x.x, a.y.y, a.z.z);
|
P[i] = b3Diagonal(a.x.x, a.y.y, a.z.z);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user