Class ApfpSeriesConst
In: lib/rapfp/Apfp.rb
Parent: Object

Methods

compute   new  

Public Class methods

[Source]

     # File lib/rapfp/Apfp.rb, line 841
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: #  else
915: #    puts "not ready"
916:   end
917: end

Public Instance methods

[Source]

     # File lib/rapfp/Apfp.rb, line 919
919: def compute
920:   @s.compute
921: end

[Validate]