add kmp c++ impl