Polinomio.mws

>    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;

.1586710126e111513

.63e-1

>    ha := time():
Horner(104567980000000., q2000);
time() - ha;

.1586710112e111513

.32e-1

>