ruby-mpfr 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Example.rdoc ADDED
@@ -0,0 +1,63 @@
1
+ = Examples
2
+
3
+ == Example 1: Initialization
4
+ You must require 'mpfr' to use MPFR.
5
+ And you set the default precision by MPFR.set_default_prec.
6
+ To make an instance of MPFR, you can use MPFR.new or MPFR methods.
7
+ MPFR.new and MPFR have the same arguments.
8
+ First argument is a number which is Fixnum, Bignum, Float, String, or MPFR.
9
+ The following two optional arguments are rounding mode and precision.
10
+
11
+ require "mpfr"
12
+ MPFR.set_default_prec(100)
13
+
14
+ a = MPFR(3.3) # or MPFR.new(3.3)
15
+ b = MPFR('2.2') # or MPFR.new('2.2')
16
+ puts (a + b).to_s # => 5.4999999999999998223643160599724e+00
17
+ puts (a - b).to_s # => 1.0999999999999998223643160599743e+00
18
+ puts (a * b).to_s # => 7.2599999999999996092014953319487e+00
19
+ puts (a / b).to_s # => 1.4999999999999999192565072999879e+00
20
+
21
+ c = MPFR('4.321', MPFR::RNDU)
22
+ d = MPFR('4.321', MPFR::RNDD)
23
+ c > d # => true
24
+
25
+ e = MPFR('4.321', MPFR::RNDN, 256)
26
+ e.prec # => 256
27
+ d.prec # => 100
28
+
29
+ == Example 2: Convertion to String
30
+ You can use MPFR#to_s and MPFR#to_strf to convert
31
+ an instance of MPFR to String.
32
+ These methods use function mpfr_asprintf.
33
+ MPFR#to_s convert an instance to string by mpfr_asprintf(str, "%.Re", self);
34
+ If you execute MPFR#to_strf(format), you get string converted
35
+ by mpfr_asprintf(str, format, self);
36
+
37
+ require "mpfr"
38
+ MPFR.set_default_prec(128)
39
+
40
+ a = MPFR('0.3')
41
+ puts a.to_s # => 3.000000000000000000000000000000000000006e-01
42
+ puts a.to_strf("%.20Re") # => 3.00000000000000000000e-01
43
+ puts a.to_strf("%.20RE") # => 3.00000000000000000000E-01
44
+ puts a.to_strf("%.20Rf") # => 0.30000000000000000000
45
+
46
+ == Example 3: Special Functions
47
+ Special functions of MPFR is collected in MPFR::Math.
48
+ MPFR::Math.func corresponds to mpfr_func in C language.
49
+ For example, you can use MPFR::Math.log to use mpfr_log.
50
+ Method of MPFR::Math is two optional arguments; rounding mode and percision.
51
+
52
+ require "mpfr"
53
+ MPFR.set_default_prec(128)
54
+
55
+ MPFR::Math.log('0.3') # => -1.203972804325935992622746217761838502954e+00
56
+ MPFR::Math.sin(1.23) # => 9.424888019316975040865688397571963882576e-01
57
+
58
+ a = MPFR::Math.sin(1.23, MPFR::RNDU) # => 9.424888019316975040865688397571963882576e-01
59
+ b = MPFR::Math.sin(1.23, MPFR::RNDD) # => 9.424888019316975040865688397571963882547e-01
60
+ a > b # => true
61
+
62
+ e = MPFR::Math.sin(1.23, MPFR::RNDD, 256)
63
+ e.get_prec # => 256
data/History.txt CHANGED
@@ -1,3 +1,9 @@
1
+ === 0.0.6 2009-12-26
2
+ * 1 minor enhancement:
3
+ * Add documents of MPFR.
4
+ * 1 bug fix:
5
+ * MPFR.get_default_prec returns new default precision.
6
+
1
7
  === 0.0.5 2009-12-18
2
8
  * 1 major enhancement:
3
9
  * Add methods MPFR, MPFR::Matrix, MPFR::SquareMatrix, MPFR::ColumnVector, and MPFR::RowVector.
data/Manifest.txt CHANGED
@@ -1,3 +1,4 @@
1
+ Example.rdoc
1
2
  History.txt
2
3
  Manifest.txt
