sin.cef
#!/usr/local/bin/clip #\!- <val> :float \16 :rad :angle 0 # この関数は、第一パラメータ(@0)に角度をとります。 :define PI 3.1415926535897932384626433832795 :define N 19 # 奇数 :define D 4.4544551033807686783083602485579e\-6 # # tan x の素 # func ur_tan :rad :param 1 1 @1 = int (@0 / (PI / 2) + (@0 >= 0 ? 0.5 \-0.5)) @0 = [+](@0 - (3217.0 / 2048) * @1) + D * @1 @x = @0 * @0; @t = 0 for @i = N; @i >= 3; @i -= 2; @t = @x / (@i - @t); next return @0 / (1 - @t) endfunc # # sin x # @t = ur_tan (@0 / 2) @k @t = 2 * @t / (1 + @t * @t) if @k % 2 == 0; return @t else; return [-]@t endif
参考:「C言語による最新アルゴリズム事典」 奥村晴彦=著 技術評論社