\ fatan 05.8.10 NAB module fatan : f+u ( u -- ) ( F: r -- r+u ) 0 d>f f+ ; : f*u ( u -- ) ( F: r -- r*u ) 0 d>f f* ; 57.2957795130823e fconstant radsize public: \ Source: Abramowitz and Stegun. : FATAN ( r -- arctan ) fdup ( F: r r ) fdup fdup f* fswap ( F: r r^2 r ) 13e f* fround f>d drop abs 9 + 0e ( F: r r^2 0 ) for ( F: r r^2 val ) ( -- ) \ val=(i*i*r^2)/(i+i+1+val): i 2* 3 + f+u ( F: r r^2 tb ) fover i 1+ 0 d>f fdup f* f* ( F: r r^2 tb ta ) fswap f/ ( F: r r^2 ta/tb ) next ( F: r r^2 val ) fswap fdrop ( F: r val ) \ val=r/(1+val): 1e f+ f/ ( F: arctan ) ; : deg>rad ( deg -- rad ) radsize f/ ; : rad>deg ( rad -- deg ) radsize f* ; end-module