P 1 * := 1 P 2 k := f 1 := 1 f 2 := 2 f n := + (f - n 1) (f - n 2) return f k P 3 k := f 1 := 1 f 2 := 3 f n := + (f - n 1) * 2 (f - n 2) return f k P 4 k := J 1 := 1 J 2 := 2 J n := + (J - n 1) (P 4 - n 1) f 1 := 1 f 2 := 5 f n := + + (P 4 - n 1) * 4 (f - n 2) * 2 (J - n 2) return f k