1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* ext/bigdecimal: update class method call style from :: to .

in documentation and usage.
* ext/bigdecimal/lib/bigdecimal/math.rb: [DOC] fix examples values.
  Computations were made using ruby 2.0.0p247 to ensure
  no effect of the recent BigDecimal bug.
* ext/bigdecimal/sample/nlsolve.rb: fix indent.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
eregon 2014-01-02 15:10:13 +00:00
parent 72385b042d
commit 1cc709a84a
6 changed files with 41 additions and 29 deletions

View file

@ -1,3 +1,14 @@
Fri Jan 3 00:09:54 2014 Benoit Daloze <eregontp@gmail.com>
* ext/bigdecimal: update class method call style from :: to .
in documentation and usage.
* ext/bigdecimal/lib/bigdecimal/math.rb: [DOC] fix examples values.
Computations were made using ruby 2.0.0p247 to ensure
no effect of the recent BigDecimal bug.
* ext/bigdecimal/sample/nlsolve.rb: fix indent.
Thu Jan 2 16:07:21 2014 Masaki Matsushita <glass.saga@gmail.com> Thu Jan 2 16:07:21 2014 Masaki Matsushita <glass.saga@gmail.com>
* io.c (io_fwrite): freeze converted str. * io.c (io_fwrite): freeze converted str.

View file

