Functional mp decoding