Program: 150552
Project: 150552
Buggy source:
private void triangulateNoLocation(CameraView target){
  Vector3D_F64 arrowA=new Vector3D_F64();
  Vector3D_F64 arrowB=new Vector3D_F64();
  TriangulateTwoViewsCalibrated triangulator=FactoryMultiView.triangulateTwoGeometric();
  Se3_F64 otherToTarget=new Se3_F64();
  Se3_F64 worldToTarget=target.viewToWorld.invert(null);
  for (  CameraMotion c : target.connections) {
    boolean isSrc=c.viewSrc == target;
    CameraView other=c.destination(target);
    if (other.distanceFromRoot < 0)     continue;
    other.viewToWorld.concat(worldToTarget,otherToTarget);
    for (int i=0; i < c.features.size(); i++) {
      AssociatedIndex a=c.features.get(i);
      int indexTarget=isSrc ? a.src : a.dst;
      int indexOther=isSrc ? a.dst : a.src;
      if (target.features3D[indexTarget] != null || other.features3D[indexOther] != null)       continue;
      Point2D_F64 normOther=other.featureNorm.get(indexOther);
      Point2D_F64 normTarget=target.featureNorm.get(indexTarget);
      arrowA.set(normOther.x,normOther.y,1);
      arrowB.set(normTarget.x,normTarget.y,1);
      GeometryMath_F64.mult(otherToTarget.R,arrowA,arrowA);
      double angle=UtilVector3D_F64.acute(arrowA,arrowB);
      if (angle < TRIANGULATE_MIN_ANGLE)       continue;
      Feature3D f=new Feature3D();
      if (!triangulator.triangulate(normOther,normTarget,otherToTarget,f.worldPt))       continue;
      SePointOps_F64.transform(other.viewToWorld,f.worldPt,f.worldPt);
      f.views.add(target);
      f.views.add(other);
      f.feature.add(indexTarget);
      f.feature.add(indexOther);
      features3D.add(f);
      target.features3D[indexTarget]=f;
      other.features3D[indexOther]=f;
    }
  }
}

Fixed version (ground truth):
private void triangulateNoLocation(CameraView target){
  Vector3D_F64 arrowA=new Vector3D_F64();
  Vector3D_F64 arrowB=new Vector3D_F64();
  TriangulateTwoViewsCalibrated triangulator=FactoryMultiView.triangulateTwoGeometric();
  Se3_F64 otherToTarget=new Se3_F64();
  Se3_F64 worldToTarget=target.viewToWorld.invert(null);
  for (  CameraMotion c : target.connections) {
    boolean isSrc=c.viewSrc == target;
    CameraView other=c.destination(target);
    if (other.distanceFromRoot < 0)     continue;
    other.viewToWorld.concat(worldToTarget,otherToTarget);
    for (int i=0; i < c.features.size(); i++) {
      AssociatedIndex a=c.features.get(i);
      int indexTarget=isSrc ? a.src : a.dst;
      int indexOther=isSrc ? a.dst : a.src;
      if (target.features3D[indexTarget] != null || other.features3D[indexOther] != null)       continue;
      Point2D_F64 normOther=other.observationNorm.get(indexOther);
      Point2D_F64 normTarget=target.observationNorm.get(indexTarget);
      arrowA.set(normOther.x,normOther.y,1);
      arrowB.set(normTarget.x,normTarget.y,1);
      GeometryMath_F64.mult(otherToTarget.R,arrowA,arrowA);
      double angle=UtilVector3D_F64.acute(arrowA,arrowB);
      if (angle < TRIANGULATE_MIN_ANGLE)       continue;
      Feature3D f=new Feature3D();
      if (!triangulator.triangulate(normOther,normTarget,otherToTarget,f.worldPt))       continue;
      SePointOps_F64.transform(other.viewToWorld,f.worldPt,f.worldPt);
      f.views.add(target);
      f.views.add(other);
      f.obsIdx.add(indexTarget);
      f.obsIdx.add(indexOther);
      features3D.add(f);
      target.features3D[indexTarget]=f;
      other.features3D[indexOther]=f;
    }
  }
}