841: def initialize(func_name,x,rconst)
842: @@rconst = rconst
843: @func_name = func_name
844: case func_name
845: when "sin"
846: per = @@rconst.pi*@@rconst.two
847: phase1 = @@rconst.zero
848: phase2 = @@rconst.zero
849: @x = x.period(per,phase1,phase2)
850: cnt = 1
851: return @s = ApfpSeries.new("sin",@x.clone,@x.clone,1,2,MAX_LOOP,@@rconst)
852: when "sin_err"
853: per = @@rconst.pi*@@rconst.two
854: phase1 = @@rconst.zero
855: phase2 = @@rconst.zero
856: @x = x.period(per,phase1,phase2)
857: cnt = 1
858: return @s = ApfpSeries.new("sin_err",@x.clone,@x.clone,1,2,10,@@rconst)
859: when "cos"
860: per = @@rconst.pi*@@rconst.two
861: phase1 = @@rconst.zero
862: phase2 = @@rconst.zero
863: @x = x.period(per,phase1,phase2)
864: cnt = 0
865: return @s = ApfpSeries.new("cos",@x.clone,@@rconst.one,cnt,2,MAX_LOOP,@@rconst)
866: when "cos_err"
867: per = @@rconst.pi*@@rconst.two
868: phase1 = @@rconst.zero
869: phase2 = @@rconst.zero
870: @x = x.period(per,phase1,phase2)
871: cnt = 0
872: return @s = ApfpSeries.new("cos_err",@x.clone,@@rconst.one,cnt,2,10,@@rconst)
873: when "exp"
874: @x = x
875: cnt = 0
876: return @s = ApfpSeries.new("exp",@x.clone,ap_int(1),cnt,1,MAX_LOOP,@@rconst)
877: when "exp_err"
878: @x = x
879: cnt = 0
880: return @s = ApfpSeries.new("exp_err",@x.clone,ap_int(1),cnt,1,10,@@rconst)
881: when "asin"
882: @x = x
883: cnt = 3
884: retutn @s = ApfpSeries.new("asin",@x.clone,@x.clone,cnt,2,MAX_LOOP,@@rconst)
885:
886: when "asin_basic"
887: @x = x
888: cnt = 3
889: return @s = ApfpSeries.new("asin_basic",@x.clone,@x.clone,cnt,2,MAX_LOOP,@@rconst)
890: when "erf"
891: @x = x
892: cnt = 3
893: tmp = ap_int(2)/@@rconst.pi.sqrt*@x
894: return @s = ApfpSeries.new("erf",@x.clone,tmp,cnt,2,MAX_LOOP,@@rconst)
895: when "atan"
896: @x = x
897: cnt = 3
898: return @s = ApfpSeries.new("atan",@x.clone,@x.clone,cnt,2,MAX_LOOP,@@rconst)
899: when "log"
900: @x = x
901: cnt = 2
902: tmp = @x-ap_int(1)
903: return @s = ApfpSeries.new("log",@x.clone,tmp,cnt,1,MAX_LOOP,@@rconst)
904: when "log_err"
905: @x = x
906: cnt = 2
907: tmp = @x-ap_int(1)
908: return @s = ApfpSeries.new("log_err",@x.clone,tmp,cnt,1,10,@@rconst)
909: when "log_init"
910: @x = x
911: cnt = 1
912: tmp = ap_int(2)*(@x-ap_int(1))/(@x+ap_int(1))
913: return @s = ApfpSeries.new("log_init",@x.clone,tmp,cnt,2,MAX_LOOP,@@rconst)
914:
915:
916: end
917: end