protected double estimateID ( DBIDRef ignore , DoubleDBIDListIter it , double [ ] p ) { int j = 0 ; for ( it . seek ( 0 ) ; it . valid ( ) ; it . advance ( ) ) { if ( it . doubleValue ( ) == 0. || DBIDUtil . equal ( ignore , it ) ) { continue ; } p [ j ++ ] = it . doubleValue ( ) ; } if ( j < 2 ) { throw new ArithmeticException ( "Too little data to estimate ID." ) ; } return estimator . estimate ( p , j ) ; }
Estimate the local intrinsic dimensionality .