public void execute2(KahanObject in1,double in2){
  if (Double.isInfinite(in1._sum) || Double.isInfinite(in2)) {
    in1.set(Double.isInfinite(in2) ? in2 : in1._sum,0);
    return;
  }
  double correction=in2 + in1._correction;
  double sum=in1._sum + correction;
  in1.set(sum,correction - (sum - in1._sum));
}

public void execute2 ( KahanObject in1 , double in2 ) { if ( Double . isInfinite ( in1 . _sum ) || Double . isInfinite ( in2 ) ) { in1 . set ( Double . isInfinite ( in2 ) ? in2 : in1 . _sum , 0 ) ; return ; } double correction = in2 + in1 . _correction ; double sum = in1 . _sum + correction ; in1 . set ( sum , correction - ( sum - in1 . _sum ) ) ; }
simplified version of execute ( data in1 , double in2 ) without exception handling and casts .
