num4simdiff 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/lib/num4simdiff.rb +44 -39
  4. metadata +5 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 84111ebd98c9c8f7f000733a780973aa030185287c716b15d4a6d7ef5c62424d
4
- data.tar.gz: 86d00d4725e4af07cfb5aff14647be96645f8c8fa17080f310da93817e0ca4cd
3
+ metadata.gz: eb95aa62cec23aba9d5dce5d67ab559e413ca450e8f27b582daee07705d8ab25
4
+ data.tar.gz: ceccfc8d500e2494a03c7446a2c10e52a04c9b74c9baa158e23bcfbe7ef9917c
5
5
  SHA512:
6
- metadata.gz: 93a012aff1ff1fd8f8614c483f12836e3ff5e8c0d39adbf1f8c277503c9669d36f4665b7a9d9397cd5ce5d572ceefd8b8a49e13b4c073074e3176fa9be0d0ad4
7
- data.tar.gz: c6c1d8bb3a3f35f82becdf0a584d7c9971593d3435296e39c9cb349a8b82095193c979a6172f2423b719780430a5afc1edf7f20e2c984f1e6d14a72094207cba
6
+ metadata.gz: 8dc2d88b4b0ea780065be4d11188cd7e4abe300281aab215513afe106bfd3ba91a91d5947fc6029a9be0471a364488d7714f5f2ffc230029484a8c8804c09e1b
7
+ data.tar.gz: ea0a990c0c5a2a9b377eae6b72205db0d20141c1bad6ffe795fdd5bdcdacb92d1871f3ca734d3664bcbb9ac00bfb9270dd0103e03208739dff72464aa819e73a
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## [0.0.2] - 2023-04-30
6
+
7
+ ### Added
8
+ - add rdoc_options in gemspec file
9
+
10
+ ### Changed
11
+ - rdoc comment
12
+
5
13
  ## [0.0.1] - 2023-04-29
6
14
 
7
15
  ### Fixed
data/lib/num4simdiff.rb CHANGED
@@ -9,64 +9,64 @@ module Num4SimDiffLib
9
9
 
10
10
  # @overload f(x, dx)
11
11
  # dy = f(x, dx)
12
- # @yield [x] dy = f(x, dx)
12
+ # @yield [x, dx] dy = f(x, dx)
13
13
  # @yieldparam [double] x xiの値
14
14
  # @yieldparam [double] dx xiの値
15
15
  # @return [double] xiに対するyの値
16
16
  callback :f, [:double, :double], :double
17
17
 
18
- #
19
- # オイラー法による数値計算
20
- # @overload eulerMethod(yi, xi, h, func1, func2)
21
- # yi_1 = eulerMethod(yi, xi, h, func1, func2)
22
- # @param [double] yi xiに対するyiの値(配列)
23
- # @param [double] xi xiの値
24
- # @param [double] h 刻み幅
25
- # @param [callback] func1 xiに対する傾きを計算する関数
26
- # @param [callback] func2 xiに対する傾きを計算する関数
27
- # @return [double] xi+hに対するyi_1の値(配列)
28
- #
29
18
  attach_function :eulerMethodFFI,
30
19
  :CNum4SimDiff_eulerMethod, [:buffer_in, :double, :double, :f, :f], :pointer
31
- #
32
- # ホイン法による数値計算
33
- # @overload heunMethod(yi, xi, h, func1, func2)
34
- # yi_1 = heunMethod(yi, xi, h, func1, func2)
35
- # @param [double] yi xiに対するyiの値(配列)
36
- # @param [double] xi xiの値
37
- # @param [double] h 刻み幅
38
- # @param [callback] func1 xiに対する傾きを計算する関数
39
- # @param [callback] func2 xiに対する傾きを計算する関数
40
- # @return [double] xi+hに対するyi_1の値(配列)
41
- #
42
20
  attach_function :heunMethodFFI,
43
21
  :CNum4SimDiff_heunMethod, [:buffer_in, :double, :double, :f, :f], :pointer
44
- #
45
- # 4次のルンゲ=クッタ法による数値計算
46
- # @overload rungeKuttaMethod(yi, xi, h, func1, func2)
47
- # yi_1 = rungeKuttaMethod(yi, xi, h, func1, func2)
48
- # @param [double] yi xiに対するyiの値(配列)
49
- # @param [double] xi xiの値
50
- # @param [double] h 刻み幅
51
- # @param [callback] func1 xiに対する傾きを計算する関数
52
- # @param [callback] func2 xiに対する傾きを計算する関数
53
- # @return [double] xi+hに対するyi_1の値(配列)
54
- #
55
22
  attach_function :rungeKuttaMethodFFI,
56
23
  :CNum4SimDiff_rungeKuttaMethod, [:buffer_in, :double, :double, :f, :f], :pointer
57
24
  class << self
