@ Override public DescriptorValue calculate ( IAtomContainer atomContainer ) { IAtomContainer local ; if ( addlp ) { try { local = ( IAtomContainer ) atomContainer . clone ( ) ; LonePairElectronChecker lpcheck = new LonePairElectronChecker ( ) ; lpcheck . saturate ( local ) ; } catch ( CloneNotSupportedException e ) { return new DescriptorValue ( getSpecification ( ) , getParameterNames ( ) , getParameters ( ) , new DoubleResult ( Double . NaN ) , getDescriptorNames ( ) , e ) ; } catch ( CDKException e ) { return new DescriptorValue ( getSpecification ( ) , getParameterNames ( ) , getParameters ( ) , new DoubleResult ( Double . NaN ) , getDescriptorNames ( ) , e ) ; } } else local = atomContainer ; DoubleResult value ; try { value = new DoubleResult ( ( ( DoubleArrayResult ) calculatePlus ( local ) . getValue ( ) ) . get ( 0 ) ) ; } catch ( CDKException e ) { return new DescriptorValue ( getSpecification ( ) , getParameterNames ( ) , getParameters ( ) , new DoubleResult ( Double . NaN ) , getDescriptorNames ( ) , e ) ; } return new DescriptorValue ( getSpecification ( ) , getParameterNames ( ) , getParameters ( ) , value , getDescriptorNames ( ) ) ; }
It calculates the first ionization energy of a molecule .