question: protected double kernelHelper ( int n , char [ ] s , int endIndexS , char [ ] t , int endIndexT ) { if ( n <= 0 ) { return getReturnValue ( n ) ; } if ( Math . min ( endIndexS + 1 , endIndexT + 1 ) < n ) { return getReturnValue ( n ) ; } int adr = 0 ; if ( m_useRecursionCache ) { adr = m_multX * n + m_multY * endIndexS + m_multZ * endIndexT ; if ( cachekhK [ adr % maxCache ] == adr + 1 ) { return cachekh [ adr % maxCache ] ; } } double result = 0 ; result = m_lambda * kernelHelper ( n , s , endIndexS - 1 , t , endIndexT ) + kernelHelper2 ( n , s , endIndexS , t , endIndexT ) ; if ( m_useRecursionCache ) { cachekhK [ adr % maxCache ] = adr + 1 ; cachekh [ adr % maxCache ] = result ; } return result ; }
target:  The kernel helper function, called K' in [1] and [2].