58
- def eulerMethod(yi, x, h, func1, func2)
25
+ #
26
+ # オイラー法による数値計算
27
+ # @overload eulerMethod(yi, xi, h, func1, func2)
28
+ # yi_1 = eulerMethod(yi, xi, h, func1, func2)
29
+ # @param [double] yi xiに対するyiの値(配列)
30
+ # @param [double] xi xiの値
31
+ # @param [double] h 刻み幅
32
+ # @param [callback] func1 xiに対する傾きを計算する関数
33
+ # @param [callback] func2 xiに対する傾きを計算する関数
34
+ # @return [double] xi+hに対するyi_1の値(配列)
35
+ #
36
+ def eulerMethod(yi, xi, h, func1, func2)
59
37
  yi_ptr = cnvRbAry2pt(2, yi)
60
- yi_1_ptr = eulerMethodFFI(yi_ptr, x, h, func1, func2)
38
+ yi_1_ptr = eulerMethodFFI(yi_ptr, xi, h, func1, func2)
61
39
  yi_1 = cnvPt2RbAry(2, yi_1_ptr)
62
40
  return 1 + yi_1[0] + 0.5 * yi_1[1]
63
41
  end
64
- def heunMethod(yi, x, h, func1, func2)
42
+ #
43
+ # ホイン法による数値計算
44
+ # @overload heunMethod(yi, xi, h, func1, func2)
45
+ # yi_1 = heunMethod(yi, xi, h, func1, func2)
46
+ # @param [double] yi xiに対するyiの値(配列)
47
+ # @param [double] xi xiの値
48
+ # @param [double] h 刻み幅
49
+ # @param [callback] func1 xiに対する傾きを計算する関数
50
+ # @param [callback] func2 xiに対する傾きを計算する関数
51
+ # @return [double] xi+hに対するyi_1の値(配列)
52
+ #
53
+ def heunMethod(yi, xi, h, func1, func2)
65
54
  yi_ptr = cnvRbAry2pt(2, yi)
66
- yi_1_ptr = heunMethodFFI(yi_ptr, x, h, func1, func2)
55
+ yi_1_ptr = heunMethodFFI(yi_ptr, xi, h, func1, func2)
67
56
  yi_1 = cnvPt2RbAry(2, yi_1_ptr)
68
57
  return 1 + yi_1[0] + 0.5 * yi_1[1]
69
58
  end
59
+ #
60
+ # 4次のルンゲ=クッタ法による数値計算
61
+ # @overload rungeKuttaMethod(yi, xi, h, func1, func2)
62
+ # yi_1 = rungeKuttaMethod(yi, xi, h, func1, func2)
63
+ # @param [double] yi xiに対するyiの値(配列)
64
+ # @param [double] xi xiの値
65
+ # @param [double] h 刻み幅
66
+ # @param [callback] func1 xiに対する傾きを計算する関数
67
+ # @param [callback] func2 xiに対する傾きを計算する関数
68
+ # @return [double] xi+hに対するyi_1の値(配列)
69
+ #
70
70
  def rungeKuttaMethod(yi, x, h, func1, func2)
71
71
  yi_ptr = cnvRbAry2pt(2, yi)
72
72
  yi_1_ptr = rungeKuttaMethodFFI(yi_ptr, x, h, func1, func2)
@@ -74,7 +74,9 @@ module Num4SimDiffLib
74
74
  return 1 + yi_1[0] + 0.5 * yi_1[1]
75
75
  end
76
76
 
77
-
77
+ #
78
+ # @private
79
+ #
78
80
  def cnvRbAry2pt(n, ary)
79
81
  yi_ptr = FFI::MemoryPointer.new(:double, n)
80
82
  n.times.map { |i|
@@ -82,6 +84,9 @@ module Num4SimDiffLib
82
84
  }
83
85
  return yi_ptr
84
86
  end
87
+ #
88
+ # @private
89
+ #
85
90
  def cnvPt2RbAry(n, pt)
86
91
  rbAry = n.times.map { |i|
87
92
  pt.get_double(i * Fiddle::SIZEOF_DOUBLE)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: num4simdiff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - siranovel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-17 00:00:00.000000000 Z
11
+ date: 2023-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi-compiler
@@ -69,10 +69,11 @@ licenses:
69
69
  - MIT
70
70
  metadata:
71
71
  changelog_uri: http://github.com/siranovel/num4simdiffrent/blob/main/CHANGELOG.md
72
- documentation_uri: https://rubydoc.info/gems/num4simdiff/0.0.1
72
+ documentation_uri: https://rubydoc.info/gems/num4simdiff/0.0.2
73
73
  homepage_uri: http://github.com/siranovel/num4simdiffrent
74
74
  post_install_message:
75
- rdoc_options: []
75
+ rdoc_options:
76
+ - "--no-private"
76
77
  require_paths:
77
78
  - lib
78
79
  required_ruby_version: !ruby/object:Gem::Requirement