private double initScore ( ) { double score = 0 ; final int n = atoms . length ; for ( int i = 0 ; i < n ; i ++ ) { final Point2d p1 = atoms [ i ] . getPoint2d ( ) ; for ( int j = i + 1 ; j < n ; j ++ ) { if ( contribution [ i ] [ j ] < 0 ) continue ; final Point2d p2 = atoms [ j ] . getPoint2d ( ) ; final double x = p1 . x - p2 . x ; final double y = p1 . y - p2 . y ; final double len2 = x * x + y * y ; score += contribution [ j ] [ i ] = contribution [ i ] [ j ] = 1 / Math . max ( len2 , MIN_SCORE ) ; } } return score ; }
Calculate the initial score .