question: attempts to subtract one r from another . returns an optional as it can fail if it would result in negative size elements . concode_field_sep int[] values concode_elem_sep int sum concode_elem_sep int dims concode_elem_sep int n concode_field_sep double getProbabilityOfSelecting concode_elem_sep int getBoxIndex concode_elem_sep int getIndex concode_elem_sep int getIndexWithoutN concode_elem_sep R coalesce concode_elem_sep int getMatrixSize concode_elem_sep int calculateSum concode_elem_sep void main concode_elem_sep int calculateIndexedDimension concode_elem_sep int[] subtractValues concode_elem_sep R transition concode_elem_sep int getNumberOfTypes concode_elem_sep boolean isValidValues concode_elem_sep R split concode_elem_sep Iterable<R> loopOver concode_elem_sep int getType concode_elem_sep int getNum concode_elem_sep int transitionIndex concode_elem_sep String toString concode_elem_sep String getTypeName concode_elem_sep double getLikelihoodProduct concode_elem_sep int splitIndex concode_elem_sep int getMatrixSizeWithoutN
target: R function ( R arg0 ) { int loc0 = n - arg0 . n ; int [ ] loc1 = subtractValues ( values , arg0 . values ) ; if ( isValidValues ( loc0 , loc1 ) ) return new R ( loc0 , loc1 ) ; else return null ; }