num4diff 0.5.1 → 0.5.3

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/ext/num4diff/CNum4Diff.c +13 -8
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 236c79b20fa3b5aff7de7ac41181c458a3d42cf2c846e8a1d9e01265729fd762
4
- data.tar.gz: d0ace9350577ba3cadeaa37f05061a406274194357b8912df2890efc1c0f4e38
3
+ metadata.gz: 29001c8ab562e1167f790ad60e1aad72bb7911a1fdd93f6124437818bf1d6ace
4
+ data.tar.gz: 252f28a67131a94080d1226462ec8759c3362a19abfa31c3d315069cadc74dbe
5
5
  SHA512:
6
- metadata.gz: d125cbc9bfdc8cc65ff57c9057c579ce1030c167f60af69c5723dc3c08d71fcb2c36822df3671dab5b0ca944b62de885e21e795943739e31b22d8505464ed3c9
7
- data.tar.gz: ee2914de197552cd9be54a17e135da56cfb2a0ef36076fb14d66bedf379b3acf31d07f4a1db95a14d9d2aa0e39fdf38b8326979f200f59e4cb8b6fed44306b67
6
+ metadata.gz: ac10c3cbcee6872cfeacf33830aea5515cf9a3756dcc8388cb2c5af1da463118d9d9181bbbfb715ff53cd649075f013cff6fbad244ae9e1ce1cacf4c9c3825ac
7
+ data.tar.gz: 6707b0b1feac33281df4d61d25c8b89c475fd208f62ad2d14e45af0b0cccb443beac22b59e89071c0126876dcd843778ee5bf84fe2d54862d2cf467a4cab8176
data/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## [0.5.2] - 2023-07-02
6
+
7
+ ### Fixed
8
+ - change bug for adamsBashforthMethod and adamsMoultonMethod.
9
+
10
+ ## [0.5.2] - 2023-06-08
11
+
12
+ ### Fixed
13
+ - Fix refactor to adamsBashforthMethod and adamsMoultonMethod.
14
+
5
15
  ## [0.5.1] - 2023-05-18
6
16
 
7
17
  ### Fixed
@@ -141,19 +141,21 @@ static double CNum4Diff_doAdamsBashforthMethod(int k, double a, double b, double
141
141
  double *f = malloc(sizeof(double) * k);
142
142
  int i;
143
143
  double bk;
144
+ AdamsTbl *ptBash = &bash[k - 2];
144
145
 
145
146
  f[k - 1] = y0;
146
147
  for (i = 0; i < k - 2; i++) {
147
148
  f[k - (i + 2)] = CNum4Diff_Tier_rungeKuttaMethod(f[k - (i + 1)], xi, h, func);
149
+ xi = xi + h;
148
150
  }
149
- for (xi = xi + h; xi < b; xi += h) {
151
+ for (xi = xi; xi < b; xi += h) {
150
152
  f[0] = CNum4Diff_Tier_rungeKuttaMethod(f[1], xi, h, func);
151
153
  // 予測子
152
154
  bk = 0.0;
153
155
  for (i = 0; i < k; i++) {
154
- bk += bash[k - 2].bv[i] * f[i];
156
+ bk += ptBash->bv[i] * f[i];
155
157
  }
156
- y = f[0] + h * bk / bash[k - 2].s;
158
+ y = f[0] + h * bk / ptBash->s;
157
159
  // f値をずらす
158
160
  for (i = 0; i < k - 1; i++) {
159
161
  f[k - (i + 1)] = f[k - (i + 2)];
@@ -173,27 +175,30 @@ static double CNum4Diff_doAdamsMoultonMethod(int k, double a, double b, double y
173
175
  double *f2 = malloc(sizeof(double) * (k + 1));
174
176
  int i;
175
177
  double bk;
178
+ AdamsTbl *ptBash = &bash[k - 2];
179
+ AdamsTbl *ptMoulton = &moulton[k - 2];
176
180
 
177
181
  f[k - 1] = y0;
178
182
  for (i = 0; i < k - 2; i++) {
179
183
  f[k - (i + 2)] = CNum4Diff_Tier_rungeKuttaMethod(f[k - (i + 1)], xi, h, func);
184
+ xi = xi + h;
180
185
  }
181
- for (xi = xi + h; xi < b; xi += h) {
186
+ for (xi = xi; xi < b; xi += h) {
182
187
  f[0] = CNum4Diff_Tier_rungeKuttaMethod(f[1], xi, h, func);
183
188
  // 予測子
184
189
  bk = 0.0;
185
190
  for (i = 0; i < k; i++) {
186
- bk += bash[k - 2].bv[i] * f[i];
191
+ bk += ptBash->bv[i] * f[i];
187
192
  f2[i + 1] = f[i];
188
193
  }
189
- y_pred = f[0] + h * bk / bash[k - 2].s;
194
+ y_pred = f[0] + h * bk / ptBash->s;
190
195
  f2[0] = y_pred;
191
196
  // 修正子
192
197
  bk = 0.0;
193
198
  for (i = 0; i < k; i++) {
194
- bk += moulton[k - 2].bv[i] * f2[i];
199
+ bk += ptMoulton->bv[i] * f2[i];
195
200
  }
196
- y = f[0] + h * bk / moulton[k - 2].s;
201
+ y = f[0] + h * bk / ptMoulton->s;
197
202
  // f値をずらす
198
203
  for (i = 0; i < k - 1; i++) {
199
204
  f[k - (i + 1)] = f[k - (i + 2)];
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: num4diff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - siranovel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-18 00:00:00.000000000 Z
11
+ date: 2023-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi-compiler
@@ -69,7 +69,7 @@ licenses:
69
69
  - MIT
70
70
  metadata:
71
71
  changelog_uri: http://github.com/siranovel/num4different/blob/main/CHANGELOG.md
72
- documentation_uri: https://rubydoc.info/gems/num4diff/0.5.1
72
+ documentation_uri: https://rubydoc.info/gems/num4diff/0.5.3
73
73
  homepage_uri: http://github.com/siranovel/num4different
74
74
  wiki_uri: https://github.com/siranovel/mydocs/tree/main/num4different
75
75
  post_install_message: