Class: Float
- Defined in:
- lib/sequence_logo/ytilib/addon.rb,
lib/sequence_logo/ytilib/infocod.rb
Instance Method Summary collapse
- #cut_to(x) ⇒ Object
-
#log_fact ⇒ Object
Using Stieltjes formula from www.luschny.de/math/factorial/approx/SimpleCases.html.
- #round_to(x) ⇒ Object
Instance Method Details
#cut_to(x) ⇒ Object
20 21 22 |
# File 'lib/sequence_logo/ytilib/addon.rb', line 20 def cut_to(x) (self.abs * 10**x).floor.to_f * (self == 0.0 ? 0 : self/self.abs).round / 10**x end |
#log_fact ⇒ Object
Using Stieltjes formula from www.luschny.de/math/factorial/approx/SimpleCases.html
5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/sequence_logo/ytilib/infocod.rb', line 5 def log_fact return 0.0 if self <= 1 a0 = 1.0/12 a1 = 1.0/30 a2 = 53.0/210 a3 = 195.0/371 a4 = 22999.0/22737 a5 = 29944523.0/19733142 a6 = 109535241009.0/48264275462 z_big = self+1; (1.0/2)*Math.log(2*Math::PI)+(z_big-1.0/2)*Math.log(z_big)-z_big + a0/(z_big+a1/(z_big+a2/(z_big+a3/(z_big+a4/(z_big+a5/(z_big+a6/z_big)))))) end |
#round_to(x) ⇒ Object
16 17 18 |
# File 'lib/sequence_logo/ytilib/addon.rb', line 16 def round_to(x) (self * 10**x).round.to_f / 10**x end |