anchor.diff:  
     void update(double deltaT) {
       double force = -_sign * friction;
  -    particle.applyImpluse(force * deltaT);
  +    particle.applyImpulse(force * deltaT);
       if (particle.velocity.sign != _sign)
         particle.velocity = 0.0;
       super.update(deltaT);
  
positive.code: 
    void update(double deltaT) {
      particle.update(deltaT);
      // Note that we apply the impluse from gravity after updating the particle's
      // position so that we overestimate the distance traveled by the particle.
      // That ensures that we actually hit the edge of the box and don't wind up
      // reversing course.
      particle.applyImpluse(kGravity * slope * deltaT);
      box.confine(particle);
    }
  }
  
negative.code:   }
  
    void update(double deltaT) {
      particle.applyImpulse(spring.force * deltaT);
      particle.update(deltaT);
      _applyInvariants();
    }
  