grid := (a,b,h) -> [ a+k*h $ k=0..round((b-a)/h) ]: pairs := (x,y) -> zip(x,y,(x,y)->[x,y]): graph := (x,y) -> plot(plot::data([pairs(x,y)],Style=SplinesPoints,Ticks=Automatic)): stitch := (x,y) -> matrix(pairs(x,y)): names := x -> anames(All,User): compsq := proc(f,x) /* complete square, f is quadratic in x */ name compsq; local co; begin co := coeff(poly(f, [x])); subs(collect(expand(subs(f, x = x - co[2]/(2*co[1]))), x), x = x + co[2]\ /(2*co[1])) end_proc: export(linalg,transpose):