begin
external real fn spec floaty sqrt alias "sqrtf" (real n) {should be in prims. Using Linux/C's external here.}
routine TPK(real array name a, b)
! given 11 input values a(0),...,a(10), this routine
! produces 22 output values b(0),...b(21), according
! to the classical TPK algorithm
real fn f(real t)
result = floaty sqrt(|t|) + 5 * t^3
end
real y
integer i
cycle i = 10, -1, 0
y = f(a(i))
y = 999 if y > 400
b(20-2*i) = i
b(21-2*i) = y
repeat
end; ! TPK
real array a(0:10), b(0:21)
TPK(a,b)
endofprogram