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:
parent
72385b042d
commit
1cc709a84a
6 changed files with 41 additions and 29 deletions
11
ChangeLog
11
ChangeLog
|
@ -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.
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue