| > | Polinomio := proc(c::float, coef::list) local potencia, i, y; potencia := 1; y := coef[1]; for i from 2 to nops(coef) do potencia := potencia*c; y := y + coef[i] * potencia; od; |
RETURN(y);
end:
| > | Horner := proc(c::float, coef::list) local i, y; y := coef[nops(coef)]; for i from nops(coef)-1 by -1 to 1 do y := y * c + coef[i]; od; RETURN(y); end: |
| > | p2000 := randpoly(x,degree=8000,dense): |
| > | q2000 := subs(x=1,convert(p2000,list)): |
| > | ha := time(): Polinomio(104567980000000.0, q2000); time() - ha; |
| > | ha := time(): Horner(104567980000000., q2000); time() - ha; |
| > |