RosettaCodeData/Task/Nth-root/Metafont/nth-root.metafont

18 lines
301 B
Text
Raw Permalink Normal View History

2013-04-10 23:57:08 -07:00
vardef mnthroot(expr n, A) =
x0 := A / n;
m := n - 1;
forever:
x1 := (m*x0 + A/(x0 ** m)) / n;
exitif abs(x1 - x0) < abs(x0 * 0.0001);
x0 := x1;
endfor;
x1
enddef;
primarydef n nthroot A = mnthroot(n, A) enddef;
show 5 nthroot 34; % 2.0244
show 0.5 nthroot 7; % 49.00528
bye