3
4
  PostInstall.txt
data/README.rdoc CHANGED
@@ -5,26 +5,22 @@
5
5
 
6
6
  == Description:
7
7
 
8
- ruby-mpfr is library to use MPFR[http://www.mpfr.org/] which is a C library for
8
+ ruby-mpfr is a library to use MPFR[http://www.mpfr.org/] which is a C library for
9
9
  multiple-precision floating-point computations.
10
10
  ruby-mpfr also includes Matrix class of MPFR; MPFR::Matrix, MPFR::SquareMatrix,
11
11
  MPFR::ColumnVector, and MPFR::RowVector.
12
12
 
13
+ * History[link:History_txt.html]
14
+ * {Examples of Usage}[link:Example_rdoc.html]
15
+
13
16
  == Notice:
14
17
 
15
18
  * Many methods have not been tested sufficiently.
16
19
  * Documentation is not complete.
17
20
 
18
- == Example:
19
-
20
- require "mpfr"
21
- MPFR.get_default_prec(100)
22
- a = MPFR.new(3)
23
- b = MPFR.new('2.2')
24
- puts (a * b).to_strf("%.30Re")
25
-
26
21
  == Requirements:
27
22
 
23
+ * Ruby[http://www.ruby-lang.org/] 1.9.1 or later
28
24
  * MPFR[http://www.mpfr.org/] 2.4.1 or later
29
25
 
30
26
  For Ubuntu 9.10, we can install MPFR with the following command.
@@ -37,6 +33,15 @@ in the system satisfying the above requirements.
37
33
 
38
34
  $ sudo gem install ruby-mpfr
39
35
 
36
+ == Related Software:
37
+ These two gem packages uses ruby-mpfr.
38
+
39
+ * ruby-mpc[http://gemcutter.org/gems/ruby-mpc/]: the arithmetic of complex numbers with multiprecision
40
+ * ruby-mpfi[http://gemcutter.org/gems/ruby-mpfi/]: the interval arithmetic with multiprecision
41
+
42
+ The following is an another multiple precision library which uses GMP.
43
+ * http://gemcutter.org/gems/gmp
44
+
40
45
  == License:
41
46
 
42
47
  ruby-mpfr
data/Rakefile CHANGED
@@ -17,6 +17,7 @@ $hoe = Hoe.spec 'ruby-mpfr' do
17
17
  # self.extra_deps = [['activesupport','>= 2.0.2']]
18
18
  self.spec_extras[:extensions] = ["ext/mpfr/extconf.rb", "ext/mpfr_matrix/mpfr/extconf.rb"]
19
19
  self.extra_rdoc_files << 'README.rdoc'
20
+ self.extra_rdoc_files << 'Example.rdoc'
20
21
  end
21
22
 
22
23
  # require 'newgem/tasks'
data/ext/mpfr/ruby_mpfr.c CHANGED
@@ -82,7 +82,7 @@ static VALUE r_mpfr_set_default_prec(VALUE self, VALUE prec)
82
82
  rb_raise(rb_eRangeError, "Argument must be positive.");
83
83
  }
84
84
  mpfr_set_default_prec(set_prec);
85
- return INT2FIX(mpf_get_default_prec());
85
+ return INT2FIX(mpfr_get_default_prec());
86
86
  }
87
87
 
88
88
  /* Return the default MPFR precision in bits. */
data/lib/mpfr/version.rb CHANGED
@@ -1 +1 @@
1
- RUBY_MPFR_VERSION = '0.0.5'
1
+ RUBY_MPFR_VERSION = '0.0.6'
data/ruby-mpfr.gemspec CHANGED
@@ -2,26 +2,29 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{ruby-mpfr}
5
- s.version = "0.0.5"
5
+ s.version = "0.0.6"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Takayuki YAMAGUCHI"]
9
- s.date = %q{2009-12-19}
10
- s.description = %q{ruby-mpfr is library to use MPFR[http://www.mpfr.org/] which is a C library for
9
+ s.date = %q{2009-12-26}
10
+ s.description = %q{ruby-mpfr is a library to use MPFR[http://www.mpfr.org/] which is a C library for
11
11
  multiple-precision floating-point computations.
12
12
  ruby-mpfr also includes Matrix class of MPFR; MPFR::Matrix, MPFR::SquareMatrix,
13
- MPFR::ColumnVector, and MPFR::RowVector.}
13
+ MPFR::ColumnVector, and MPFR::RowVector.
14
+
15
+ * History[link:History_txt.html]
16
+ * {Examples of Usage}[link:Example_rdoc.html]}
14
17
  s.email = ["d@ytak.info"]
15
18
  s.extensions = ["ext/mpfr/extconf.rb", "ext/mpfr_matrix/mpfr/extconf.rb"]
16
- s.extra_rdoc_files = ["History.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc"]
17
- s.files = ["History.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc", "Rakefile", "ext/mpfr/extconf.rb", "ext/mpfr/ruby_mpfr.c", "ext/mpfr/ruby_mpfr.h", "ext/mpfr_matrix/mpfr/extconf.rb", "ext/mpfr_matrix/mpfr/func_mpfr_matrix.c", "ext/mpfr_matrix/mpfr/func_mpfr_matrix.h", "ext/mpfr_matrix/mpfr/ruby_mpfr.h", "ext/mpfr_matrix/mpfr/ruby_mpfr_matrix.c", "ext/mpfr_matrix/mpfr/ruby_mpfr_matrix.h", "lib/mpfr/matrix.rb", "lib/mpfr/version.rb", "ruby-mpfr.gemspec", "script/console", "script/destroy", "script/generate", "spec/mpfr/allocate_spec.rb", "spec/mpfr/arithmetic_spec.rb", "spec/mpfr/comparison_spec.rb", "spec/mpfr/constant_spec.rb", "spec/mpfr/conversion_spec.rb", "spec/mpfr/exception_spec.rb", "spec/mpfr/functions_spec.rb", "spec/mpfr/generate_number_modulue.rb", "spec/mpfr/precision_roundmode_spec.rb", "spec/mpfr/rounding_spec.rb", "spec/mpfr/set_value_spec.rb", "spec/mpfr/spec_helper.rb", "spec/mpfr/string_spec.rb", "spec/mpfr_matrix/generate_matrix_arguments.rb", "spec/mpfr_matrix/mpfr_matrix_alloc_spec.rb", "spec/mpfr_matrix/mpfr_matrix_arithmetic_spec.rb", "spec/mpfr_matrix/mpfr_matrix_set_element_spec.rb", "spec/mpfr_matrix/mpfr_matrix_string_spec.rb", "spec/mpfr_matrix/mpfr_square_matrix_spec.rb", "spec/mpfr_matrix/spec_helper.rb", "spec/spec.opts", "tasks/extconf.rake"]
18
- s.homepage = %q{[URL] http://rubyforge.org/projects/ruby-mpfr/}
19
+ s.extra_rdoc_files = ["History.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc", "Example.rdoc"]
20
+ s.files = ["Example.rdoc", "History.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc", "Rakefile", "ext/mpfr/extconf.rb", "ext/mpfr/ruby_mpfr.c", "ext/mpfr/ruby_mpfr.h", "ext/mpfr_matrix/mpfr/extconf.rb", "ext/mpfr_matrix/mpfr/func_mpfr_matrix.c", "ext/mpfr_matrix/mpfr/func_mpfr_matrix.h", "ext/mpfr_matrix/mpfr/ruby_mpfr.h", "ext/mpfr_matrix/mpfr/ruby_mpfr_matrix.c", "ext/mpfr_matrix/mpfr/ruby_mpfr_matrix.h", "lib/mpfr/matrix.rb", "lib/mpfr/version.rb", "ruby-mpfr.gemspec", "script/console", "script/destroy", "script/generate", "spec/mpfr/allocate_spec.rb", "spec/mpfr/arithmetic_spec.rb", "spec/mpfr/comparison_spec.rb", "spec/mpfr/constant_spec.rb", "spec/mpfr/conversion_spec.rb", "spec/mpfr/exception_spec.rb", "spec/mpfr/functions_spec.rb", "spec/mpfr/generate_number_modulue.rb", "spec/mpfr/precision_roundmode_spec.rb", "spec/mpfr/rounding_spec.rb", "spec/mpfr/set_value_spec.rb", "spec/mpfr/spec_helper.rb", "spec/mpfr/string_spec.rb", "spec/mpfr_matrix/generate_matrix_arguments.rb", "spec/mpfr_matrix/mpfr_matrix_alloc_spec.rb", "spec/mpfr_matrix/mpfr_matrix_arithmetic_spec.rb", "spec/mpfr_matrix/mpfr_matrix_set_element_spec.rb", "spec/mpfr_matrix/mpfr_matrix_string_spec.rb", "spec/mpfr_matrix/mpfr_square_matrix_spec.rb", "spec/mpfr_matrix/spec_helper.rb", "spec/spec.opts", "tasks/extconf.rake"]
21
+ s.homepage = %q{http://rubyforge.org/projects/ruby-mpfr/}
19
22
  s.post_install_message = %q{PostInstall.txt}
20
23
  s.rdoc_options = ["--main", "README.rdoc"]
21
24
  s.require_paths = ["lib", "ext"]
22
25
  s.rubyforge_project = %q{ruby-mpfr}
23
26
  s.rubygems_version = %q{1.3.5}
24
- s.summary = %q{ruby-mpfr is library to use MPFR[http://www.mpfr.org/] which is a C library for multiple-precision floating-point computations}
27
+ s.summary = %q{ruby-mpfr is a library to use MPFR[http://www.mpfr.org/] which is a C library for multiple-precision floating-point computations}
25
28
 
26
29
  if s.respond_to? :specification_version then
27
30
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
@@ -34,6 +34,7 @@ describe MPFR, 'when getting rounding mode' do
34
34
  check_set_rnd(rnds[i], rnds[j])
35
35
  end
36
36
  end
37
+ MPFR.set_default_rounding_mode(MPFR::RNDN)
37
38
  end
38
39
  end
39
40
 
@@ -37,9 +37,9 @@ describe MPFR::Matrix, "when arithmetic operator applies to 2x3 matrixies" do
37
37
  it "should be subtracted" do
38
38
  @args.each_index do |i|
39
39
  if i > 0
40
- res = @args[i-1] + @args[i]
40
+ res = @args[i-1] - @args[i]
41
41
  (0...@row).each do |j|
42
- (0...@column).each { |k| res[j, k].should eql(@args[i-1][j, k] + @args[i][j, k]) }
42
+ (0...@column).each { |k| res[j, k].should eql(@args[i-1][j, k] - @args[i][j, k]) }
43
43
  end
44
44
  end
45
45
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-mpfr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takayuki YAMAGUCHI
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-19 00:00:00 +09:00
12
+ date: 2009-12-26 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -23,10 +23,13 @@ dependencies:
23
23
  version: 2.4.0
24
24
  version:
25
25
  description: |-
26
- ruby-mpfr is library to use MPFR[http://www.mpfr.org/] which is a C library for
26
+ ruby-mpfr is a library to use MPFR[http://www.mpfr.org/] which is a C library for
27
27
  multiple-precision floating-point computations.
28
28
  ruby-mpfr also includes Matrix class of MPFR; MPFR::Matrix, MPFR::SquareMatrix,
29
29
  MPFR::ColumnVector, and MPFR::RowVector.
30
+
31
+ * History[link:History_txt.html]
32
+ * {Examples of Usage}[link:Example_rdoc.html]
30
33
  email:
31
34
  - d@ytak.info
32
35
  executables: []
@@ -39,7 +42,9 @@ extra_rdoc_files:
39
42
  - Manifest.txt
40
43
  - PostInstall.txt
41
44
  - README.rdoc
45
+ - Example.rdoc
42
46
  files:
47
+ - Example.rdoc
43
48
  - History.txt
44
49
  - Manifest.txt
45
50
  - PostInstall.txt
@@ -111,6 +116,6 @@ rubyforge_project: ruby-mpfr
111
116
  rubygems_version: 1.3.5
112
117
  signing_key:
113
118
  specification_version: 3
114
- summary: ruby-mpfr is library to use MPFR[http://www.mpfr.org/] which is a C library for multiple-precision floating-point computations
119
+ summary: ruby-mpfr is a library to use MPFR[http://www.mpfr.org/] which is a C library for multiple-precision floating-point computations
115
120
  test_files: []
116
121