@Override protected double evaluate(int id1,int id2,Instance inst1) throws Exception {
  if (id1 == id2) {
    return 1.0;
  }
 else {
    double precalc1;
    if (id1 == -1) {
      precalc1=dotProd(inst1,inst1);
    }
 else {
      precalc1=m_kernelPrecalc[id1];
    }
    Instance inst2=m_data.instance(id2);
    double squaredDifference=-2.0 * dotProd(inst1,inst2) + precalc1 + m_kernelPrecalc[id2];
    double intermediate=m_factor * Math.sqrt(squaredDifference);
    double result=1.0 / Math.pow(1.0 + intermediate * intermediate,getOmega());
    return result;
  }
}

@ Override protected double evaluate ( int id1 , int id2 , Instance inst1 ) throws Exception { if ( id1 == id2 ) { return 1.0 ; } else { double precalc1 ; if ( id1 == - 1 ) { precalc1 = dotProd ( inst1 , inst1 ) ; } else { precalc1 = m_kernelPrecalc [ id1 ] ; } Instance inst2 = m_data . instance ( id2 ) ; double squaredDifference = - 2.0 * dotProd ( inst1 , inst2 ) + precalc1 + m_kernelPrecalc [ id2 ] ; double intermediate = m_factor * Math . sqrt ( squaredDifference ) ; double result = 1.0 / Math . pow ( 1.0 + intermediate * intermediate , getOmega ( ) ) ; return result ; } }
returns the dot product
