function retval = atanNUMA(x, n) a = 2.0^(-n/2); b = x / (1.0 + sqrt(1.0+x^2)); c = 1.0; d = 1.0; vec = []; while 1.0-a > 2^(-n) c = 2*c / (1.0 + a); d = 2*a*b / (1.0 + b^2); d = d / (1.0 + sqrt(1.0 - d^2)); d = (b + d) / (1.0 - b*d); b = d / (1.0 + sqrt(1.0 + d^2)); a = 2*sqrt(a) / (1.0+a); vec = [vec c*log((1+b)/(1-b))]; end retval = vec; end