예제 #1
0
void
LOCA::MultiContinuation::ExtendedGroup::projectToDraw(
			    const LOCA::MultiContinuation::ExtendedVector& x, 
			    double *px) const
{
  // first numParams components are the parameters
  for (int i=0; i<numParams; i++)
    px[i] = x.getScalar(i);

  // fill remaining solution components
  grpPtr->projectToDraw(*x.getXVec(), px+numParams);
}
예제 #2
0
void
LOCA::MultiContinuation::ExtendedGroup::scaleTangent()
{
  LOCA::MultiContinuation::ExtendedVector *v;

  scaledTangentMultiVec = tangentMultiVec;

  // Only scale the tangent if it is scalable
  if (predictor->isTangentScalable()) {

    for (int i=0; i<numParams; i++) {
      v = 
	dynamic_cast<LOCA::MultiContinuation::ExtendedVector*>(&scaledTangentMultiVec[i]);
      grpPtr->scaleVector(*(v->getXVec()));
      grpPtr->scaleVector(*(v->getXVec()));
    }

  }
}