calculate canonical overlap implemented