(oldpts, newpts, n)
| 345 | return nsteps |
| 346 | |
| 347 | def interpolate(oldpts, newpts, n): |
| 348 | if len(oldpts) != len(newpts): |
| 349 | raise ValueError("can't interpolate arrays of different length") |
| 350 | pts = [0]*len(oldpts) |
| 351 | res = [tuple(oldpts)] |
| 352 | for i in range(1, n): |
| 353 | for k in range(len(pts)): |
| 354 | pts[k] = oldpts[k] + (newpts[k] - oldpts[k])*i//n |
| 355 | res.append(tuple(pts)) |
| 356 | res.append(tuple(newpts)) |
| 357 | return res |
| 358 | |
| 359 | |
| 360 | # Various (un)sorting algorithms |