question: protected double kernelLP ( int n , char [ ] s , int endIndexS , char [ ] t , int endIndexT , int remainingMatchLength ) { if ( Math . min ( endIndexS + 1 , endIndexT + 1 ) < n ) { return getReturnValue ( n ) ; } if ( remainingMatchLength == 0 ) { return getReturnValue ( n ) ; } double result = 0 ; for ( int iS = endIndexS ; iS > n - 2 ; iS -- ) { double buf = 0 ; char x = s [ iS ] ; for ( int j = 0 ; j <= endIndexT ; j ++ ) { if ( t [ j ] == x ) { buf += kernelHelperLP ( n - 1 , s , iS - 1 , t , j - 1 , remainingMatchLength - 2 ) ; } } result += buf * m_powersOflambda [ 2 ] ; } return result ; }
target:  the kernel function K explained in [1] using lambda pruning, explained in [2]. An additional parameter is introduced, which denotes the maximum length of a subsequence match. This allows for the control of how relaxed the subsequence matches are. <br>