@ -2531,7 +2531,7 @@ BigDecimal_new(int argc, VALUE *argv)
return VpAlloc(mf, RSTRING_PTR(iniValue)); return VpAlloc(mf, RSTRING_PTR(iniValue));
} }
/* See also BigDecimal::new */ /* See also BigDecimal.new */
static VALUE static VALUE
BigDecimal_global_new(int argc, VALUE *argv, VALUE self) BigDecimal_global_new(int argc, VALUE *argv, VALUE self)
{ {

View file

@ -75,7 +75,7 @@ module Jacobian
# Computes the Jacobian of f at x. fx is the value of f at x. # Computes the Jacobian of f at x. fx is the value of f at x.
def jacobian(f,fx,x) def jacobian(f,fx,x)
n = x.size n = x.size
dfdx = Array::new(n*n) dfdx = Array.new(n*n)
for i in 0...n do for i in 0...n do
df = dfdxi(f,fx,x,i) df = dfdxi(f,fx,x,i)
for j in 0...n do for j in 0...n do

View file

@ -36,8 +36,8 @@ module BigMath
# Computes the square root of +decimal+ to the specified number of digits of # Computes the square root of +decimal+ to the specified number of digits of
# precision, +numeric+. # precision, +numeric+.
# #
# BigMath::sqrt(BigDecimal.new('2'), 16).to_s # BigMath.sqrt(BigDecimal.new('2'), 16).to_s
# #=> "0.14142135623730950488016887242096975E1" # #=> "0.1414213562373095048801688724E1"
# #
def sqrt(x, prec) def sqrt(x, prec)
x.sqrt(prec) x.sqrt(prec)
@ -51,7 +51,7 @@ module BigMath
# #
# If +decimal+ is Infinity or NaN, returns NaN. # If +decimal+ is Infinity or NaN, returns NaN.
# #
# BigMath::sin(BigMath::PI(5)/4, 5).to_s # BigMath.sin(BigMath.PI(5)/4, 5).to_s
# #=> "0.70710678118654752440082036563292800375E0" # #=> "0.70710678118654752440082036563292800375E0"
# #
def sin(x, prec) def sin(x, prec)
@ -95,7 +95,7 @@ module BigMath
# #
# If +decimal+ is Infinity or NaN, returns NaN. # If +decimal+ is Infinity or NaN, returns NaN.
# #
# BigMath::cos(BigMath::PI(4), 16).to_s # BigMath.cos(BigMath.PI(4), 16).to_s
# #=> "-0.999999999999999999999999999999856613163740061349E0" # #=> "-0.999999999999999999999999999999856613163740061349E0"
# #
def cos(x, prec) def cos(x, prec)
@ -139,7 +139,7 @@ module BigMath
# #
# If +decimal+ is NaN, returns NaN. # If +decimal+ is NaN, returns NaN.
# #
# BigMath::atan(BigDecimal.new('-1'), 16).to_s # BigMath.atan(BigDecimal.new('-1'), 16).to_s
# #=> "-0.785398163397448309615660845819878471907514682065E0" # #=> "-0.785398163397448309615660845819878471907514682065E0"
# #
def atan(x, prec) def atan(x, prec)
@ -176,7 +176,7 @@ module BigMath
# Computes the value of pi to the specified number of digits of precision, # Computes the value of pi to the specified number of digits of precision,
# +numeric+. # +numeric+.
# #
# BigMath::PI(10).to_s # BigMath.PI(10).to_s
# #=> "0.3141592653589793238462643388813853786957412E1" # #=> "0.3141592653589793238462643388813853786957412E1"
# #
def PI(prec) def PI(prec)
@ -221,7 +221,7 @@ module BigMath
# Computes e (the base of natural logarithms) to the specified number of # Computes e (the base of natural logarithms) to the specified number of
# digits of precision, +numeric+. # digits of precision, +numeric+.
# #
# BigMath::E(10).to_s # BigMath.E(10).to_s
# #=> "0.271828182845904523536028752390026306410273E1" # #=> "0.271828182845904523536028752390026306410273E1"
# #
def E(prec) def E(prec)

View file

@ -16,8 +16,8 @@ require "bigdecimal/ludcmp"
# #
# NOTE: # NOTE:
# Change following BigDecimal::limit() if needed. # Change following BigDecimal.limit() if needed.
BigDecimal::limit(100) BigDecimal.limit(100)
# #
include LUSolve include LUSolve
@ -27,8 +27,8 @@ def rd_order(na)
end end
na = ARGV.size na = ARGV.size
zero = BigDecimal::new("0.0") zero = BigDecimal.new("0.0")
one = BigDecimal::new("1.0") one = BigDecimal.new("1.0")
while (n=rd_order(na))>0 while (n=rd_order(na))>0
a = [] a = []
@ -40,10 +40,10 @@ while (n=rd_order(na))>0
for i in 0...n do for i in 0...n do
for j in 0...n do for j in 0...n do
printf("A[%d,%d]? ",i,j); s = ARGF.gets printf("A[%d,%d]? ",i,j); s = ARGF.gets
a << BigDecimal::new(s); a << BigDecimal.new(s);
as << BigDecimal::new(s); as << BigDecimal.new(s);
end end
printf("Contatant vector element b[%d] ? ",i); b << BigDecimal::new(ARGF.gets); printf("Contatant vector element b[%d] ? ",i); b << BigDecimal.new(ARGF.gets);
end end
else else
# Read data from specified file. # Read data from specified file.
@ -53,10 +53,10 @@ while (n=rd_order(na))>0
printf("%d) %s",i,s) printf("%d) %s",i,s)
s = s.split s = s.split
for j in 0...n do for j in 0...n do
a << BigDecimal::new(s[j]); a << BigDecimal.new(s[j]);
as << BigDecimal::new(s[j]); as << BigDecimal.new(s[j]);
end end
b << BigDecimal::new(s[n]); b << BigDecimal.new(s[n]);
end end
end end
x = lusolve(a,b,ludecomp(a,n,zero,one),zero) x = lusolve(a,b,ludecomp(a,n,zero,one),zero)

View file

@ -11,11 +11,11 @@ include Newton
class Function # :nodoc: all class Function # :nodoc: all
def initialize() def initialize()
@zero = BigDecimal::new("0.0") @zero = BigDecimal.new("0.0")
@one = BigDecimal::new("1.0") @one = BigDecimal.new("1.0")
@two = BigDecimal::new("2.0") @two = BigDecimal.new("2.0")
@ten = BigDecimal::new("10.0") @ten = BigDecimal.new("10.0")
@eps = BigDecimal::new("1.0e-16") @eps = BigDecimal.new("1.0e-16")
end end
def zero;@zero;end def zero;@zero;end
def one ;@one ;end def one ;@one ;end
@ -31,8 +31,9 @@ class Function # :nodoc: all
f f
end end
end end
f = BigDecimal::limit(100)
f = Function.new f = BigDecimal.limit(100)
x = [f.zero,f.zero] # Initial values f = Function.new
n = nlsolve(f,x) x = [f.zero,f.zero] # Initial values
p x n = nlsolve(f,x)
p x