I read K.Erlenben book <<Stable,Robust And Verstile>> Chapter 6 to learn the PGS in Bullet

When I see the src code in Bullet, I think the Result of the Equation is the Constraint Force Fc*deltaT = dP (delta Impulse).

But I can't understand the param 'Kcfm' in the formulation above,constraint force mixing,it's a diagonal matrix in vector form

Which paper is about 'Kcfm'?

**Code:**

void tbSequentialImpulseConstraintSolver::ResolveSingleConstraintRowLowerLimit(tbSolverBody& body1, tbSolverBody& body2, const tbSolverConstraint& c)

{

tbScalar deltaImpulse = c.m_rhs - tbScalar(c.m_appliedImpulse)*c.m_cfm;

const tbScalar deltaVel1Dotn = c.m_contactNormal.Dot(body1.m_deltaLinearVelocity) + c.m_relpos1CrossNormal.Dot(body1.m_deltaAngularVelocity);

const tbScalar deltaVel2Dotn = -c.m_contactNormal.Dot(body2.m_deltaLinearVelocity) + c.m_relpos2CrossNormal.Dot(body2.m_deltaAngularVelocity);

deltaImpulse -= deltaVel1Dotn*c.m_jacDiagABInv;

deltaImpulse -= deltaVel2Dotn*c.m_jacDiagABInv;

const tbScalar sum = tbScalar(c.m_appliedImpulse) + deltaImpulse;

if (sum < c.m_lowerLimit)

{

deltaImpulse = c.m_lowerLimit - c.m_appliedImpulse;

c.m_appliedImpulse = c.m_lowerLimit;

}

else

{

c.m_appliedImpulse = sum;

}

if (body1.m_invMass > tbScalar(0.))

body1.ApplyImpulse(c.m_contactNormal*body1.m_invMass, c.m_angularComponentA, deltaImpulse);

if (body2.m_invMass > tbScalar(0.))

body2.ApplyImpulse(-c.m_contactNormal*body2.m_invMass, c.m_angularComponentB, deltaImpulse);

}

**Code:**

tbScalar restitution = 0.f;

tbScalar positionalError = solverConstraint.m_rhs;//already filled in by getConstraintInfo2

tbScalar velocityError = restitution - rel_vel;// * damping;

tbScalar penetrationImpulse = positionalError*solverConstraint.m_jacDiagABInv;

tbScalar velocityImpulse = velocityError *solverConstraint.m_jacDiagABInv;

solverConstraint.m_rhs = penetrationImpulse + velocityImpulse;

solverConstraint.m_appliedImpulse = 0.f;

In the Formulation above,I'm clear about the posErr and velocityErr,But Berror doesn't have the param 'restitution',

so what's the meaning of 'restitution' and which paper is about it.