From bb8d4cd408bf5e51517174189816eb5f09f8839e Mon Sep 17 00:00:00 2001 From: Jrenaud-Desk Date: Sat, 20 Jan 2024 03:51:46 -0500 Subject: [PATCH 01/12] Working on moving rk_step to pure c --- .gitignore | 2 + .vscode/settings.json | 58 +++ .vscode/tasks.json | 28 ++ Benchmarks/CyRK - SciPy Comparison.ipynb | 59 +-- Benchmarks/CyRK_CySolver.pdf | Bin 13873 -> 13873 bytes ...yRK_SciPy_Compare_predprey_v0-8-6-dev0.png | Bin 0 -> 43184 bytes Benchmarks/CyRK_cyrk_ode.pdf | Bin 13873 -> 13873 bytes Benchmarks/CyRK_numba.pdf | Bin 13873 -> 13873 bytes Benchmarks/SciPy.pdf | Bin 13874 -> 13874 bytes CHANGES.md | 5 + CyRK/cy/cysolver.pxd | 62 ++- CyRK/cy/cysolver.pyx | 454 ++++++++++-------- CyRK/cy/rk_step.c | 317 ++++++++++++ Performance/cyrk_performance-DOP853.csv | 1 + Performance/cyrk_performance-RK23.csv | 1 + Performance/cyrk_performance-RK45.csv | 1 + cython_extensions.json | 5 +- pyproject.toml | 2 +- 18 files changed, 750 insertions(+), 245 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 Benchmarks/CyRK_SciPy_Compare_predprey_v0-8-6-dev0.png create mode 100644 CyRK/cy/rk_step.c diff --git a/.gitignore b/.gitignore index 5aaba5e..83d67b8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ # Include non-generated c files !CyRK/array/interp_common.c +!CyRK/cy/rk_step.c # Ignore coverage files .coverage @@ -17,6 +18,7 @@ __pycache__/ # Objext files *.so *.o +*.exe # Distribution / packaging .Python diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..fb26150 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,58 @@ +{ + "files.associations": { + "iterator": "c", + "xmemory": "c", + "xutility": "c", + "atomic": "c", + "bit": "c", + "cctype": "c", + "charconv": "c", + "clocale": "c", + "cmath": "c", + "compare": "c", + "complex": "c", + "concepts": "c", + "cstddef": "c", + "cstdint": "c", + "cstdio": "c", + "cstdlib": "c", + "cstring": "c", + "ctime": "c", + "cwchar": "c", + "exception": "c", + "format": "c", + "initializer_list": "c", + "ios": "c", + "iosfwd": "c", + "istream": "c", + "limits": "c", + "locale": "c", + "memory": "c", + "mutex": "c", + "new": "c", + "ostream": "c", + "ratio": "c", + "sstream": "c", + "stdexcept": "c", + "stop_token": "c", + "streambuf": "c", + "string": "c", + "system_error": "c", + "thread": "c", + "tuple": "c", + "type_traits": "c", + "typeinfo": "c", + "utility": "c", + "xfacet": "c", + "xiosbase": "c", + "xlocale": "c", + "xlocbuf": "c", + "xlocinfo": "c", + "xlocmes": "c", + "xlocmon": "c", + "xlocnum": "c", + "xloctime": "c", + "xstring": "c", + "xtr1common": "c" + } +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..cbf1a6a --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,28 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: gcc.exe build active file", + "command": "C:\\Software\\mingw64\\bin\\gcc.exe", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}\\${fileBasenameNoExtension}.exe" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/Benchmarks/CyRK - SciPy Comparison.ipynb b/Benchmarks/CyRK - SciPy Comparison.ipynb index ffa20d4..2dc510b 100644 --- a/Benchmarks/CyRK - SciPy Comparison.ipynb +++ b/Benchmarks/CyRK - SciPy Comparison.ipynb @@ -18,7 +18,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "0.8.4\n" + "0.8.6.dev0\n" ] } ], @@ -141,6 +141,9 @@ "name": "stdout", "output_type": "stream", "text": [ + "2024-01-19 17:19:09(+00:00:03::857421) - INFO : TidalPy initializing...\n", + "2024-01-19 17:19:09(+00:00:03::857421) - INFO : Output directory: N:\\Joe Documents\\Research\\Software\\CyRK\\Benchmarks\\TidalPy-Run_20240119-1719\n", + "2024-01-19 17:19:09(+00:00:03::857421) - INFO : TidalPy initialization complete.\n", "SciPy Solution\n" ] }, @@ -470,7 +473,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnUAAAHWCAYAAAARl3+JAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACngklEQVR4nOzdd1hT1xsH8G8SQFkCCha04m5Fa104akUUi9s62jpqFbWOgloctXW0Wqv+tNXiqmCriKPugaMqrqLgFooDhToYAiKCbFmBvL8/AqkhARJICOD7eZ7zmJxz7rnnHrB9PfeecwUACIwxxhhjrFoT6roDjDHGGGOs4jioY4wxxhirATioY4wxxhirATioY4wxxhirATioY4wxxhirATioY4wxxhirATioY4wxxhirATioY4wxxhirATioY4wxxhirATioY4xpXdu2bbFt2zZEREQgOzsbGRkZCA4Oxrx582BhYaF2e5GRkSAiWcrMzERwcDCmT5+uUNfR0RFEhE8++UQu39DQEKdOnUJeXh7GjRtX7mt7nZ6eHhYvXozIyEjk5OQgLCwMM2bMUPn49u3bw9fXF3FxcXj16hXCwsLwww8/wNDQUOU2Pv74Y1y8eBFpaWnIzMxEaGgopkyZUp7LAQD4+/vD39+/3MeratSoUQgJCUF2djbi4uKwdu1aGBsba/28jNU0xIkTJ07aSpMnT6a8vDy6d+8eubq6kqOjI3300Uc0f/58evLkCR05ckTtNiMjIykwMJC6du1KXbt2peHDh1NgYCARES1YsECurqOjIxERffLJJ7K8OnXqUGBgIGVnZ9PHH3+ssWv9448/KDs7m7755htydHSk//3vf1RQUKDQJ2XJzs6OsrKyKCQkhD777DPq3bs3LVmyhMRiMR09elSl83/33XeUn59Pv/32G/Xr14+cnJzIzc2Npk+fXu5r8vf3J39/f63+jnz++edERPTHH39Qr169aOrUqZSSkkJnzpzR+e8vJ07VLOm8A5w4caqhqVu3biQWi+nUqVNkYGCgUK6vr09DhgxRu93IyEg6ceKEXJ6pqSmlpKRQVFSUXH7xoM7Kyor++ecfSktLo169emnsWlu3bk0FBQU0f/58ufzff/+dXr16RRYWFqUev2zZMiIiatasmVz+5s2biYjI3Ny81OM7duxI+fn5NG/ePI3+DLUd1AmFQoqL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0nvvvVdqX5KSkmBhYVFq2/Pnz8eoUaPQvn17hTKJRKJwu1PZwpHXx73omornqfpzKDr+xIkTqFevHqZMmYKuXbuia9euAKTPZL6ubt26SExMVKltxhirDjio0xKtr36NBpAG6YSrMlRYHq3Z06akpODMmTOYPn260lkOMzMz2efk5GQcPXoUEydOxMSJE+Hj41Nm+0uXLsU333wDGxsbhbLz589j8ODBGDt2LH777bdS28nJycGJEyfg7u6OXr16oXv37mjbtq0KV1iy4kFQt27dZEFuWby8vDB//nwcP34cPXv2VOl8Dx48gK2tLd5++21Znp2dHczNzREWFgZAOnOnrF9FXrx4gdjYWDRr1gxPnjyRS1FRUSWeOyQkBK1bty61f7du3cKRI0ewatUqhbLExES5n2GLFi1gbGxcanuqateundxikG7duiEjIwOxsbGoW7cuWrdujeXLl+Pvv/9GeHh4icHpe++9p5H9/BhjrKrgoK66IgB+r30uXobCctUmdNTi5uYGkUiEmzdvYsSIEWjRogVatWqFmTNnKtwK3Lp1K1xcXGBnZ4cdO3aU2falS5dw//79Em+z+vv7Y9SoUXBxcSlx+xQXFxdMmjQJbdq0QdOmTTFu3DhkZWXJ9lsrr0aNGuHXX3/FO++8g9GjR2PmzJmlrqot7rfffsP333+Pv/76Cx9++GGZ9c+fP4+7d+9i9+7d6NChAzp37oydO3fi4sWLCA4OBgCsX78ekyZNwsSJE9GyZUv8+OOPaNOmjVw7P/74IxYsWICvv/4aLVu2xHvvvYcJEyZg9uzZJZ77zJkzaNOmTZlbfixatAhOTk5499135fL//vtvzJgxAx06dECnTp2wefNm5OXllXnNqjAwMIC3tzfs7OzQv39/LF26FL/99huISLbiderUqWjevDl69+4NDw8PhTYMDQ3RqVMnnD17ViN9YoyxqoCDuuosDMABABnF8tML88O0c9qoqCh07NgR/v7++PXXXxEaGopz586hT58+CltlnD9/HvHx8Thz5gzi4+NVat/DwwNTpkyRm6F63eXLlzFw4ECMGzcOXl5eCuWpqamYMmUKrly5grt376JPnz4YMmQIkpOT1b/Y1+zcuROGhoa4efMmNm3ahI0bN+KPP/5Qq43169djyZIlOHXqFD744IMy6w8bNgwpKSkICAjA+fPnERER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", "text/plain": [ "
" ] @@ -551,41 +554,41 @@ "text": [ "How much faster X is vs. Y\n", "End Time: 1.0e-03\n", - "\t nbrk_ode = 11.0x solve_ivp\t cyrk_ode = 16.8x solve_ivp\n", - "\t CySolver = 21.7x solve_ivp\t nbrk_ode = 0.7x cyrk_ode\n", - "\t CySolver = 2.0x nbrk_ode\t CySolver = 1.3x cyrk_ode\n", + "\t nbrk_ode = 10.9x solve_ivp\t cyrk_ode = 17.6x solve_ivp\n", + "\t CySolver = 22.5x solve_ivp\t nbrk_ode = 0.6x cyrk_ode\n", + "\t CySolver = 2.1x nbrk_ode\t CySolver = 1.3x cyrk_ode\n", "End Time: 1.0e-02\n", - "\t nbrk_ode = 10.9x solve_ivp\t cyrk_ode = 17.1x solve_ivp\n", - "\t CySolver = 21.9x solve_ivp\t nbrk_ode = 0.6x cyrk_ode\n", + "\t nbrk_ode = 11.3x solve_ivp\t cyrk_ode = 17.7x solve_ivp\n", + "\t CySolver = 23.2x solve_ivp\t nbrk_ode = 0.6x cyrk_ode\n", "\t CySolver = 2.0x nbrk_ode\t CySolver = 1.3x cyrk_ode\n", "End Time: 1.0e-01\n", - "\t nbrk_ode = 16.0x solve_ivp\t cyrk_ode = 20.4x solve_ivp\n", - "\t CySolver = 32.0x solve_ivp\t nbrk_ode = 0.8x cyrk_ode\n", - "\t CySolver = 2.0x nbrk_ode\t CySolver = 1.6x cyrk_ode\n", + "\t nbrk_ode = 15.8x solve_ivp\t cyrk_ode = 21.4x solve_ivp\n", + "\t CySolver = 33.2x solve_ivp\t nbrk_ode = 0.7x cyrk_ode\n", + "\t CySolver = 2.1x nbrk_ode\t CySolver = 1.6x cyrk_ode\n", "End Time: 1.0e+00\n", - "\t nbrk_ode = 30.2x solve_ivp\t cyrk_ode = 28.0x solve_ivp\n", - "\t CySolver = 66.0x solve_ivp\t nbrk_ode = 1.1x cyrk_ode\n", - "\t CySolver = 2.2x nbrk_ode\t CySolver = 2.4x cyrk_ode\n", + "\t nbrk_ode = 31.8x solve_ivp\t cyrk_ode = 28.7x solve_ivp\n", + "\t CySolver = 68.1x solve_ivp\t nbrk_ode = 1.1x cyrk_ode\n", + "\t CySolver = 2.1x nbrk_ode\t CySolver = 2.4x cyrk_ode\n", "End Time: 1.0e+01\n", - "\t nbrk_ode = 93.5x solve_ivp\t cyrk_ode = 36.8x solve_ivp\n", - "\t CySolver = 296.3x solve_ivp\t nbrk_ode = 2.5x cyrk_ode\n", - "\t CySolver = 3.2x nbrk_ode\t CySolver = 8.0x cyrk_ode\n", + "\t nbrk_ode = 102.3x solve_ivp\t cyrk_ode = 38.0x solve_ivp\n", + "\t CySolver = 314.6x solve_ivp\t nbrk_ode = 2.7x cyrk_ode\n", + "\t CySolver = 3.1x nbrk_ode\t CySolver = 8.3x cyrk_ode\n", "End Time: 1.0e+02\n", - "\t nbrk_ode = 122.5x solve_ivp\t cyrk_ode = 37.7x solve_ivp\n", - "\t CySolver = 466.5x solve_ivp\t nbrk_ode = 3.2x cyrk_ode\n", - "\t CySolver = 3.8x nbrk_ode\t CySolver = 12.4x cyrk_ode\n", + "\t nbrk_ode = 131.4x solve_ivp\t cyrk_ode = 38.4x solve_ivp\n", + "\t CySolver = 433.1x solve_ivp\t nbrk_ode = 3.4x cyrk_ode\n", + "\t CySolver = 3.3x nbrk_ode\t CySolver = 11.3x cyrk_ode\n", "End Time: 1.0e+03\n", - "\t nbrk_ode = 113.8x solve_ivp\t cyrk_ode = 35.5x solve_ivp\n", - "\t CySolver = 446.3x solve_ivp\t nbrk_ode = 3.2x cyrk_ode\n", - "\t CySolver = 3.9x nbrk_ode\t CySolver = 12.6x cyrk_ode\n", + "\t nbrk_ode = 126.3x solve_ivp\t cyrk_ode = 38.6x solve_ivp\n", + "\t CySolver = 494.9x solve_ivp\t nbrk_ode = 3.3x cyrk_ode\n", + "\t CySolver = 3.9x nbrk_ode\t CySolver = 12.8x cyrk_ode\n", "End Time: 1.0e+04\n", - "\t nbrk_ode = 103.0x solve_ivp\t cyrk_ode = 37.4x solve_ivp\n", - "\t CySolver = 465.8x solve_ivp\t nbrk_ode = 2.8x cyrk_ode\n", - "\t CySolver = 4.5x nbrk_ode\t CySolver = 12.5x cyrk_ode\n", + "\t nbrk_ode = 113.1x solve_ivp\t cyrk_ode = 40.5x solve_ivp\n", + "\t CySolver = 478.4x solve_ivp\t nbrk_ode = 2.8x cyrk_ode\n", + "\t CySolver = 4.2x nbrk_ode\t CySolver = 11.8x cyrk_ode\n", "End Time: 1.0e+05\n", - "\t nbrk_ode = 96.9x solve_ivp\t cyrk_ode = 37.5x solve_ivp\n", - "\t CySolver = 426.3x solve_ivp\t nbrk_ode = 2.6x cyrk_ode\n", - "\t CySolver = 4.4x nbrk_ode\t CySolver = 11.4x cyrk_ode\n" + "\t nbrk_ode = 109.3x solve_ivp\t cyrk_ode = 40.5x solve_ivp\n", + "\t CySolver = 460.8x solve_ivp\t nbrk_ode = 2.7x cyrk_ode\n", + "\t CySolver = 4.2x nbrk_ode\t CySolver = 11.4x cyrk_ode\n" ] } ], diff --git a/Benchmarks/CyRK_CySolver.pdf b/Benchmarks/CyRK_CySolver.pdf index db796274fd2366e239f1ce4e0beae7d66cdbc77e..3720421968013cbf4f33590ef5b7c13fcd8197bd 100644 GIT binary patch delta 24 ecmdm(voU8wwlTMffuW(Lp*av+ZZ0$4%>)2!HV5bc delta 24 fcmdm(voU8wwlTM{p@E^fk)esPf#K#dds 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 O+p4u)^Nxm<&;J2%G^G>( literal 0 HcmV?d00001 diff --git a/Benchmarks/CyRK_cyrk_ode.pdf b/Benchmarks/CyRK_cyrk_ode.pdf index db796274fd2366e239f1ce4e0beae7d66cdbc77e..3720421968013cbf4f33590ef5b7c13fcd8197bd 100644 GIT binary patch delta 24 ecmdm(voU8wwlTMffuW(Lp*av+ZZ0$4%>)2!HV5bc delta 24 fcmdm(voU8wwlTM{p@E^fk)esPf#K#d)2!HV5bc delta 24 fcmdm(voU8wwlTM{p@E^fk)esPfx+f7)2!O9$it delta 24 fcmdm#vngjojxo2fp@E^fk)er^snO self.max_step: - self.step_size = self.max_step - elif self.step_size < min_step: - self.step_size = min_step - - # Determine new step size - step_accepted = False - step_rejected = False - step_error = False - - # Optimization variables - cdef double A_at_10 - # Define a very specific A (Row 1; Col 0) now since it is called consistently and does not change. - A_at_10 = self.A_ptr[1 * self.len_Acols + 0] - - # # Step Loop - while not step_accepted: - if self.step_size < min_step: - step_error = True - self.status = -1 - break - - # Move time forward for this particular step size - if self.direction_flag: - step = self.step_size - self.t_now = self.t_old + step - t_delta_check = self.t_now - self.t_end - else: - step = -self.step_size - self.t_now = self.t_old + step - t_delta_check = self.t_end - self.t_now - - # Check that we are not at the end of integration with that move - if t_delta_check > 0.: - self.t_now = self.t_end - - # If we are, correct the step so that it just hits the end of integration. - step = self.t_now - self.t_old - if self.direction_flag: - self.step_size = step - else: - self.step_size = -step - - # # Calculate derivative using RK method - - # t_now must be updated for each loop of s in order to make the diffeq calls. - # But we need to return to its original value later on. Store in temp variable. - time_tmp = self.t_now - - for s in range(1, self.len_C): - # Update t_now so it can be used in the diffeq call. - self.t_now = self.t_old + self.C_ptr[s] * step - - # Dot Product (K, a) * step - if s == 1: - for i in range(self.y_size): - # Set the first column of K - temp_double = self.dy_old_ptr[i] - # K[0, :] == first part of the array - self.K_ptr[i] = temp_double - - # Calculate y_new for s==1 - self.y_ptr[i] = self.y_old_ptr[i] + (temp_double * A_at_10 * step) - else: - for j in range(s): - temp_double = self.A_ptr[s * self.len_Acols + j] * step - for i in range(self.y_size): - if j == 0: - # Initialize - self.y_ptr[i] = self.y_old_ptr[i] - - self.y_ptr[i] += self.K_ptr[j * self.y_size + i] * temp_double - - # Call diffeq to update K with the new dydt - self.diffeq() - - for i in range(self.y_size): - self.K_ptr[s * self.y_size + i] = self.dy_ptr[i] - - # Restore t_now to its previous value. - self.t_now = time_tmp - - # Dot Product (K, B) * step - for j in range(self.rk_n_stages): - temp_double = self.B_ptr[j] * step - # We do not use rk_n_stages_plus1 here because we are chopping off the last row of K to match - # the shape of B. - for i in range(self.y_size): - if j == 0: - # Initialize - self.y_ptr[i] = self.y_old_ptr[i] - - self.y_ptr[i] += self.K_ptr[j * self.y_size + i] * temp_double - - # Find final dydt for this timestep - self.diffeq() - - # Check how well this step performed by calculating its error - if self.rk_method == 2: - # Calculate Error for DOP853 - # Dot Product (K, E5) / scale and Dot Product (K, E3) * step / scale - error_norm3 = 0. - error_norm5 = 0. - for i in range(self.y_size): - # Find scale of y for error calculations - scale = (self.atols_ptr[i] + - max(fabs(self.y_old_ptr[i]), fabs(self.y_ptr[i])) * self.rtols_ptr[i]) - - # Set last array of K equal to dydt - self.K_ptr[self.rk_n_stages * self.y_size + i] = self.dy_ptr[i] - # Initialize - error_dot_1 = 0. - error_dot_2 = 0. - for j in range(self.rk_n_stages_plus1): - - temp_double = self.K_ptr[j * self.y_size + i] - error_dot_1 += temp_double * self.E3_ptr[j] - error_dot_2 += temp_double * self.E5_ptr[j] - - # We need the absolute value but since we are taking the square, it is guaranteed to be positive. - # TODO: This will need to change if CySolver ever accepts complex numbers - # error_norm3_abs = fabs(error_dot_1) - # error_norm5_abs = fabs(error_dot_2) - error_dot_1 /= scale - error_dot_2 /= scale - - error_norm3 += (error_dot_1 * error_dot_1) - error_norm5 += (error_dot_2 * error_dot_2) - - # Check if errors are zero - if (error_norm5 == 0.) and (error_norm3 == 0.): - error_norm = 0. - else: - error_denom = error_norm5 + 0.01 * error_norm3 - error_norm = self.step_size * error_norm5 / sqrt(error_denom * self.y_size_dbl) - - else: - # Calculate Error for RK23 and RK45 - # Dot Product (K, E) * step / scale - error_norm = 0. - for i in range(self.y_size): - # Find scale of y for error calculations - scale = (self.atols_ptr[i] + - max(fabs(self.y_old_ptr[i]), fabs(self.y_ptr[i])) * self.rtols_ptr[i]) - - # Set last array of K equal to dydt - self.K_ptr[self.rk_n_stages * self.y_size + i] = self.dy_ptr[i] - # Initialize - error_dot_1 = 0. - for j in range(self.rk_n_stages_plus1): - - error_dot_1 += self.K_ptr[j * self.y_size + i] * self.E_ptr[j] - - # We need the absolute value but since we are taking the square, it is guaranteed to be positive. - # TODO: This will need to change if CySolver ever accepts complex numbers - # error_norm_abs = fabs(error_dot_1) - error_dot_1 *= (step / scale) - - error_norm += (error_dot_1 * error_dot_1) - error_norm = sqrt(error_norm) / self.y_size_sqrt - - if error_norm < 1.: - # The error is low! Let's update this step for the next time loop - if error_norm == 0.: - step_factor = MAX_FACTOR - else: - error_pow = pow(error_norm, -self.error_expo) - step_factor = fmin(MAX_FACTOR, SAFETY * error_pow) - - if step_rejected: - # There were problems with this step size on the previous step loop. Make sure factor does - # not exasperate them. - step_factor = fmin(step_factor, 1.) - - self.step_size = self.step_size * step_factor - step_accepted = True - else: - error_pow = pow(error_norm, -self.error_expo) - self.step_size = self.step_size * fmax(MIN_FACTOR, SAFETY * error_pow) - step_rejected = True - - if step_error: - # Issue with step convergence - self.status = -1 - elif not step_accepted: - # Issue with step convergence - self.status = -7 - - # End of step loop. Update the 'old' variables - self.t_old = self.t_now - for i in range(self.y_size): - self.y_old_ptr[i] = self.y_ptr[i] - self.dy_old_ptr[i] = self.dy_ptr[i] + # cdef void rk_step(self) noexcept nogil: + # """ Performs a Runge-Kutta step calculation including local error determination. """ + + # # Initialize step variables + # cdef size_t s, i, j + # cdef double min_step, step, step_factor, time_tmp, t_delta_check + # cdef double scale, temp_double + # cdef double error_norm3, error_norm5, error_norm, error_dot_1, error_dot_2, error_denom, error_pow + # cdef bool_cpp_t step_accepted, step_rejected, step_error + + # # Run RK integration step + # # Determine step size based on previous loop + # # Find minimum step size based on the value of t (less floating point numbers between numbers when t is large) + # min_step = 10. * fabs(nextafter(self.t_old, self.direction_inf) - self.t_old) + # # Look for over/undershoots in previous step size + # if self.step_size > self.max_step: + # self.step_size = self.max_step + # elif self.step_size < min_step: + # self.step_size = min_step + + # # Determine new step size + # step_accepted = False + # step_rejected = False + # step_error = False + + # # Optimization variables + # cdef double A_at_10 + # # Define a very specific A (Row 1; Col 0) now since it is called consistently and does not change. + # A_at_10 = self.A_ptr[1 * self.len_Acols + 0] + + # # # Step Loop + # while not step_accepted: + # if self.step_size < min_step: + # step_error = True + # self.status = -1 + # break + + # # Move time forward for this particular step size + # if self.direction_flag: + # step = self.step_size + # self.t_now = self.t_old + step + # t_delta_check = self.t_now - self.t_end + # else: + # step = -self.step_size + # self.t_now = self.t_old + step + # t_delta_check = self.t_end - self.t_now + + # # Check that we are not at the end of integration with that move + # if t_delta_check > 0.: + # self.t_now = self.t_end + + # # If we are, correct the step so that it just hits the end of integration. + # step = self.t_now - self.t_old + # if self.direction_flag: + # self.step_size = step + # else: + # self.step_size = -step + + # # # Calculate derivative using RK method + + # # t_now must be updated for each loop of s in order to make the diffeq calls. + # # But we need to return to its original value later on. Store in temp variable. + # time_tmp = self.t_now + + # for s in range(1, self.len_C): + # # Update t_now so it can be used in the diffeq call. + # self.t_now = self.t_old + self.C_ptr[s] * step + + # # Dot Product (K, a) * step + # if s == 1: + # for i in range(self.y_size): + # # Set the first column of K + # temp_double = self.dy_old_ptr[i] + # # K[0, :] == first part of the array + # self.K_ptr[i] = temp_double + + # # Calculate y_new for s==1 + # self.y_ptr[i] = self.y_old_ptr[i] + (temp_double * A_at_10 * step) + # else: + # for j in range(s): + # temp_double = self.A_ptr[s * self.len_Acols + j] * step + # for i in range(self.y_size): + # if j == 0: + # # Initialize + # self.y_ptr[i] = self.y_old_ptr[i] + + # self.y_ptr[i] += self.K_ptr[j * self.y_size + i] * temp_double + + # # Call diffeq to update K with the new dydt + # self.diffeq() + + # for i in range(self.y_size): + # self.K_ptr[s * self.y_size + i] = self.dy_ptr[i] + + # # Restore t_now to its previous value. + # self.t_now = time_tmp + + # # Dot Product (K, B) * step + # for j in range(self.rk_n_stages): + # temp_double = self.B_ptr[j] * step + # # We do not use rk_n_stages_plus1 here because we are chopping off the last row of K to match + # # the shape of B. + # for i in range(self.y_size): + # if j == 0: + # # Initialize + # self.y_ptr[i] = self.y_old_ptr[i] + + # self.y_ptr[i] += self.K_ptr[j * self.y_size + i] * temp_double + + # # Find final dydt for this timestep + # self.diffeq() + + # # Check how well this step performed by calculating its error + # if self.rk_method == 2: + # # Calculate Error for DOP853 + # # Dot Product (K, E5) / scale and Dot Product (K, E3) * step / scale + # error_norm3 = 0. + # error_norm5 = 0. + # for i in range(self.y_size): + # # Find scale of y for error calculations + # scale = (self.atols_ptr[i] + + # max(fabs(self.y_old_ptr[i]), fabs(self.y_ptr[i])) * self.rtols_ptr[i]) + + # # Set last array of K equal to dydt + # self.K_ptr[self.rk_n_stages * self.y_size + i] = self.dy_ptr[i] + # # Initialize + # error_dot_1 = 0. + # error_dot_2 = 0. + # for j in range(self.rk_n_stages_plus1): + + # temp_double = self.K_ptr[j * self.y_size + i] + # error_dot_1 += temp_double * self.E3_ptr[j] + # error_dot_2 += temp_double * self.E5_ptr[j] + + # # We need the absolute value but since we are taking the square, it is guaranteed to be positive. + # # TODO: This will need to change if CySolver ever accepts complex numbers + # # error_norm3_abs = fabs(error_dot_1) + # # error_norm5_abs = fabs(error_dot_2) + # error_dot_1 /= scale + # error_dot_2 /= scale + + # error_norm3 += (error_dot_1 * error_dot_1) + # error_norm5 += (error_dot_2 * error_dot_2) + + # # Check if errors are zero + # if (error_norm5 == 0.) and (error_norm3 == 0.): + # error_norm = 0. + # else: + # error_denom = error_norm5 + 0.01 * error_norm3 + # error_norm = self.step_size * error_norm5 / sqrt(error_denom * self.y_size_dbl) + + # else: + # # Calculate Error for RK23 and RK45 + # # Dot Product (K, E) * step / scale + # error_norm = 0. + # for i in range(self.y_size): + # # Find scale of y for error calculations + # scale = (self.atols_ptr[i] + + # max(fabs(self.y_old_ptr[i]), fabs(self.y_ptr[i])) * self.rtols_ptr[i]) + + # # Set last array of K equal to dydt + # self.K_ptr[self.rk_n_stages * self.y_size + i] = self.dy_ptr[i] + # # Initialize + # error_dot_1 = 0. + # for j in range(self.rk_n_stages_plus1): + + # error_dot_1 += self.K_ptr[j * self.y_size + i] * self.E_ptr[j] + + # # We need the absolute value but since we are taking the square, it is guaranteed to be positive. + # # TODO: This will need to change if CySolver ever accepts complex numbers + # # error_norm_abs = fabs(error_dot_1) + # error_dot_1 *= (step / scale) + + # error_norm += (error_dot_1 * error_dot_1) + # error_norm = sqrt(error_norm) / self.y_size_sqrt + + # if error_norm < 1.: + # # The error is low! Let's update this step for the next time loop + # if error_norm == 0.: + # step_factor = MAX_FACTOR + # else: + # error_pow = pow(error_norm, -self.error_expo) + # step_factor = fmin(MAX_FACTOR, SAFETY * error_pow) + + # if step_rejected: + # # There were problems with this step size on the previous step loop. Make sure factor does + # # not exasperate them. + # step_factor = fmin(step_factor, 1.) + + # self.step_size = self.step_size * step_factor + # step_accepted = True + # else: + # error_pow = pow(error_norm, -self.error_expo) + # self.step_size = self.step_size * fmax(MIN_FACTOR, SAFETY * error_pow) + # step_rejected = True + + # if step_error: + # # Issue with step convergence + # self.status = -1 + # elif not step_accepted: + # # Issue with step convergence + # self.status = -7 + + # # End of step loop. Update the 'old' variables + # self.t_old = self.t_now + # for i in range(self.y_size): + # self.y_old_ptr[i] = self.y_ptr[i] + # self.dy_old_ptr[i] = self.dy_ptr[i] cpdef void solve( self, @@ -1015,7 +1015,43 @@ cdef class CySolver: break # # Perform RK Step - self.rk_step() + rk_step_cf( + self, + self.diffeq, + self.t_end, + self.direction_flag, + self.direction_inf, + self.y_size, + self.y_size_dbl, + self.y_size_sqrt, + &self.t_now, + self.y_ptr, + self.dy_ptr, + &self.t_old, + self.y_old_ptr, + self.dy_old_ptr, + &self.step_size, + &self.status, + self.atols_ptr, + self.rtols_ptr, + self.max_step, + self.rk_method, + self.rk_n_stages, + self.rk_n_stages_plus1, + self.len_Acols, + self.len_C, + self.A_ptr, + self.B_ptr, + self.C_ptr, + self.K_ptr, + self.E_ptr, + self.E3_ptr, + self.E5_ptr, + self.error_expo, + MIN_FACTOR, + MAX_FACTOR, + SAFETY + ) # Check if an error occurred during step calculations before storing data. if self.status != 0: diff --git a/CyRK/cy/rk_step.c b/CyRK/cy/rk_step.c new file mode 100644 index 0000000..dada653 --- /dev/null +++ b/CyRK/cy/rk_step.c @@ -0,0 +1,317 @@ +#include // `size_t` +#include // `bool` +#include // `fmin`, `fmax`, `fabs` + +// Create a fake struct to trick C into accepting the CySolver class (which contains the diffeq function) +struct CySolverStruct +{ + char status; +}; + + +char rk_step_cf( + // Pointer to the CySolver instance + struct CySolverStruct* cysolver_inst, + // Pointer to differential equation + void (*diffeq)(CySolverStruct), + + // t-related variables + double t_end, + bool direction_flag, + double direction_inf, + + // y-related variables + size_t y_size, + double y_size_dbl, + double y_size_sqrt, + + // Pointers to class attributes that can change during rk_step call. + double* t_now_ptr, + double* y_ptr, + double* dy_ptr, + double* t_old_ptr, + double* y_old_ptr, + double* dy_old_ptr, + double* step_size_ptr, + char* status_ptr, + + // Integration tolerance variables and pointers + double* atols_ptr, + double* rtols_ptr, + double max_step, + + // RK specific variables and pointers + unsigned char rk_method, + size_t rk_n_stages, + size_t rk_n_stages_plus1, + size_t len_Acols, + size_t len_C, + double* A_ptr, + double* B_ptr, + double* C_ptr, + double* K_ptr, + double* E_ptr, + double* E3_ptr, + double* E5_ptr, + double error_expo, + double min_step_factor, + double max_step_factor, + double error_safety + ){ + /** + * Performs a Runge-Kutta step calculation including local error determination. + */ + + // Initialize step variables + double min_step, step, step_factor, time_tmp, t_delta_check; + double scale, temp_double; + double error_norm3, error_norm5, error_norm, error_dot_1, error_dot_2, error_denom, error_pow; + bool step_accepted, step_rejected, step_error; + + // Store values from pointers so that they do not have to be dereferenced multiple times + double t_now = *t_now_ptr; + double t_old = *t_old_ptr; + double step_size = *step_size_ptr; + + // Run RK integration step + // Determine step size based on previous loop + // Find minimum step size based on the value of t (less floating point numbers between numbers when t is large) + min_step = 10. * fabs(nextafter(t_old, direction_inf) - t_old); + // Look for over/undershoots in previous step size + if (step_size > max_step) { + step_size = max_step; + } else if (step_size < min_step) { + step_size = min_step; + } + + // Determine new step size + step_accepted = false; + step_rejected = false; + step_error = false; + + // Optimization variables + double A_at_10; + // Define a very specific A (Row 1; Col 0) now since it is called consistently and does not change. + A_at_10 = A_ptr[1 * len_Acols + 0]; + + // !! Step Loop + while (!step_accepted) { + + // Check if step size is too small + // This will cause integration to fail: step size smaller than spacing betweeen numbers + if (step_size < min_step) { + step_error = true; + *status_ptr = -1; + break; + } + + // Move time forward for this particular step size + if (direction_flag) { + step = step_size; + t_now = t_old + step; + t_delta_check = t_now - t_end; + } else { + step = -step_size; + t_now = t_old + step; + t_delta_check = t_end - t_now; + } + + // Check that we are not at the end of integration with that move + if (t_delta_check > 0.0) { + t_now = t_end; + + // If we are, correct the step so that it just hits the end of integration. + step = t_now - t_old; + if (direction_flag){ + step_size = step; + } else { + step_size = -step; + } + } + + // !! Calculate derivative using RK method + + // t_now must be updated for each loop of s in order to make the diffeq calls. + // But we need to return to its original value later on. Store in temp variable. + time_tmp = t_now; + + for (size_t s = 1; s < len_C; s++) { + // Find the current time based on the old time and the step size. + t_now = t_old + C_ptr[s] * step; + // Update the value stored at the t_now pointer so it can be used in the diffeq function. + *t_now_ptr = t_now; + + // Dot Product (K, a) * step + if (s == 1) { + for (size_t i = 0; i < y_size; i++) { + // Set the first column of K + temp_double = dy_old_ptr[i]; + // K[0, :] == first part of the array + K_ptr[i] = temp_double; + + // Calculate y_new for s==1 + y_ptr[i] = y_old_ptr[i] + (temp_double * A_at_10 * step); + } + } else { + for (size_t j = 0; j < s; j++) { + temp_double = A_ptr[s * len_Acols + j] * step; + for (size_t i = 0; i < y_size; i++) { + if (j == 0){ + // Initialize + y_ptr[i] = y_old_ptr[i]; + } + y_ptr[i] += K_ptr[j * y_size + i] * temp_double; + } + } + } + // Call diffeq to update K with the new dydt + // This will use the now updated values at y_ptr and t_now_ptr. It will update values at dy_ptr. + (*diffeq)(*cysolver_inst); + + // Update K based on the new dy values. + for (size_t i = 0; i < y_size; i++) { + K_ptr[s * y_size + i] = dy_ptr[i]; + } + } + + // Restore t_now to its previous value. + t_now = time_tmp; + // Update the pointer. + *t_now_ptr = t_now; + + // Dot Product (K, B) * step + for (size_t j = 0; j < rk_n_stages; j++) { + temp_double = B_ptr[j] * step; + // We do not use rk_n_stages_plus1 here because we are chopping off the last row of K to match + // the shape of B. + for (size_t i = 0; i < y_size; i++) { + if (j == 0) { + // Initialize + y_ptr[i] = y_old_ptr[i]; + } + y_ptr[i] += K_ptr[j * y_size + i] * temp_double; + } + } + + // Find final dydt for this timestep + // This will use the now final values at y_ptr and t_now_ptr. It will update values at dy_ptr. + (*diffeq)(*cysolver_inst); + + // Check how well this step performed by calculating its error. + if (rk_method == 2) { + // Calculate Error for DOP853 + // Dot Product (K, E5) / scale and Dot Product (K, E3) * step / scale + error_norm3 = 0.0; + error_norm5 = 0.0; + for (size_t i = 0; i < y_size; i++) { + // Find scale of y for error calculations + scale = (atols_ptr[i] + fmax(fabs(y_old_ptr[i]), fabs(y_ptr[i])) * rtols_ptr[i]); + + // Set last array of K equal to dydt + K_ptr[rk_n_stages * y_size + i] = dy_ptr[i]; + + // Initialize + error_dot_1 = 0.0; + error_dot_2 = 0.0; + + for (size_t j = 0; j < rk_n_stages_plus1; j++) { + temp_double = K_ptr[j * y_size + i]; + error_dot_1 += temp_double * E3_ptr[j]; + error_dot_2 += temp_double * E5_ptr[j]; + } + // We need the absolute value but since we are taking the square, it is guaranteed to be positive. + // TODO: This will need to change if CySolver ever accepts complex numbers + // error_norm3_abs = fabs(error_dot_1) + // error_norm5_abs = fabs(error_dot_2) + error_dot_1 /= scale; + error_dot_2 /= scale; + + error_norm3 += (error_dot_1 * error_dot_1); + error_norm5 += (error_dot_2 * error_dot_2); + } + // Check if errors are zero + if ((error_norm5 == 0.0) && (error_norm3) == 0.0) { + error_norm = 0.0; + } else { + error_denom = error_norm5 + 0.01 * error_norm3; + error_norm = step_size * error_norm5 / sqrt(error_denom * y_size_dbl); + } + } else { + // Calculate Error for RK23 and RK45 + // Dot Product (K, E) * step / scale + error_norm = 0.0; + for (size_t i = 0; i < y_size; i++) { + // Find scale of y for error calculations + scale = (atols_ptr[i] + fmax(fabs(y_old_ptr[i]), fabs(y_ptr[i])) * rtols_ptr[i]); + + // Set last array of K equal to dydt + K_ptr[rk_n_stages * y_size + i] = dy_ptr[i]; + + // Initialize + error_dot_1 = 0.0; + + for (size_t j = 0; j < rk_n_stages_plus1; j++) { + error_dot_1 += K_ptr[j * y_size + i] * E_ptr[j]; + } + + // We need the absolute value but since we are taking the square, it is guaranteed to be positive. + // TODO: This will need to change if CySolver ever accepts complex numbers + // error_norm_abs = fabs(error_dot_1) + error_dot_1 *= (step / scale); + + error_norm += (error_dot_1 * error_dot_1); + } + error_norm = sqrt(error_norm) / y_size_sqrt; + } + + // Check the size of the error + if (error_norm < 1.0) { + // We found our step size because the error is low! + // Update this step for the next time loop + if (error_norm == 0.0) { + step_factor = max_step_factor; + } else { + error_pow = pow(error_norm, -error_expo); + step_factor = fmin(max_step_factor, error_safety * error_pow); + } + + if (step_rejected) { + // There were problems with this step size on the previous step loop. Make sure factor does + // not exasperate them. + step_factor = fmin(step_factor, 1.); + } + + // Update step size + step_size *= step_factor; + step_accepted = true; + } else { + // Error is still large. Keep searching for a better step size. + error_pow = pow(error_norm, -error_expo); + step_size *= fmax(min_step_factor, error_safety * error_pow); + step_rejected = true; + } + } + + // Update status depending if there were any errors. + if (step_error) { + // Issue with step convergence + *status_ptr = -1; + } else if (!step_accepted) { + // Issue with step convergence + *status_ptr = -7; + } + + // End of RK step. + // Update "old" pointers + *t_old_ptr = t_now; + for (size_t i = 0; i < y_size; i++) + { + y_old_ptr[i] = y_ptr[i]; + dy_old_ptr[i] = dy_ptr[i]; + } + + // Update any other pointers + *step_size_ptr = step_size; + + return 0; +} diff --git a/Performance/cyrk_performance-DOP853.csv b/Performance/cyrk_performance-DOP853.csv index 792d2fc..77fc742 100644 --- a/Performance/cyrk_performance-DOP853.csv +++ b/Performance/cyrk_performance-DOP853.csv @@ -18,3 +18,4 @@ CyRK Version, Run-on Date, cython (avg), cython (std),CySolver (avg),CySolver (s 0.8.0, 06/09/2023 15:03:15, 0.9615, 0.0011, 0.0561, 0.0001, 0.1602, 0.0004, 9.8846, 0.1049, 0.4796, 0.0010, 1.4545, 0.0154, 0.4413, 0.0005, 0.0376, 0.0001, 0.0953, 0.0001, 4.3959, 0.0170, 0.2890, 0.0007, 0.7862, 0.0168, 1.4213, 0.0046, 0.0937, 0.0005, 0.2464, 0.0012, 19.5317, 0.0414, 1.1684, 0.0054, 3.1531, 0.0143, 1.6563, 0.0055, 0.0989, 0.0018, 0.4797, 0.0064, 22.9818, 0.1217, 1.2122, 0.0250, 6.4178, 0.0221 0.8.3, 07/10/2023 02:40:03, 0.9727, 0.0033, 0.0587, 0.0014, 0.1625, 0.0006, 9.9439, 0.0246, 0.4990, 0.0070, 2.6214, 0.0527, 0.4393, 0.0008, 0.0400, 0.0006, 0.1034, 0.0063, 4.4720, 0.1096, 0.3114, 0.0025, 1.1428, 0.0021, 1.4298, 0.0046, 0.0987, 0.0009, 0.2440, 0.0019, 21.2338, 0.3276, 1.7444, 0.0077, 4.3900, 0.0738, 1.6848, 0.0280, 0.1039, 0.0003, 0.4644, 0.0006, 25.3711, 0.1346, 2.2809, 0.0329, 7.3621, 0.0222 0.8.4, 18/10/2023 12:49:04, 0.9453, 0.0036, 0.0574, 0.0012, 0.1718, 0.0070, 9.9086, 0.1287, 0.4833, 0.0013, 1.4208, 0.0060, 0.4293, 0.0016, 0.0383, 0.0001, 0.0956, 0.0006, 4.2518, 0.0123, 0.2944, 0.0001, 0.7605, 0.0005, 1.3829, 0.0014, 0.0931, 0.0001, 0.2438, 0.0003, 19.2126, 0.0622, 1.1729, 0.0003, 3.1186, 0.0861, 1.6221, 0.0111, 0.0957, 0.0000, 0.4634, 0.0006, 22.3320, 0.0879, 1.2067, 0.0012, 6.1291, 0.0053 +0.8.6.dev0, 19/01/2024 17:17:31, 0.9740, 0.0119, 0.0719, 0.0007, 0.1697, 0.0033, 10.2169, 0.2169, 0.6434, 0.0046, 1.4779, 0.0182, 0.4544, 0.0118, 0.0448, 0.0002, 0.0977, 0.0011, 4.3446, 0.0344, 0.3626, 0.0026, 0.7838, 0.0069, 1.4235, 0.0165, 0.1232, 0.0009, 0.2477, 0.0013, 19.7307, 0.1608, 1.5919, 0.0137, 3.1624, 0.0146, 1.6762, 0.0267, 0.1249, 0.0014, 0.5076, 0.0153, 23.4199, 0.2695, 1.6225, 0.0102, 6.4958, 0.1520 diff --git a/Performance/cyrk_performance-RK23.csv b/Performance/cyrk_performance-RK23.csv index f4e5eed..091770f 100644 --- a/Performance/cyrk_performance-RK23.csv +++ b/Performance/cyrk_performance-RK23.csv @@ -18,3 +18,4 @@ CyRK Version, Run-on Date, cython (avg), cython (std),CySolver (avg),CySolver (s 0.8.0, 06/09/2023 15:00:58, 4.4794, 0.0786, 0.2262, 0.0003, 0.8199, 0.0021, 43.1476, 0.0854, 2.1466, 0.0018, 10.1946, 0.1933, 2.7552, 0.0105, 0.1866, 0.0004, 0.5903, 0.0024, 26.9694, 0.1524, 1.7797, 0.0257, 5.9678, 0.0812, 4.7003, 0.0324, 0.2855, 0.0005, 0.9508, 0.0055, 80.1011, 0.3480, 4.8504, 0.0219, 20.8530, 0.2461, 5.5239, 0.0051, 0.3178, 0.0014, 1270.6912, 2197.9259, 95.6354, 0.1723, 5.4006, 0.0797, 35.0990, 0.8415 0.8.3, 07/10/2023 02:37:45, 4.5212, 0.1075, 0.2681, 0.0021, 0.7992, 0.0038, 43.9629, 0.3217, 2.5955, 0.0502, 9.2842, 0.4116, 2.7602, 0.0088, 0.2146, 0.0037, 0.5896, 0.0074, 27.1210, 0.1858, 2.0566, 0.0327, 5.7936, 0.0150, 4.8923, 0.0594, 0.3719, 0.0011, 0.9807, 0.0023, 82.6179, 0.6252, 6.0628, 0.0336, 20.2684, 0.2082, 5.6639, 0.0115, 0.9587, 0.2834, 1525.4251, 2635.4115, 105.9372, 0.3232, 14.0169, 0.0614, 45.0599, 0.8249 0.8.4, 18/10/2023 12:46:46, 4.4202, 0.0673, 0.2500, 0.0004, 0.8115, 0.0034, 43.1191, 0.0775, 2.4081, 0.0282, 10.0251, 0.7074, 2.7552, 0.0436, 0.2110, 0.0039, 0.5987, 0.0058, 26.5597, 0.2133, 1.9887, 0.0201, 5.8675, 0.1112, 4.7007, 0.0078, 0.3080, 0.0014, 0.9944, 0.0238, 81.1241, 0.3424, 5.5864, 0.7125, 19.9567, 0.1538, 5.4119, 0.0106, 0.3208, 0.0010, 1322.6941, 2287.9898, 96.8733, 2.3521, 5.5968, 0.1162, 36.6713, 0.3267 +0.8.6.dev0, 19/01/2024 17:15:11, 4.4655, 0.0540, 0.2520, 0.0024, 0.8384, 0.0112, 48.8406, 7.7300, 2.9519, 0.3498, 11.7789, 0.7832, 2.8343, 0.0050, 0.2088, 0.0027, 0.6362, 0.0114, 28.1720, 0.2013, 1.9729, 0.0399, 6.2734, 0.1911, 4.6792, 0.0865, 0.3271, 0.0109, 0.9865, 0.0228, 81.1380, 0.5222, 5.4767, 0.1452, 21.0884, 0.5013, 5.5224, 0.0985, 0.3386, 0.0031, 1388.9789, 2402.5092, 97.8889, 0.2533, 5.6968, 0.0210, 37.7595, 0.3566 diff --git a/Performance/cyrk_performance-RK45.csv b/Performance/cyrk_performance-RK45.csv index 8b9cfba..18a6ca4 100644 --- a/Performance/cyrk_performance-RK45.csv +++ b/Performance/cyrk_performance-RK45.csv @@ -18,3 +18,4 @@ CyRK Version, Run-on Date, cython (avg), cython (std),CySolver (avg),CySolver (s 0.8.0, 06/09/2023 15:02:20, 1.2080, 0.0171, 0.0582, 0.0001, 0.2023, 0.0008, 11.8032, 0.0256, 0.4807, 0.0012, 1.8475, 0.0119, 0.8318, 0.0034, 0.0569, 0.0002, 0.1659, 0.0003, 8.1177, 0.0578, 0.4684, 0.0018, 1.4517, 0.0058, 1.6145, 0.0023, 0.0921, 0.0005, 0.2928, 0.0011, 23.6490, 0.0748, 1.2090, 0.0118, 4.0150, 0.0179, 1.8902, 0.0034, 0.0969, 0.0009, 0.5533, 0.0009, 27.6976, 0.0946, 1.2947, 0.0416, 7.9394, 0.0140 0.8.3, 07/10/2023 02:39:08, 1.2268, 0.0292, 0.0670, 0.0002, 0.2042, 0.0002, 13.0410, 0.0369, 1.0062, 0.0659, 2.6633, 0.0087, 0.8234, 0.0038, 0.0631, 0.0002, 0.1648, 0.0001, 8.8861, 0.0427, 0.7835, 0.0085, 2.1426, 0.0023, 1.6358, 0.0049, 0.1139, 0.0050, 0.6746, 0.0009, 26.8571, 0.1145, 3.0055, 0.0209, 6.6462, 0.1028, 1.9187, 0.0032, 0.1280, 0.0045, 0.9513, 0.0050, 32.9776, 0.3770, 4.3772, 0.1087, 10.9500, 0.0345 0.8.4, 18/10/2023 12:48:10, 1.1825, 0.0070, 0.0622, 0.0001, 0.2012, 0.0008, 11.7285, 0.0223, 0.5412, 0.0092, 1.8985, 0.0613, 0.8106, 0.0029, 0.0601, 0.0012, 0.1661, 0.0004, 7.9235, 0.0105, 0.4982, 0.0007, 1.4473, 0.0029, 1.6015, 0.0058, 0.0981, 0.0003, 0.2963, 0.0039, 23.5090, 0.0487, 1.3260, 0.0138, 4.0189, 0.0470, 1.8400, 0.0072, 0.1011, 0.0002, 0.5443, 0.0013, 27.1240, 0.0951, 1.3706, 0.0024, 7.7848, 0.0081 +0.8.6.dev0, 19/01/2024 17:16:37, 1.2017, 0.0135, 0.0660, 0.0009, 0.2108, 0.0051, 12.3765, 0.3199, 0.5768, 0.0072, 1.9711, 0.0868, 0.8322, 0.0089, 0.0641, 0.0009, 0.1722, 0.0016, 8.2980, 0.1150, 0.5397, 0.0067, 1.4598, 0.0102, 1.5830, 0.0190, 0.1096, 0.0029, 0.2914, 0.0037, 23.4215, 0.4064, 1.4328, 0.0234, 4.1562, 0.1338, 1.9550, 0.0320, 0.1128, 0.0013, 0.6329, 0.0182, 28.7108, 1.0286, 1.5263, 0.0154, 8.2360, 0.0257 diff --git a/cython_extensions.json b/cython_extensions.json index 535c0f8..206871c 100644 --- a/cython_extensions.json +++ b/cython_extensions.json @@ -43,7 +43,10 @@ }, "cysolver": { "name": "CyRK.cy.cysolver", - "sources": [["CyRK", "cy", "cysolver.pyx"]], + "sources": [ + ["CyRK", "cy", "cysolver.pyx"], + ["CyRK", "cy", "rk_step.c"] + ], "include_dirs": [["CyRK", "cy"]], "compile_args": [], "link_args": [] diff --git a/pyproject.toml b/pyproject.toml index 9d72547..0cbed48 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name='CyRK' -version = '0.8.5' +version = '0.8.6.dev2' description='Runge-Kutta ODE Integrator Implemented in Cython and Numba.' authors= [ {name = 'Joe P. Renaud', email = 'joe.p.renaud@gmail.com'} From 6986763418d3a6ddf89e40f256cedabe199a5222 Mon Sep 17 00:00:00 2001 From: Jrenaud-Desk Date: Sat, 20 Jan 2024 19:51:00 -0500 Subject: [PATCH 02/12] have the new rk_step.c compiling but having crashes --- Benchmarks/CyRK - SciPy Comparison.ipynb | 30 ++----- Benchmarks/CyRK_cyrk_ode.pdf | Bin 13873 -> 13873 bytes Benchmarks/CyRK_numba.pdf | Bin 13873 -> 13873 bytes Benchmarks/SciPy.pdf | Bin 13874 -> 13874 bytes CyRK/cy/cysolver.pxd | 53 ++++++------- CyRK/cy/cysolver.pyx | 96 +++++++++++------------ CyRK/cy/rk_step.c | 21 +++-- cython_extensions.json | 3 +- pyproject.toml | 2 +- 9 files changed, 90 insertions(+), 115 deletions(-) diff --git a/Benchmarks/CyRK - SciPy Comparison.ipynb b/Benchmarks/CyRK - SciPy Comparison.ipynb index 2dc510b..46b8fb9 100644 --- a/Benchmarks/CyRK - SciPy Comparison.ipynb +++ b/Benchmarks/CyRK - SciPy Comparison.ipynb @@ -18,7 +18,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "0.8.6.dev0\n" + "0.8.6.dev3\n" ] } ], @@ -141,9 +141,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "2024-01-19 17:19:09(+00:00:03::857421) - INFO : TidalPy initializing...\n", - "2024-01-19 17:19:09(+00:00:03::857421) - INFO : Output directory: N:\\Joe Documents\\Research\\Software\\CyRK\\Benchmarks\\TidalPy-Run_20240119-1719\n", - "2024-01-19 17:19:09(+00:00:03::857421) - INFO : TidalPy initialization complete.\n", + "2024-01-20 19:48:31(+00:00:12::662689) - INFO : TidalPy initializing...\n", + "2024-01-20 19:48:31(+00:00:12::663681) - INFO : Output directory: N:\\Joe Documents\\Research\\Software\\CyRK\\Benchmarks\\TidalPy-Run_20240120-1948\n", + "2024-01-20 19:48:31(+00:00:12::663681) - INFO : TidalPy initialization complete.\n", "SciPy Solution\n" ] }, @@ -233,28 +233,10 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "7322927e", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CyRK (Cython - CySolver) Solution\n" - ] - }, - { - "data": { - "image/png": "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U6NGjUq97Hk6Hn/8cXXppZeqo48+Wh133HHqF7/4hVqzZo0aMWKEaB3h8Vd/9Vfqox/9qDrssMPUYYcdpr7xjW+o7u5udfTRR4vGMR0nn3yyeuutt9TLL7+sbr/99r73Retojvnz56uVK1eqCRMm9B3jxo3Lis7pC1TU4/nnn1d33323671XXnlFfetb30q9bEU4Kjk869atU9dee23fv5uamtSWLVvUlVdemXp583yMGzdOKaXU6aefLlrHfGzatEn99V//tWgcwzFy5Ej12muvqQ9/+MPqmWeecTk8onU0x/z589Xvf//7qp+nqbNMacXEkCFDOOmkk1i4cKHr/YULF3LaaaelVKpiM23aNCZOnOjSvKenhyVLlojmIRk9ejQAmzdvBkTrOBg0aBAXXnghI0eO5LnnnhONY+Cuu+7il7/8JYsWLXK9L1pHy2GHHUZbWxtvvfUWDz74INOmTQPS11keHhoT48aNo7GxkY6ODtf7HR0dtLa2plSqYmPrWknzgw8+OI0iFYbbbruNZ599ltWrVwOidZRMnz6d5557jmHDhrFjxw7mzp3LH//4Rz7wgQ8AonFUXHjhhZx44onMmDFjwGdSn6PjhRde4HOf+xyvv/46EyZM4Ctf+QpLly7lmGOOSV1ncXhiRinl+ndDQ8OA94RoEc2j5Tvf+Q7HHXdcxYR70To8r732GieccAJjxozhk5/8JA888ACzZs3q+1w0Ds+UKVP413/9V84666yajzYQrcPzxBNP9L1etWoVzz33HG+++SaXXnopzz//PJCezjKlFRMbN26kt7d3QDRn/PjxA7xbIRrWr18PIJpHyB133MG5557Lhz70Idra2vreF62jY8+ePbz55pssX76cG264gRUrVvD3f//3onGEnHTSSUyYMIHly5ezZ88e9uzZw+zZs5k3bx579uzp01O0jp6uri5WrlzJYYcdlnqdFocnJvbs2cPy5cuZM2eO6/05c+awdOnSlEpVbN5++23a29tdmg8ZMoRZs2aJ5gG48847Of/88znjjDNYs2aN6zPROj4aGhoYOnSoaBwhixYtYvr06Zxwwgl9x+9+9zt+8IMfcMIJJ/DWW2+J1jHR1NTEUUcdRXt7eybqdOpZ3UU97GXpl19+uTryyCPVbbfdprZv364OOuig1MuW12PkyJHq+OOPV8cff7xSSqkvfvGL6vjjj+9b6n/ttdeqLVu2qE984hPqmGOOUT/4wQ9kaWmA46677lJbtmxRH/zgB13LS4cNG9Z3jWgd/vjmN7+pZs6cqQ4++GA1ffp09Y1vfEP19vaqM888UzSO+ei/Sku0jub4l3/5F/XBD35QTZ06VZ1yyinq5z//udq2bVtfv5eyzukLVOTjqquuUm+//bbavXu3WrZsmWtZrxz+j1mzZqlK3HfffX3XzJ8/X61bt07t2rVLLV68WB1zzDGplztvRzUuvfRS13Widbjj//7f/9tnHzo6OtSTTz7Z5+yIxvEe/R0e0Tqaw95Xp7u7W7333nvqpz/9qTrqqKMyoXOD9UIQBEEQBKGwSA6PIAiCIAiFRxweQRAEQRAKjzg8giAIgiAUHnF4BEEQBEEoPOLwCIIgCIJQeMThEQRBEASh8IjDIwiCIAhC4RGHRxAEQRCEwiMOjyAIgiAIhUccHkEQCs/tt9/OI488knYxBEFIEXF4BEEoPDNmzODFF19MuxiCIKSIPEtLEITC0tjYyM6dO2lqaup774UXXuDUU09NsVSCIKRBY9oFEARBiIu9e/cyc+ZMXnzxRY4//ng6OjrYvXt32sUSBCEFxOERBKGwKKWYNGkSGzdu5A9/+EPaxREEIUUkh0cQhELz/ve/nxUrVqRdDEEQUkYcHkEQCs0JJ5wgDo8gCOLwCIJQbI499liZzhIEQRweQRCKzaBBgzjuuOOYOHEiLS0taRdHEISUEIdHEIRC85WvfIULL7yQdevW8dWvfjXt4giCkBKyD48gCIIgCIVHIjyCIAiCIBQecXgEQRAEQSg84vAIgiAIglB4xOERBEEQBKHwiMMjCIIgCELhEYdHEARBEITCIw6PIAiCIAiFRxweQRAEQRAKjzg8giAIgiAUHnF4BEEQBEEoPOLwCIIgCIJQeP4/cZ4Fv1Dm5tcAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# CyRK - Cython CySolver\n", "CySolverTesterInst = CySolverTester(time_span, initial_conds, rk_method=1, args=args, rtol=rtol, atol=atol, auto_solve=True)\n", diff --git a/Benchmarks/CyRK_cyrk_ode.pdf b/Benchmarks/CyRK_cyrk_ode.pdf index 3720421968013cbf4f33590ef5b7c13fcd8197bd..61722429cd870fb29d90f7b9b0d27b8323146765 100644 GIT binary patch delta 21 ccmdm(voU8wo-v1!fuW^|rGfG0GUMG$09a=SNdN!< delta 21 bcmdm(voU8wo-v1^rJ*?xTW&5h-pvF6Si%QW diff --git a/Benchmarks/CyRK_numba.pdf b/Benchmarks/CyRK_numba.pdf index 3720421968013cbf4f33590ef5b7c13fcd8197bd..2fd1e6bdee0bacb71a8182aabd4663516a7db189 100644 GIT binary patch delta 21 ccmdm(voU8wo-v1!fuW^|rGdfbGUMG$09aKAMgRZ+ delta 21 bcmdm(voU8wo-v1^rJ*?xTW&5h-pvF6Si%QW diff --git a/Benchmarks/SciPy.pdf b/Benchmarks/SciPy.pdf index db517528542fde594443f413a6d9d988d08bc444..b0eff41ef7f96ef288c9ce96f5b5caa11bd34a8e 100644 GIT binary patch delta 21 ccmdm#vngjozA=Z9fuW^|g|YGGa^u}h09ddGPXGV_ delta 21 bcmdm#vngjozA=ZPrJ*?x8*VN)-pvF6Sk4De diff --git a/CyRK/cy/cysolver.pxd b/CyRK/cy/cysolver.pxd index 447303e..122ded0 100644 --- a/CyRK/cy/cysolver.pxd +++ b/CyRK/cy/cysolver.pxd @@ -1,5 +1,3 @@ -from libcpp cimport bool as bool_cpp_t - cdef class CySolver: # Class attributes @@ -18,34 +16,34 @@ cdef class CySolver: # -- Time information cdef double t_start, t_end, t_delta, t_delta_abs, direction_inf - cdef bool_cpp_t direction_flag + cdef bint direction_flag # -- Optional args info cdef size_t num_args cdef double* args_ptr - cdef bool_cpp_t use_args + cdef bint use_args # -- Extra output info - cdef bool_cpp_t capture_extra + cdef bint capture_extra cdef size_t num_extra # -- Integration information cdef readonly char status cdef readonly str message - cdef public bool_cpp_t success + cdef public bint success cdef double* tol_ptrs cdef double* rtols_ptr cdef double* atols_ptr cdef double first_step, max_step - cdef bool_cpp_t user_provided_max_num_steps + cdef bint user_provided_max_num_steps cdef size_t max_num_steps cdef size_t expected_size, current_size, num_concats - cdef bool_cpp_t recalc_first_step - cdef bool_cpp_t force_fail + cdef bint recalc_first_step + cdef bint force_fail # -- Interpolation info - cdef bool_cpp_t run_interpolation - cdef bool_cpp_t interpolate_extra + cdef bint run_interpolation + cdef bint interpolate_extra cdef size_t len_t_eval cdef double* t_eval_ptr @@ -96,12 +94,12 @@ cdef class CySolver: cpdef void solve( self, - bool_cpp_t reset = * + bint reset = * ) cdef void _solve( self, - bool_cpp_t reset = * + bint reset = * ) cdef void interpolate( @@ -111,25 +109,25 @@ cdef class CySolver: cpdef void change_t_span( self, (double, double) t_span, - bool_cpp_t auto_reset_state = * + bint auto_reset_state = * ) cpdef void change_y0( self, const double[::1] y0, - bool_cpp_t auto_reset_state = * + bint auto_reset_state = * ) cdef void change_y0_pointer( self, double * y0_ptr, - bool_cpp_t auto_reset_state = * + bint auto_reset_state = * ) cpdef void change_args( self, tuple args, - bool_cpp_t auto_reset_state = * + bint auto_reset_state = * ) cpdef void change_tols( @@ -138,32 +136,32 @@ cdef class CySolver: double atol = *, const double[::1] rtols = *, const double[::1] atols = *, - bool_cpp_t auto_reset_state = * + bint auto_reset_state = * ) cpdef void change_max_step( self, double max_step, - bool_cpp_t auto_reset_state = * + bint auto_reset_state = * ) cpdef void change_first_step( self, double first_step, - bool_cpp_t auto_reset_state = * + bint auto_reset_state = * ) cpdef void change_t_eval( self, const double[::1] t_eval, - bool_cpp_t auto_reset_state = * + bint auto_reset_state = * ) cdef void change_t_eval_pointer( self, double* new_t_eval_ptr, size_t new_len_t_eval, - bool_cpp_t auto_reset_state = * + bint auto_reset_state = * ) cpdef void change_parameters( @@ -178,8 +176,8 @@ cdef class CySolver: double max_step = *, double first_step = *, const double[::1] t_eval = *, - bool_cpp_t auto_reset_state = *, - bool_cpp_t auto_solve = * + bint auto_reset_state = *, + bint auto_solve = * ) cdef void update_constants( @@ -190,19 +188,18 @@ cdef class CySolver: self ) noexcept nogil - ctypedef void (*DiffeqType)(CySolver) cdef extern from "rk_step.c": char rk_step_cf( + # Pointer to differential equation + DiffeqType diffeq_ptr, # Pointer to the CySolver instance CySolver cysolver_inst, - # Pointer to differential equation - DiffeqType diffeq, # t-related variables double t_end, - bool_cpp_t direction_flag, + bint direction_flag, double direction_inf, # y-related variables diff --git a/CyRK/cy/cysolver.pyx b/CyRK/cy/cysolver.pyx index c538ac5..c371a87 100644 --- a/CyRK/cy/cysolver.pyx +++ b/CyRK/cy/cysolver.pyx @@ -1,16 +1,13 @@ -# distutils: language = c++ +# distutils: language = c # cython: boundscheck=False, wraparound=False, nonecheck=False, cdivision=True, initializedcheck=False -from libcpp cimport bool as bool_cpp_t -from libc.math cimport sqrt, fabs, nextafter, fmax, fmin, isnan, NAN, pow, floor +from libc.math cimport sqrt, fabs, nextafter, fmax, fmin, isnan, NAN, floor from cpython.mem cimport PyMem_Free import numpy as np cimport numpy as np -np.import_array() - from CyRK.utils.utils cimport allocate_mem, reallocate_mem from CyRK.rk.rk cimport find_rk_properties from CyRK.cy.common cimport interpolate, SAFETY, MIN_FACTOR, MAX_FACTOR, MAX_STEP, INF, EPS_100, \ @@ -69,13 +66,13 @@ cdef class CySolver: Absolute value of t_delta. direction_inf : double Direction of integration. If forward then this = +Inf; -Inf otherwise. - direction_flag : bool_cpp_t + direction_flag : bint If True, then integration is in the forward direction. num_args : size_t Number of additional arguments that the `diffeq` method requires. args_ptr : double* Pointer of additional arguments used in the `diffeq` method. - capture_extra bool_cpp_t + capture_extra bint Flag used if extra parameters should be captured during integration. num_extra size_t Number of extra parameters that should be captured during integration. @@ -84,7 +81,7 @@ cdef class CySolver: See "Status and Error Codes.md" in the documentation for more information. message : str; public Verbal message to accompany `self.status` explaining the state (and potential errors) of the integrator. - success : bool_cpp_t; public + success : bint; public Flag indicating if the integration was successful or not. rtols_ptr : double* Pointer of relative tolerances for each dependent y variable. @@ -104,12 +101,12 @@ cdef class CySolver: If `expected_size` is too small then it will be expanded as needed. This variable tracks how many expansions were required. See Also: `CySolver.growths` - recalc_first_step : bool_cpp_t + recalc_first_step : bint If True, then the `first_step` size is recalculated when `reset_state` is called. Flag used when parameters are changed without reinitializing CySolver. - run_interpolation : bool_cpp_t + run_interpolation : bint Flag if a final interpolation should be run once integration is completed successfully. - interpolate_extra : bool_cpp_t + interpolate_extra : bint Flag if interpolation should be run on extra parameters. If set to False when `run_interpolation=True`, then interpolation will be run on solution's y, t. These will then be used to recalculate extra parameters rather than an interpolation on the extra parameters captured @@ -231,14 +228,14 @@ cdef class CySolver: double first_step = 0., size_t max_num_steps = 0, const double[::1] t_eval = None, - bool_cpp_t capture_extra = False, + bint capture_extra = False, size_t num_extra = 0, - bool_cpp_t interpolate_extra = False, + bint interpolate_extra = False, size_t expected_size = 0, size_t max_ram_MB = 2000, - bool_cpp_t call_first_reset = True, - bool_cpp_t auto_solve = True, - bool_cpp_t force_fail = False): + bint call_first_reset = True, + bint auto_solve = True, + bint force_fail = False): """ Initialize new CySolver instance. @@ -292,7 +289,7 @@ cdef class CySolver: ``` num_extra : int = 0 The number of extra outputs the integrator should expect. With the previous example there is 1 extra output. - interpolate_extra : bool_cpp_t, default=False + interpolate_extra : bint, default=False Flag if interpolation should be run on extra parameters. If set to False when `run_interpolation=True`, then interpolation will be run on solution's y, t. These will then be used to recalculate extra parameters rather than an interpolation on the extra parameters captured @@ -305,7 +302,7 @@ cdef class CySolver: call_first_reset : bool, default=True If set to True, then the solver will call its `reset_state` method at the end of initialization. This flag is overridden by the `auto_solve` flag. - auto_solve : bool_cpp_t, default=True + auto_solve : bint, default=True If set to True, then the solver's `solve` method will be called at the end of initialization. Otherwise, the user will have to call `solver_instance = CySolver(...); solver_instance.solve()` to perform integration. @@ -715,7 +712,7 @@ cdef class CySolver: # cdef double min_step, step, step_factor, time_tmp, t_delta_check # cdef double scale, temp_double # cdef double error_norm3, error_norm5, error_norm, error_dot_1, error_dot_2, error_denom, error_pow - # cdef bool_cpp_t step_accepted, step_rejected, step_error + # cdef bint step_accepted, step_rejected, step_error # # Run RK integration step # # Determine step size based on previous loop @@ -918,28 +915,28 @@ cdef class CySolver: cpdef void solve( self, - bool_cpp_t reset = True + bint reset = True ): """ Public wrapper to the private solve method which calculates the integral of the user-provided system of ODEs. Parameters ---------- - reset : bool_cpp_t, default=True + reset : bint, default=True If True, `reset_state()` will be called before integration starts. """ self._solve(reset=reset) cdef void _solve( self, - bool_cpp_t reset = True + bint reset = True ): """ Calculates the integral of the user-provided system of ODEs. Parameters ---------- - reset : bool_cpp_t, default=True + reset : bint, default=True If True, `reset_state()` will be called before integration starts. """ @@ -949,6 +946,7 @@ cdef class CySolver: # Setup loop variables cdef size_t i + cdef char rk_step_output # Setup storage arrays # These arrays are built to fit a number of points equal to `self.expected_size` @@ -1015,9 +1013,9 @@ cdef class CySolver: break # # Perform RK Step - rk_step_cf( - self, + rk_step_output = rk_step_cf( self.diffeq, + self, self.t_end, self.direction_flag, self.direction_inf, @@ -1339,7 +1337,7 @@ cdef class CySolver: cpdef void change_t_span( self, (double, double) t_span, - bool_cpp_t auto_reset_state = False + bint auto_reset_state = False ): """ Public method to change the independent variable limits (start and stop points of integration). @@ -1348,7 +1346,7 @@ cdef class CySolver: ---------- t_span : (double, double) New t_span to use during integration. - auto_reset_state : bool_cpp_t, default=False + auto_reset_state : bint, default=False If True, then the `reset_state` method will be called once parameter is changed. """ @@ -1374,7 +1372,7 @@ cdef class CySolver: cpdef void change_y0( self, const double[::1] y0, - bool_cpp_t auto_reset_state = False + bint auto_reset_state = False ): """ Public method to change the initial conditions. @@ -1386,7 +1384,7 @@ cdef class CySolver: y0 : double[::1] New dependent variable initial conditions. Must be the same size as the original y0. - auto_reset_state : bool_cpp_t, default=False + auto_reset_state : bint, default=False If True, then the `reset_state` method will be called once parameter is changed. """ @@ -1414,7 +1412,7 @@ cdef class CySolver: cdef void change_y0_pointer( self, double* y0_ptr, - bool_cpp_t auto_reset_state = False + bint auto_reset_state = False ): """ Public method to change the initial conditions. @@ -1426,7 +1424,7 @@ cdef class CySolver: y0 : double* New pointer to dependent variable initial conditions. Must be the same size as the original y0. - auto_reset_state : bool_cpp_t, default=False + auto_reset_state : bint, default=False If True, then the `reset_state` method will be called once parameter is changed. """ @@ -1448,7 +1446,7 @@ cdef class CySolver: cpdef void change_args( self, tuple args, - bool_cpp_t auto_reset_state = False + bint auto_reset_state = False ): """ Public method to change additional arguments used during integration. @@ -1457,7 +1455,7 @@ cdef class CySolver: ---------- args : tuple New tuple of additional arguments. - auto_reset_state : bool_cpp_t, default=False + auto_reset_state : bint, default=False If True, then the `reset_state` method will be called once parameter is changed. """ @@ -1498,7 +1496,7 @@ cdef class CySolver: double atol = NAN, const double[::1] rtols = None, const double[::1] atols = None, - bool_cpp_t auto_reset_state = False + bint auto_reset_state = False ): """ Public method to change relative and absolute tolerances and/or their arrays. @@ -1517,13 +1515,13 @@ cdef class CySolver: atols : const double[::1] Numpy ndarray of absolute tolerances, one for each dependent y variable. if None (the default), then no change will be made. - auto_reset_state : bool_cpp_t, default=False + auto_reset_state : bint, default=False If True, then the `reset_state` method will be called once parameter is changed. """ # This is one of the few change functions where nothing might change. # Track if updates need to be made - cdef bool_cpp_t something_changed = False + cdef bint something_changed = False # Update tolerances cdef double rtol_tmp @@ -1573,7 +1571,7 @@ cdef class CySolver: cpdef void change_max_step( self, double max_step, - bool_cpp_t auto_reset_state = False + bint auto_reset_state = False ): """ Public method to change maximum allowed step size. @@ -1582,7 +1580,7 @@ cdef class CySolver: ---------- max_step : double New maximum step size used during integration. - auto_reset_state : bool_cpp_t, default=False + auto_reset_state : bint, default=False If True, then the `reset_state` method will be called once parameter is changed. """ @@ -1594,7 +1592,7 @@ cdef class CySolver: cpdef void change_first_step( self, double first_step, - bool_cpp_t auto_reset_state = False + bint auto_reset_state = False ): """ Public method to change first step's size. @@ -1603,7 +1601,7 @@ cdef class CySolver: ---------- first_step : double New first step's size. - auto_reset_state : bool_cpp_t, default=False + auto_reset_state : bint, default=False If True, then the `reset_state` method will be called once parameter is changed. """ @@ -1630,7 +1628,7 @@ cdef class CySolver: cpdef void change_t_eval( self, const double[::1] t_eval, - bool_cpp_t auto_reset_state = False + bint auto_reset_state = False ): """ Public method to change user requested independent domain, `t_eval`. @@ -1639,7 +1637,7 @@ cdef class CySolver: ---------- t_eval : double[:] New independent domain at which solution will be interpolated. - auto_reset_state : bool_cpp_t, default=False + auto_reset_state : bint, default=False If True, then the `reset_state` method will be called once parameter is changed. """ @@ -1670,7 +1668,7 @@ cdef class CySolver: self, double* new_t_eval_ptr, size_t new_len_t_eval, - bool_cpp_t auto_reset_state = False + bint auto_reset_state = False ): """ Public method to change user requested independent domain, `t_eval`. @@ -1679,7 +1677,7 @@ cdef class CySolver: ---------- t_eval_ptr : double[:] New pointer to independent domain at which solution will be interpolated. - auto_reset_state : bool_cpp_t, default=False + auto_reset_state : bint, default=False If True, then the `reset_state` method will be called once parameter is changed. """ @@ -1716,8 +1714,8 @@ cdef class CySolver: double max_step = NAN, double first_step = NAN, const double[::1] t_eval = None, - bool_cpp_t auto_reset_state = True, - bool_cpp_t auto_solve = False + bint auto_reset_state = True, + bint auto_solve = False ): """ Public method to change one or more parameters which have their own `change_*` method. @@ -1736,15 +1734,15 @@ cdef class CySolver: max_step first_step t_eval - auto_reset_state : bool_cpp_t, default=True + auto_reset_state : bint, default=True If True, then the `reset_state` method will be called once parameter is changed. - auto_solve : bool_cpp_t, default=False + auto_solve : bint, default=False If True, then the `solve` method will be called after all parameters have been changed and the state reset. """ # This is one of the few change functions where nothing might change. # Track if updates need to be made - cdef bool_cpp_t something_changed + cdef bint something_changed something_changed = False if not isnan(t_span[0]): diff --git a/CyRK/cy/rk_step.c b/CyRK/cy/rk_step.c index dada653..3a78e42 100644 --- a/CyRK/cy/rk_step.c +++ b/CyRK/cy/rk_step.c @@ -2,18 +2,17 @@ #include // `bool` #include // `fmin`, `fmax`, `fabs` -// Create a fake struct to trick C into accepting the CySolver class (which contains the diffeq function) -struct CySolverStruct -{ - char status; +// Create a fake struct to trick C into accepting the CySolver class (which contains the diffeq method) +struct CySolverStruct { + char empty; }; char rk_step_cf( + // Pointer to differential equation + void (*diffeq_ptr)(CySolverStruct), // Pointer to the CySolver instance struct CySolverStruct* cysolver_inst, - // Pointer to differential equation - void (*diffeq)(CySolverStruct), // t-related variables double t_end, @@ -131,14 +130,14 @@ char rk_step_cf( // !! Calculate derivative using RK method - // t_now must be updated for each loop of s in order to make the diffeq calls. + // t_now must be updated for each loop of s in order to make the diffeq method calls. // But we need to return to its original value later on. Store in temp variable. time_tmp = t_now; for (size_t s = 1; s < len_C; s++) { // Find the current time based on the old time and the step size. t_now = t_old + C_ptr[s] * step; - // Update the value stored at the t_now pointer so it can be used in the diffeq function. + // Update the value stored at the t_now pointer so it can be used in the diffeq method. *t_now_ptr = t_now; // Dot Product (K, a) * step @@ -164,9 +163,9 @@ char rk_step_cf( } } } - // Call diffeq to update K with the new dydt + // Call diffeq method to update K with the new dydt // This will use the now updated values at y_ptr and t_now_ptr. It will update values at dy_ptr. - (*diffeq)(*cysolver_inst); + diffeq_ptr(*cysolver_inst); // Update K based on the new dy values. for (size_t i = 0; i < y_size; i++) { @@ -195,7 +194,7 @@ char rk_step_cf( // Find final dydt for this timestep // This will use the now final values at y_ptr and t_now_ptr. It will update values at dy_ptr. - (*diffeq)(*cysolver_inst); + diffeq_ptr(*cysolver_inst); // Check how well this step performed by calculating its error. if (rk_method == 2) { diff --git a/cython_extensions.json b/cython_extensions.json index 206871c..2f844f2 100644 --- a/cython_extensions.json +++ b/cython_extensions.json @@ -44,8 +44,7 @@ "cysolver": { "name": "CyRK.cy.cysolver", "sources": [ - ["CyRK", "cy", "cysolver.pyx"], - ["CyRK", "cy", "rk_step.c"] + ["CyRK", "cy", "cysolver.pyx"] ], "include_dirs": [["CyRK", "cy"]], "compile_args": [], diff --git a/pyproject.toml b/pyproject.toml index 0cbed48..3dc42d1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name='CyRK' -version = '0.8.6.dev2' +version = '0.8.6.dev3' description='Runge-Kutta ODE Integrator Implemented in Cython and Numba.' authors= [ {name = 'Joe P. Renaud', email = 'joe.p.renaud@gmail.com'} From 0edb4ae450f82bf3f158413e163187a2f3bcf906 Mon Sep 17 00:00:00 2001 From: Jrenaud-Desk Date: Sat, 20 Jan 2024 21:02:40 -0500 Subject: [PATCH 03/12] Have rk_step.c working. --- Benchmarks/CyRK - SciPy Comparison.ipynb | 88 +++++--- Benchmarks/CyRK_CySolver.pdf | Bin 13873 -> 13873 bytes ...yRK_SciPy_Compare_predprey_v0-8-6-dev4.png | Bin 0 -> 43105 bytes ...yRK_SciPy_Compare_predprey_v0-8-6-dev5.png | Bin 0 -> 42991 bytes Benchmarks/CyRK_cyrk_ode.pdf | Bin 13873 -> 13873 bytes Benchmarks/CyRK_numba.pdf | Bin 13873 -> 13873 bytes Benchmarks/SciPy.pdf | Bin 13874 -> 13874 bytes CHANGES.md | 8 +- CyRK/cy/common.pxd | 16 +- CyRK/cy/common.pyx | 14 +- CyRK/cy/cyrk.pyx | 26 +-- CyRK/cy/cysolver.pxd | 2 +- CyRK/cy/cysolver.pyx | 211 +----------------- CyRK/cy/cysolvertest.pyx | 2 +- CyRK/cy/rk_step.c | 54 +++-- CyRK/rk/rk.pyx | 1 + CyRK/rk/rk_constants.pyx | 1 + Performance/cyrk_performance-DOP853.csv | 1 + Performance/cyrk_performance-RK23.csv | 1 + Performance/cyrk_performance-RK45.csv | 1 + pyproject.toml | 2 +- 21 files changed, 125 insertions(+), 303 deletions(-) create mode 100644 Benchmarks/CyRK_SciPy_Compare_predprey_v0-8-6-dev4.png create mode 100644 Benchmarks/CyRK_SciPy_Compare_predprey_v0-8-6-dev5.png diff --git a/Benchmarks/CyRK - SciPy Comparison.ipynb b/Benchmarks/CyRK - SciPy Comparison.ipynb index 46b8fb9..8602de7 100644 --- a/Benchmarks/CyRK - SciPy Comparison.ipynb +++ b/Benchmarks/CyRK - SciPy Comparison.ipynb @@ -18,7 +18,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "0.8.6.dev3\n" + "0.8.6.dev5\n" ] } ], @@ -141,9 +141,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "2024-01-20 19:48:31(+00:00:12::662689) - INFO : TidalPy initializing...\n", - "2024-01-20 19:48:31(+00:00:12::663681) - INFO : Output directory: N:\\Joe Documents\\Research\\Software\\CyRK\\Benchmarks\\TidalPy-Run_20240120-1948\n", - "2024-01-20 19:48:31(+00:00:12::663681) - INFO : TidalPy initialization complete.\n", + "2024-01-20 20:26:18(+00:00:03::598872) - INFO : TidalPy initializing...\n", + "2024-01-20 20:26:18(+00:00:03::598872) - INFO : Output directory: N:\\Joe Documents\\Research\\Software\\CyRK\\Benchmarks\\TidalPy-Run_20240120-2026\n", + "2024-01-20 20:26:18(+00:00:03::599882) - INFO : TidalPy initialization complete.\n", "SciPy Solution\n" ] }, @@ -233,15 +233,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "7322927e", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CyRK (Cython - CySolver) Solution\n" + ] + }, + { + "data": { + "image/png": "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U6NGjUq97Hk6Hn/8cXXppZeqo48+Wh133HHqF7/4hVqzZo0aMWKEaB3h8Vd/9Vfqox/9qDrssMPUYYcdpr7xjW+o7u5udfTRR4vGMR0nn3yyeuutt9TLL7+sbr/99r73Retojvnz56uVK1eqCRMm9B3jxo3Lis7pC1TU4/nnn1d33323671XXnlFfetb30q9bEU4Kjk869atU9dee23fv5uamtSWLVvUlVdemXp583yMGzdOKaXU6aefLlrHfGzatEn99V//tWgcwzFy5Ej12muvqQ9/+MPqmWeecTk8onU0x/z589Xvf//7qp+nqbNMacXEkCFDOOmkk1i4cKHr/YULF3LaaaelVKpiM23aNCZOnOjSvKenhyVLlojmIRk9ejQAmzdvBkTrOBg0aBAXXnghI0eO5LnnnhONY+Cuu+7il7/8JYsWLXK9L1pHy2GHHUZbWxtvvfUWDz74INOmTQPS11keHhoT48aNo7GxkY6ODtf7HR0dtLa2plSqYmPrWknzgw8+OI0iFYbbbruNZ599ltWrVwOidZRMnz6d5557jmHDhrFjxw7mzp3LH//4Rz7wgQ8AonFUXHjhhZx44onMmDFjwGdSn6PjhRde4HOf+xyvv/46EyZM4Ctf+QpLly7lmGOOSV1ncXhiRinl+ndDQ8OA94RoEc2j5Tvf+Q7HHXdcxYR70To8r732GieccAJjxozhk5/8JA888ACzZs3q+1w0Ds+UKVP413/9V84666yajzYQrcPzxBNP9L1etWoVzz33HG+++SaXXnopzz//PJCezjKlFRMbN26kt7d3QDRn/PjxA7xbIRrWr18PIJpHyB133MG5557Lhz70Idra2vreF62jY8+ePbz55pssX76cG264gRUrVvD3f//3onGEnHTSSUyYMIHly5ezZ88e9uzZw+zZs5k3bx579uzp01O0jp6uri5WrlzJYYcdlnqdFocnJvbs2cPy5cuZM2eO6/05c+awdOnSlEpVbN5++23a29tdmg8ZMoRZs2aJ5gG48847Of/88znjjDNYs2aN6zPROj4aGhoYOnSoaBwhixYtYvr06Zxwwgl9x+9+9zt+8IMfcMIJJ/DWW2+J1jHR1NTEUUcdRXt7eybqdOpZ3UU97GXpl19+uTryyCPVbbfdprZv364OOuig1MuW12PkyJHq+OOPV8cff7xSSqkvfvGL6vjjj+9b6n/ttdeqLVu2qE984hPqmGOOUT/4wQ9kaWmA46677lJbtmxRH/zgB13LS4cNG9Z3jWgd/vjmN7+pZs6cqQ4++GA1ffp09Y1vfEP19vaqM888UzSO+ei/Sku0jub4l3/5F/XBD35QTZ06VZ1yyinq5z//udq2bVtfv5eyzukLVOTjqquuUm+//bbavXu3WrZsmWtZrxz+j1mzZqlK3HfffX3XzJ8/X61bt07t2rVLLV68WB1zzDGplztvRzUuvfRS13Widbjj//7f/9tnHzo6OtSTTz7Z5+yIxvEe/R0e0Tqaw95Xp7u7W7333nvqpz/9qTrqqKMyoXOD9UIQBEEQBKGwSA6PIAiCIAiFRxweQRAEQRAKjzg8giAIgiAUHnF4BEEQBEEoPOLwCIIgCIJQeMThEQRBEASh8IjDIwiCIAhC4RGHRxAEQRCEwiMOjyAIgiAIhUccHkEQCs/tt9/OI488knYxBEFIEXF4BEEoPDNmzODFF19MuxiCIKSIPEtLEITC0tjYyM6dO2lqaup774UXXuDUU09NsVSCIKRBY9oFEARBiIu9e/cyc+ZMXnzxRY4//ng6OjrYvXt32sUSBCEFxOERBKGwKKWYNGkSGzdu5A9/+EPaxREEIUUkh0cQhELz/ve/nxUrVqRdDEEQUkYcHkEQCs0JJ5wgDo8gCOLwCIJQbI499liZzhIEQRweQRCKzaBBgzjuuOOYOHEiLS0taRdHEISUEIdHEIRC85WvfIULL7yQdevW8dWvfjXt4giCkBKyD48gCIIgCIVHIjyCIAiCIBQecXgEQRAEQSg84vAIgiAIglB4xOERBEEQBKHwiMMjCIIgCELhEYdHEARBEITCIw6PIAiCIAiFRxweQRAEQRAKjzg8giAIgiAUHnF4BEEQBEEoPOLwCIIgCIJQeP4/cZ4Fv1Dm5tcAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# CyRK - Cython CySolver\n", "CySolverTesterInst = CySolverTester(time_span, initial_conds, rk_method=1, args=args, rtol=rtol, atol=atol, auto_solve=True)\n", "print('CyRK (Cython - CySolver) Solution')\n", - "diff_plot(time_domain, y_results, fig_name='CyRK_CySolver')" + "diff_plot(CySolverTesterInst.t, CySolverTesterInst.y, fig_name='CyRK_CySolver')" ] }, { @@ -455,7 +473,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnUAAAHWCAYAAAARl3+JAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACngklEQVR4nOzdd1hT1xsH8G8SQFkCCha04m5Fa104akUUi9s62jpqFbWOgloctXW0Wqv+tNXiqmCriKPugaMqrqLgFooDhToYAiKCbFmBvL8/AqkhARJICOD7eZ7zmJxz7rnnHrB9PfeecwUACIwxxhhjrFoT6roDjDHGGGOs4jioY4wxxhirATioY4wxxhirATioY4wxxhirATioY4wxxhirATioY4wxxhirATioY4wxxhirATioY4wxxhirATioY4wxxhirATioY4xpXdu2bbFt2zZEREQgOzsbGRkZCA4Oxrx582BhYaF2e5GRkSAiWcrMzERwcDCmT5+uUNfR0RFEhE8++UQu39DQEKdOnUJeXh7GjRtX7mt7nZ6eHhYvXozIyEjk5OQgLCwMM2bMUPn49u3bw9fXF3FxcXj16hXCwsLwww8/wNDQUOU2Pv74Y1y8eBFpaWnIzMxEaGgopkyZUp7LAQD4+/vD39+/3MeratSoUQgJCUF2djbi4uKwdu1aGBsba/28jNU0xIkTJ07aSpMnT6a8vDy6d+8eubq6kqOjI3300Uc0f/58evLkCR05ckTtNiMjIykwMJC6du1KXbt2peHDh1NgYCARES1YsECurqOjIxERffLJJ7K8OnXqUGBgIGVnZ9PHH3+ssWv9448/KDs7m7755htydHSk//3vf1RQUKDQJ2XJzs6OsrKyKCQkhD777DPq3bs3LVmyhMRiMR09elSl83/33XeUn59Pv/32G/Xr14+cnJzIzc2Npk+fXu5r8vf3J39/f63+jnz++edERPTHH39Qr169aOrUqZSSkkJnzpzR+e8vJ07VLOm8A5w4caqhqVu3biQWi+nUqVNkYGCgUK6vr09DhgxRu93IyEg6ceKEXJ6pqSmlpKRQVFSUXH7xoM7Kyor++ecfSktLo169emnsWlu3bk0FBQU0f/58ufzff/+dXr16RRYWFqUev2zZMiIiatasmVz+5s2biYjI3Ny81OM7duxI+fn5NG/ePI3+DLUd1AmFQoqLiyM/Pz+5/DFjxhARUf/+/bX6O8qJU01KfPuVMaY1CxcuBBFh6tSpyMvLUygXi8U4ceIEAGDr1q14+fKl0luNFy5cQGhoaKnnysjIwMOHD/HWW2+VWMfW1haXL1/G22+/DScnJ1y8eLHUNi0tLZGbm4uffvpJoezdd98FEWHmzJkAgGHDhkEoFMLHx0euno+PD4yMjNC/f/9SzyUWiwEAaWlpcvmpqakoKChQOn6vmzFjBnJzc7Fx48ZS65Vm3rx5iIqKQnZ2NoKDg0vss6mpKVavXo2IiAjk5uYiNjYWa9euhZGRkazOP//8g4CAAIVjhUIhYmNjcfjwYQBAt27d0KBBA4VxO3jwIDIyMjB8+PByXw9jbyKdR5acOHGqeUkoFFJmZiZdu3ZNpfpt27YlIqIvv/xSLt/Ozo6IiFxdXWV5ymbqRCIRPXv2jO7cuSOXXzRT9/3339PTp0/p6dOn1KpVK5Wv4/DhwxQdHU0CgUAuf9WqVZSTk0N169YlALRnzx5KSEhQON7IyIiIiFasWFHqeRo3bkzJycl04MABatq0KZmYmNCgQYMoJSWF1q9fX2Y/Hz9+TEFBQTR27FgKDw+n/Px8iomJoZUrV5K+vn6Zxy9ZsoSIiLZs2UL9+vWjyZMnU0xMDD179kxups7Q0JD++ecfevHiBc2aNYucnJxo5syZlJKSQufPn5fVmzlzJhERtWjRQu48/fv3JyKiwYMHEwCaOnUqERHZ2dkp9OnmzZt05coVnf8uc+JUjZLOO8CJE6camOrXr09ERHv27FH5GH9/f/rnn3/k8jZt2kSpqalkbGwsy4uMjKS//vqLRCIRiUQiatSoEf3++++Um5tLAwcOlDu+KKgjIhKLxWoFdABo8ODBRET00UcfyfKEQiHFxsbSwYMHZXlnzpyhsLAwpW3k5OTQ5s2byzzXu+++Sw8ePKDXrVu3TqV+ZmdnU1paGr18+ZLc3NyoV69etGzZMhKLxfTnn3+WeqyZmRllZWXR4cOH5fI/+OADIiK5oK7oub1OnTrJ1R0xYoTc7dK6detSTk4OLV++XK7evn37KD4+nkQiEQGgBQsWEBHRW2+9pdAvPz8/Cg8P1/nvMidO1SjpvAOcOHGqgak8Qd2wYcOIiKh79+4ESJ+TS09PV5ipioyMJGWmTp2q0GZRUHf8+HEqKCigCxcukKGhocp9KpoB3L17tyxvwIABREQ0YMAAWd6ZM2fowYMHStvIyckhLy+vUs/TuHFjevjwIQUGBtKIESPIwcGBvvnmG0pNTaWtW7eW2c/c3FwiIho1apRcvoeHBxERNW/evMRji2bPRowYoVAWGRkpF9QFBgbS7du3ZQF1UTI2NqaCggJatWqVrO7BgwcpJiZGNstpbm5O2dnZ9PPPP8vqFAV19evXVzi3n59fiYEyJ06clCadd4ATJ041MKl7+xUACQQCioiIkAVQM2fOpIKCAnrnnXfk6kVGRlJAQAB16tSJunTpQmPHjqWIiAjKy8ujDz/8UK7u6wslJk2aRAUFBfT333+TkZGRyv36+eefKSsri8zMzAgA7d+/n+Li4kgoFMrqVPT26969e+n58+cK/ZowYQIREfXs2bPU4589e6Z0QYWzszMREX322WclHjt27Fi5YPr1dO3aNbmg7uHDh0oD6iKvB6BFwW/fvn0JALm6uhKR/K1Wvv3KiZPmEi+UYIxphUQiwYULF9CpUyc0bNhQpWOICJs2bcKnn34Ka2truLm54cKFC3j48KFC3bS0NAQHB+PmzZvYvXs3+vbtC7FYDE9PTwgEAqXtb9u2DV9++SV69uyJU6dOyT3YXxofHx8YGhpi9OjRMDc3x8cff4ydO3dCIpHI6ty7dw/169dXWKjRtm1bAChzoUf79u3x4MEDZGVlyeXfunULAPDee++Vevzdu3eV5heNxet9Le7ly5cAAGtra4Wy4nlJSUm4e/cu7O3tlaZly5bJ6p45cwZxcXGYOHEiAGDixIm4fv06wsLCZHXu3bsH4L9xKiISidCqVasyx40xJk/nkSUnTpxqZnp9SxNlD+vr6enJHpgvSmZmZpSRkUEXLlwgIlK6j5yyhRLAfw/7jx49WpanbJ86FxcXys/Pp0uXLsk9q1daunbtGl2/fp3c3NyIiBRmD4u2NPn222/l8r28vFTa0uTChQuUkJCg0J/JkyeXOA6vpylTphAR0ZgxY+Ty161bR/n5+WRra1visebm5io/U7dw4ULKzMykJk2aqDRuK1eupOzsbOrRowcREU2ZMkWuvGhLk1OnTsnljxo1ioiI+vXrp/PfY06cqlHSeQc4ceJUg1PR5sN3794lV1dX6tmzJ/Xp04e++eYbevjwodLNhzdt2kRERJGRkQqrToGSgzpjY2OKj4+nsLAw2a1RZUEdABo3bhzl5+dTQECASoFdUdD09OlTunz5stI6RZsPz507l3r27EnLly9XuvnwDz/8QGKxWO6W6pAhQ6igoICuXr0q23x4wYIFlJ6eTqGhoXJB8datW0ksFssFanp6ehQUFEQpKSk0c+ZM6tOnD61cuZLEYjFt2LBB7vznz58nsVgsl/fTTz8RkXT1a9++fenLL79UuvrVyMiIgoOD6enTpzR79mzq06cPOTs705dffkn79++nLl26yLXbsmVL2bi9evWK6tSpozBuRbd/N2/eTI6OjjR58mRKTk7mzYc5cVI/6bwDnDhxquHp/fffJx8fH4qKiqKcnBzKyMig4OBg+vHHH8nS0lKhfs+ePYmIFGa9ilJJQR3w33Nb48aNI6DkoA6QBhNisZguX75MJiYmpV6DqakpvXr1iogUt10pSnp6erRkyRLZdYaHh9OMGTMU6hXNKDo6Osrl9+rVi/z8/OjZs2f06tUrCg8Pp9WrV8u2TSlKPj4+RETUuHFjuXwLCwvy8vKi+Ph4ys3NpfDwcJo7d65CYOzv709EpNCv7777jqKjoyknJ4du375NgwYNUrr5sJGREf30008UFhZGOTk5lJKSQnfu3KFff/1V6YKHy5cvExHRrl27Shzf0aNH0+3btyknJ4eePXtG69atU3kWlRMnTtIkKPzAGGNVxpo1a+Dq6opGjRohOTlZ191hjLFqQU/XHWCMsSJdu3bFO++8Azc3N/z+++8c0DHGmBp4po4xVmUQEV69eoVTp05h4sSJePXqla67xBhj1QYHdYwxxhhjNQDvU8cYY4wxVgNwUMcYK9MPP/yA+/fvy23qS0RyKTU1Ff7+/hg4cGCl9GnJkiWQLuBU35gxY+Du7q7hHpVO1+OlCkdHR7k+5ubm4sWLF7h8+TKWL18OW1tbhWNcXFxARGjcuLFc/rJlyxAdHQ2xWIyUlBQAgL6+Pry8vPDs2TPk5+cjJCQEABAZGakwPkXJ399f7evQ09PD48ePK/1nzFhVoPMluJw4caq6ycbGhjIyMhS2BCEiOnDgAHXt2pU++OADGjt2LIWFhVFBQQENHDhQ6/0q2hakPMeeOHGCIiMjK3UcdT1eqqSi7V/mz59PXbt2pe7du9OQIUNo+fLlsm1WPv/8c7ljLC0tqWvXrmRgYCDL+/jjj4mIaNmyZdS9e3fq1KkTAaCvv/6aiIimT59O3bp1o/fee48A6RY1gYGB1LVrV4Wk7PVhqqTx48fTy5cvFbaD4cSphiedd4ATJ05VOK1atUrupexFiYho48aNcnnNmjUjIqKzZ8+W2J6enh6JRKIK96sqBnW1a9cusUzX46VKKm1PPwsLCwoODqa8vDxZMFZSWrhwIRERWVlZyeX/8ccf9OrVK4X6pe07WN6kr69PSUlJChs/c+JUkxPffmWMlUhfXx9ffvkl9uzZo9KtzoiICLx48UJ2K67odt4XX3yBNWvWIDY2Frm5uWjRogUAoE+fPjh//jzS0tLw6tUrXL58GU5OTgrtDhw4ECEhIcjJyUFERATmzp2r9Pxubm64dOkSEhISkJmZibt372LevHnQ0/tv9yZ/f38MHjwYTZo0kbvNV8TCwgKbNm2S9fXJkydYvnw5DAwM5M5FRNi4cSOmTZuGBw8eIDc3Fy4uLmUPqhbHq0ePHiAijB49WuFc48aNAxHB3t5erT4WSUlJwbRp06Cvr4/Zs2fL8ovffo2MjMSKFSsAAC9evAARyW6VT5kyBUZGRrIxV3e8AOW/C8puxYvFYuzfvx9Tp04t1/UyVl3pPLLkxIlT1UxF7+vs37+/QpmymSdzc3PKz8+XvUaraOYnJiaGDhw4QIMHD6aBAweShYUFjR07lgoKCujIkSM0bNgwGjRoEB0/fpzEYjE5OTnJ2nRyciKxWEwBAQE0bNgw+uSTT+jGjRsUFRWlMFP366+/0rRp06hv377Uq1cvcnd3pxcvXpC3t7esjp2dHQUGBtKzZ8/kbvMBoFq1atHt27cpIyOD5syZQx999BEtXbqU8vLy6K+//lK4/piYGLp9+zaNHj2aevXqRa1bty5xLCtrvIKDgykwMFDh/Ddu3KAbN26U+vMubaauKMXFxdGjR49k311cXOTebtG+fXvasmULERH17duXunbtSg0bNqSuXbvSX3/9Ra9evZKNedHbRCIjI+mvv/4ikUikkF4/tzq/CwDos88+IyIqc2aRE6calHTeAU6cOFXRNG/ePCIipa9+IiL67bffSCQSkZ6eHr377rt08uRJIiJydXUl4L8g4eLFi3LHGhoaUlJSEh07dkwuXyAQUEhICF2/fl2Wd+3aNYqNjaVatWrJ8kxMTCgpKanU268CgYBEIhF98cUXJBaLydzcXFZW0u3XqVOnEhHRp59+qnQcPvroI7nrT0lJkWu3tFRZ41UUZLVr106WZ29vT0T/vTqtpKRKUHft2jW5W6jFgzrgv1vj9erVkzvWx8eHMjIyFNqMjIykkixatKjcvwvNmzcnIqJp06bp/O8SJ06Vkfj2K2OsRA0aNIBEIkFSUpLS8unTpyM/Px9isRjh4eHo3r07fvjhB3h5ecnVO3z4sNz37t27o169etixYwdEIpEsCYVC+Pn5oXPnzjAyMoKRkRE6d+6MI0eOIDc3V3Z8ZmYmTpw4odCf9u3b49ixY0hKSoJEIkF+fj527doFPT09vPPOO2Ver5OTEzIzM3Ho0CG5/O3btwOQ3v583d9//43U1FTZd6FQKHc9r68WrozxAoC9e/ciISEB06dPlx0/c+ZMvHjxAvv37y9zDMpS/Jo0JTAwEPb29grJ29sbANT+XQCkt38BoGHDhlrpM2NVDb8mjDFWIkNDQ4jFYkgkEqXl+/fvx+rVq0FEyMjIwJMnT5TWjY+Pl/v+1ltvAVAMXl5Xt25dEBFEIhGeP3+uUF48r1GjRggMDMS///4Ld3d3REVFIScnB126dIGnpycMDQ3LvN569eopPVdiYiLEYjHq1atX6nU9efIETZo0kX3/8ccfsXTpUtl3bY9XVlYW8vLy8Pvvv2Pu3LmYN28e9PX1MXLkSHh4eCAvL6/ki1eRra0tnj17VuF2iktLS0NwcHCJ5RYWFir/LhTJyckBAJV+9ozVBBzUMcZKlJSUhFq1asHIyAhZWVkK5YmJiaX+j7hI8YfYi2b+ZsyYgevXrys9JiEhAfr6+pBIJLC2tlYoL543bNgwmJiYYMSIEXj69Kksv3379mX2r8jLly/RtWtXhXwrKyvo6+srzFgWv64hQ4agVq1asu/Fgx9tj1cRLy8vzJ8/H5MmTULt2rWhp6eHzZs3l3nesnTu3Bk2NjbYunVrhdtSV0pKisq/C0Xq1q0LACXONDNW03BQxxgrUXh4OACgefPmuHfvnsbavXLlClJSUtC6dWts2rSpxHpisRg3b97EiBEjMG/ePNltNxMTEwwZMkSublEg9PqtOQCYMmWKQru5ublKZ28uXLiAUaNGYdiwYTh69Kgsf/z48bLy0oSGhpZaXl6qjleR58+f4+DBg3Bzc4OBgQFOnDiBmJiYCvXBwsICmzdvRl5eHtauXVuhtsojKytL5d+FIs2aNQMAPHjwoNL6yZgucVDHGCvRxYsXAQDdunXTaFD36tUrzJw5Ezt27EDdunVx6NAhvHjxAlZWVmjXrh2srKzg5uYGQPo2Cz8/P5w7dw6//vorRCIRvvvuO7x69Urudui5c+eQm5uLvXv34pdffkHt2rXh6uoKCwsLhfPfu3cPn3zyCb766isEBwdDIpEgODgYO3fuxPTp07Fjxw4sWbIE9+7dQ48ePbBw4UKcPHmyzKBOW9QZryLr16/HzZs3AQATJ05U63wtW7ZE165dIRQKUa9ePXTt2hVffvkl6tSpg/Hjx2slSDI3N1c6S5qbm4vbt28DUP13oUi3bt2Qn5+PgIAAjfeXsapK56s1OHHiVHXTpUuXFLbzAJRv0VE8lbWa0sHBgU6cOEFJSUmUm5tLMTExdOLECYX6gwcPptu3b1NOTg5FRUXRt99+q3Tz4UGDBlFISAhlZWVRTEwM/fzzz9SvXz8iInJ0dJTVMzc3pwMHDlBycjIVFBTItWNhYUGenp4UFxdHeXl5FBkZSStWrJB7Y4Kq16+r8SpKERERdP/+fZX7WHT+Inl5eZSYmEhXrlyh5cuXk62trcIx2l79GhMTU67fhaLf3eIrhjlxquFJ5x3gxIlTFU4jRowgsVhMDRo00HlfOKme2rZtS0T/bZdSk5OyoK5Zs2ZUUFAgtw0NJ041PfGWJoyxUh05cgS3bt3CggULdN0VpoJmzZqhd+/e+OOPP/Ds2TPZdixvmu+//x4XLlzA+fPndd0VxioNB3WMsTJNmTIFz54909oeZUxzfvjhB5w7dw4mJib47LPPkJ2dresuVTqRSIQnT57I7dXH2JtAAOmUHWOMMcYYq8Z4po4xxhhjrAbgoI4xxhhjrAbgoI4xxhhjrAbgoI4xxhhjrAbgN0pUggYNGiAjI0PX3WCMMcZYNWNqaqrwHumScFCnJW5ubpg+fTr09PTwzjvv6Lo7jDHGGKumGjZsqFJgx1uaaJmpqSnS09PRsGFDnq3TAJFIBGdnZ5w7dw4FBQW67k6NwmOrPTy22sHjqj08ttqjztiampoiLi4OderUUSmG4Jm6SpKRkcFBnQaIRCJkZ2cjIyOD/0OjYTy22sNjqx08rtrDY6s92hxbXijBGGOMMVYDcFDHGGOMMVYDcFDHGGOMMVYD8DN1VYChoSGsrKz4ZekqEIlEsLS0ROPGjfk5Dw3jsZUiImRkZCA1NRVEvI6MMVZ9cFCnY++99x5mz54NfX19XXel2jA0NISTk5Ouu1Ej8dj+Jzw8HFu2bEFiYqKuu8IYYyrhoE4FYrEYoaGhAICgoCBMmTJFI+0aGhpi9uzZCAsLg6+vL/Lz8zXSbk1namrKK4m1hMdWOmNZv359jBw5EitWrICbmxv/3WSMVQsc1KkgNTUVHTp00Hi7VlZW0NfXh6+vL548eaLx9msqMzMzpKWl6bobNRKPrVRERASSk5Px/fffw9raGrGxsbruEmOMlYkXSuhQ0TN0PAvAWNWTm5sLQDpzxxhj1UGND+ocHBxw/PhxxMXFgYgwdOhQhTqurq6IiIhAdnY2goKC0KNHD7nyOnXqICgoCIGBgejZs2dldV0NRpC+GIQKPzPGGGNMu4QAHAGMLvxT9yGV7nugZcbGxrhz5w5mzJihtHzkyJFYt24dVqxYgQ4dOiAwMBCnT59Go0aNZHWaNGkCe3t7fPXVV9i5cydMTU0rq/s1kouLC1JSUnTdDcYYY6ychgOIAnARwN7CP6MK83Wnxgd1fn5++OGHH+Dr66u0fM6cOfD29oa3tzfCw8Mxe/ZsxMTEwNXVVVYnPj4eAHD//n08ePAA77zzTqX0XXWv/xgdUBk/VisrK2zevBnR0dHIyclBfHw8/Pz80K1btzKP3b9/v9wYuri4gIhk6dmzZ9i/fz+aNGmixStgjDHGymM4gEMAGhbLb1iYr7vA7o1eKKGvr49OnTph1apVcvlnz55F9+7dAQDm5ubIyspCXl4eGjZsiNatWyMiIqLENg0MDFCrVi3Z96JZPZFIpPBsjmae1RkOYMNr3/0AxABwB6A8kNWEw4cPQ19fHy4uLoiIiMBbb72FPn36oG7dumUem5OTg5ycHLm8tLQ0vPvuuxAIBGjVqhV+//13HD9+HO3bt4dEIpHVK3oOUSAQ8B5iGsZjq5yyv7vlaUMoFPLzeRrG46o9PLbKEQkhkawv/FZ8AkUIQAJgHYTCvyAQSKCMOmOr7vi/0UGdpaUl9PT0kJCQIJefkJAAa2trAICdnR1+//13SCQSEBHc3d1LvXW4YMEC/Pjjjwr5zs7OyM7OVji/oaEhTE1NYWZmpnb/xeIhyMraoaRE+q8FIyMX6OufULvdspiZmcHBwQGDBg1CSEgIAGlQ9vDhQ1m5mZkZli5dioEDB6JOnTqIiIjA0qVLcebMGXz++edYuXIlGjduDAAwMpI+B1gU6IWEhGD16tXYsmULOnTogFmzZsHS0hKjR48GIL2lLhKJ8ODBAyxbtgx//vmnxq/xTWVsbKzrLlQZpqamMDQ0RM+ePZGUlFShtkQiETp27AiBQPBGb+ysaTyu2sNjq1xS0nu4fr1RKTWEAGzRpctcWFqGKq2hztgaGhqq1b83OqgrUnxW4vWZimvXruH9999Xua2VK1fCw8ND9t3U1BRxcXE4d+6cwv5fjRs3hpOTEzIyMsqxjYQQwP9e+1y8TIKsrBUA9kD6LwfNyczMREZGBj766COcP38eeXl5cuUCgQCnT5+Gqakpxo4diydPnqB169YoKChAWloasrKyQESyay7+HQBevnwJQBroeXp6IiAgAIaGhrIA3NHREcbGxti+fTtevXql0et7UxXN1KWnp/NMHaSz9NnZ2QgICEB0dHSF2hKJRCAi+Pn58f8gNYjHVXt4bJWTSOqoVO/GjacQCk8rLVNnbNV9hv+NDuqSkpKQn58vm5UrUr9+fYXZO1Xl5eUhLy8Pbm5umD59OoRCacBVUFCg8MOr2F8UBwBl/2tBWu9SBc6jqKCgABMmTMCWLVvw1Vdf4Z9//sGlS5ewb98+3Lt3Dx999BG6dOkCOzs7PHr0CAAQGRmpcvsNGzbEvHnzEBMTg4cPH0IsFuPff//FuHHjsHr1agDAhAkTcPDgQQ7oNKgokOOATp6yv7vlIZFINNYW+w+Pq/bw2CoTp1ItorhSx03VsVV37Gv8QonSiMViBAcHw9nZWS7f2dkZV69erVDbnp6eaNOmDbp06VKhdkpmo+F66jly5AgaNGiAjz/+GGfOnEGvXr3wzz//wMXFBe3bt0dsbKwsoFOFubk5MjIykJmZidjYWBgYGGDEiBEQi8UAgK1bt2LixIkApLetBw0ahG3btmnl2hhjjDHlAiF9br2kO2ASAE8L61W+Gh/UGRsbo127dmjXrh0AoGnTpmjXrp1syxIPDw9MnjwZEydORKtWreDh4QFbW1ts3ry5Qud1c3PD/fv3cfPmzQpfg3LxGq6nvtzcXJw/fx7Lli3Dhx9+iO3bt2Pp0qUKzw6qIj09He3bt0fbtm1hbGwMe3t7BAUFycp37tyJZs2aoVu3bhg1ahSioqJw+fJlTV4OY4wxVgYJpAsRiz4XLwOAWUrKKkeNv/1qb2+Pixcvyr6vXbsWALB9+3ZMnDgRBw4cQL169bB48WLY2NggNDQUAwcOxNOnTyt0Xk9PT3h6esLU1BTp6ekVaku5on8tNITy2FwCIBaV+a+FBw8eYNiwYbh79y7efvtttGzZUuXZOolEUuqr0pKTk3H06FFMnDgRH374IXx8fDTVbcYYY0wNvgA+BbAe8o9BxUIa0Glv54my1Pig7tKlS7IHwEvi5eUFLy+vSuqRphT9a+FQ4WdhsTJAW/9aqFu3Lg4ePIht27bh7t27yMjIgL29Pb799lscO3YMAQEBCAgIwOHDhzFnzhw8fvwYrVq1AhHhzJkz5T7v1q1b8ddff0EkEmHHDmWrfhljjLHK4AvgGKTPrdtAelcsELqaoStS44M6XSm+UEI7iv61sAHA26/la/dfC5mZmbhx4wZmz56N5s2bQ19fHzExMdiyZQv+9z/pitxPPvkEa9aswd69e2FsbIzHjx9j/vz5FTrv+fPnER8fj3///Ve2ITRjjDGmGxJoeiGiJhAn7SVTU1MiIjI1NVUoa9y4Me3cuZMaN25cwfOYEECFqR8BQp1ftzaSoaEhpaSk0BdffKHzvtTUZGZmpvM+VJWkub+fIJFIRIMHDyaRSKTz66pJiceVx7Y6JnXGtrQYQlnimboa4fXpXt1P/2qaQCCAtbU15s6di7S0NJw6dUrXXWKMMcaqHA7qtKRybr8WyQJQ+nOD1ZmtrS2ioqIQExODCRMm8J5JjDHGmBIc1GmJ9le/vjmio6PlFruU55VqjDHGWE1X4/epY4wxxhh7E3BQxxhjjDFWA3BQpyXaf6MEY4wxxth/OKjTEu2/+5Uxxhhj7D8c1DHGGGOM1QC8+rUm0AewqPDzCgBiHfaFMcYYYzrBM3WMqcDf3x9r165V+7jGjRuDiNCuXTst9Eq5JUuWICQkpMLt1K1bFwkJCWjcuLEGeqUZPj4+8PX1rVAbVlZWePHiBRo0aKChXjHGWNXAQZ2WVOpCidf3HbZFpexD/NZbb2HDhg148uQJcnJy8PTpUxw/fhxOTk4qt+Hj4wMiAhFBLBYjOjoanp6eMDc3l6sXGRkJd3d3ubw1a9YgPT0dvXv3BiANulxcXCp8Xew/CxYswIkTJxAdHQ3gvwA1ISEBJiYmcnVDQkKwZMkSXXRTbYmJidi1axeWLl2q664wxphGcVCnJZW2UMIOwIzXvo8DMKswX0saN26M4OBgODk54dtvv0Xbtm3Rv39/+Pv7Y9OmTWq1dfr0aVhbW6NJkyaYPHkyhgwZAk9PzxLrC4VC/Pbbbxg/fjycnJzg7+9f0cvRGn19fV13odxq166NL7/8Elu3blUoMzU1xTfffKODXmmOj48Pxo4dq/APCMYYq844qKvO7ACMBGBaLL9OYb6WAjtPT08QEbp06YLDhw/j0aNHePDgAdauXYtu3boBALy9vXHixAm540QiEeLj4zFx4kRZXm5uLhISEhAXF4dz585h//796Nu3r9LzGhgY4ODBg+jVqxd69uyJoKCgEvu4ZMkSREdHIycnB3FxcVi/fn2pdUNCQvDFF18gMjISqamp2Lt3r8JslJ6eHjZu3IiUlBQkJSVh2bJlcuWRkZFYtGgRfHx8kJqaii1btiicSyAQ4I8//sC///4LW1vbEvtUpFGjRjh69CgyMjKQlpaG/fv3o379+nJ1vvvuOzx//hzp6enYunUrateurdDOhAkT8ODBA2RnZyMsLAyurq6lnnfAgAHIz8/H9evXFco2btyIOXPmwMrKqsTjiQhDhw6Vy0tJSZHNphbN+n322WcICAhAVlYWbt68iZYtW8Le3h63bt1CRkYGTp8+DUtLS4X2Fy9ejISEBKSlpWHz5s1yAXS/fv0QGBgo+zmdOHECzZo1kzs+NDQUz58/x/Dhw0sdB8YYq044qKuuBAD6v/a5eBkKyzV8K9bCwgL9+/fHpk2bkJWVpVCelpYGANi6dSv69+8Pa2trWdnAgQNhYmKCAwcOKG27adOm6N+/P8RixZUeJiYmOHnyJNq0aYP+/fsjPDy8xD5+8sknmD17NqZNm4aWLVti2LBhuHfvXqnX1bx5cwwbNgyDBw/G4MGD4ejoiPnz58vVcXFxQX5+Prp27Yqvv/4as2fPxuTJk+XqzJs3D6GhoejUqZNC0Kevr48DBw7A3t4ePXr0wNOnT0vtEwAcPXoUdevWhaOjI5ydndG8eXPs379fVv7ZZ59h6dKlWLRoEezt7REfHw83Nze5NiZPnowVK1Zg0aJFsLOzw8KFC7Fs2TKMHz++xPOWFjTv3bsXjx8/xuLFi8vsf1mWLl2K5cuXo2PHjsjPz8fevXvxyy+/wN3dHQ4ODmjevDl++uknuWP69OkDOzs79O7dG2PGjMHw4cPlbv0aGxvDw8MDnTt3Rp8+fSCRSODr6yv3qjkAuHnzJhwcHCp8DYwxVpUQJ+0lU1NTIiIyNTVVKGvcuDHt3LmTGjdurH7bTUD4UYXURLPX07lzZyIiGjZsWJl1Q0NDad68ebLvR44coW3btsm++/j4kFgspoyMDMrKyqIis2bNkmsnMjKScnJyKDExkaysrMjMzKzU886ePZvCw8NJT09PpWtasmQJZWZmkomJiSzv559/pmvXrsm++/v70/379+WOW7lypVxeZGQkHTlyROFnTET04Ycf0tmzZykwMJDq1KmjUr8++ugjEovF9Pbbb8vy7OzsiIjI3t6eANCVK1fI09NT7rhr165RSEiI7Ht0dDSNHj1ars6iRYvoypUrCucsGltfX1/aunWr0mtp164d9e3bl3Jzc6lZs2YEgEJCQmjJkiWyukREQ4cOlTs+JSWFXFxc5NqaNGmSrHzUqFFERNS7d29Z3nfffUdhYWFyvzNJSUlkaGgoy5s2bRqlp6eTQCBQOo6WlpZERNSmTRu5/F9//ZX+/vvvEse/Qn8/iyWRSESDBw8mkUhU4bY48bjy2FbvpM7YlhZDKEs8U1ddmZRdRa16Kiqa7SCiMutu3bpVdqvVysoKgwYNwrZt2+Tq+Pv7o3379ujatSs2bNgAPz8/bNy4UaGts2fPwtjYGAsXLizzvAcPHoShoSEiIiLwxx9/YNiwYRCJRKUeExUVhczMTNn3+Ph4hducxW9FXrt2DS1btoRQ+N9fo9Jmt0xMTNC3b1+kp6eXeQ0AYGdnh5iYGMTGxsrywsLCkJKSAjs7O1mda9euKfSriKWlJWxtbeHt7Y2MjAxZ+v7779G8efMSz21oaIicnJwSy8+ePYvLly8rzEaq6+7du7LPCQkJACA3q5qQkKDwc7hz5w6ys7Nl369duwZTU1M0atQIANCsWTPs3r0bT548QVpaGiIjIwFA4XZ3dnY2jIyMKtR/xhirSjio0xKtr37NLLuKWvVU9OjRI0gkEllQUZqdO3eiWbNm6NatG7744gtERUXh8uXLcnVevXqFJ0+e4N69e3B3d0etWrWUrqK8cOECPv74Y0ydOhW//PJLqeeNjY3Fu+++i+nTpyM7Oxuenp4ICAiAnl7J2zIWv+VLRHLBmqpevXqlNP/UqVN4//33Zc8cqkIgECgNnkvKV6boGqZMmYL27dvL0nvvvVdqX5KSkmBhYVFq2/Pnz8eoUaPQvn17hTKJRKJwu1PZwpHXx73omornqfpzKDr+xIkTqFevHqZMmYKuXbuia9euAKTPZL6ubt26SExMVKltxhirDjio0xKtr36NBpAG6YSrMlRYHq3Z06akpODMmTOYPn260lkOMzMz2efk5GQcPXoUEydOxMSJE+Hj41Nm+0uXLsU333wDGxsbhbLz589j8ODBGDt2LH777bdS28nJycGJEyfg7u6OXr16oXv37mjbtq0KV1iy4kFQt27dZEFuWby8vDB//nwcP34cPXv2VOl8Dx48gK2tLd5++21Znp2dHczNzREWFgZAOnOnrF9FXrx4gdjYWDRr1gxPnjyRS1FRUSWeOyQkBK1bty61f7du3cKRI0ewatUqhbLExES5n2GLFi1gbGxcanuqateundxikG7duiEjIwOxsbGoW7cuWrdujeXLl+Pvv/9GeHh4icHpe++9p5H9/BhjrKrgoK66IgB+r30uXobCctUmdNTi5uYGkUiEmzdvYsSIEWjRogVatWqFmTNnKtwK3Lp1K1xcXGBnZ4cdO3aU2falS5dw//79Em+z+vv7Y9SoUXBxcSlx+xQXFxdMmjQJbdq0QdOmTTFu3DhkZWXJ9lsrr0aNGuHXX3/FO++8g9GjR2PmzJmlrqot7rfffsP333+Pv/76Cx9++GGZ9c+fP4+7d+9i9+7d6NChAzp37oydO3fi4sWLCA4OBgCsX78ekyZNwsSJE9GyZUv8+OOPaNOmjVw7P/74IxYsWICvv/4aLVu2xHvvvYcJEyZg9uzZJZ77zJkzaNOmTZlbfixatAhOTk5499135fL//vtvzJgxAx06dECnTp2wefNm5OXllXnNqjAwMIC3tzfs7OzQv39/LF26FL/99huISLbiderUqWjevDl69+4NDw8PhTYMDQ3RqVMnnD17ViN9YoyxqoCDuuosDMABABnF8tML88O0c9qoqCh07NgR/v7++PXXXxEaGopz586hT58+CltlnD9/HvHx8Thz5gzi4+NVat/DwwNTpkyRm6F63eXLlzFw4ECMGzcOXl5eCuWpqamYMmUKrly5grt376JPnz4YMmQIkpOT1b/Y1+zcuROGhoa4efMmNm3ahI0bN+KPP/5Qq43169djyZIlOHXqFD744IMy6w8bNgwpKSkICAjA+fPnERER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", + "image/png": "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", "text/plain": [ "
" ] @@ -536,41 +554,41 @@ "text": [ "How much faster X is vs. Y\n", "End Time: 1.0e-03\n", - "\t nbrk_ode = 10.9x solve_ivp\t cyrk_ode = 17.6x solve_ivp\n", - "\t CySolver = 22.5x solve_ivp\t nbrk_ode = 0.6x cyrk_ode\n", - "\t CySolver = 2.1x nbrk_ode\t CySolver = 1.3x cyrk_ode\n", + "\t nbrk_ode = 10.4x solve_ivp\t cyrk_ode = 17.4x solve_ivp\n", + "\t CySolver = 21.8x solve_ivp\t nbrk_ode = 0.6x cyrk_ode\n", + "\t CySolver = 2.1x nbrk_ode\t CySolver = 1.2x cyrk_ode\n", "End Time: 1.0e-02\n", - "\t nbrk_ode = 11.3x solve_ivp\t cyrk_ode = 17.7x solve_ivp\n", - "\t CySolver = 23.2x solve_ivp\t nbrk_ode = 0.6x cyrk_ode\n", - "\t CySolver = 2.0x nbrk_ode\t CySolver = 1.3x cyrk_ode\n", + "\t nbrk_ode = 10.3x solve_ivp\t cyrk_ode = 17.1x solve_ivp\n", + "\t CySolver = 21.1x solve_ivp\t nbrk_ode = 0.6x cyrk_ode\n", + "\t CySolver = 2.1x nbrk_ode\t CySolver = 1.2x cyrk_ode\n", "End Time: 1.0e-01\n", - "\t nbrk_ode = 15.8x solve_ivp\t cyrk_ode = 21.4x solve_ivp\n", - "\t CySolver = 33.2x solve_ivp\t nbrk_ode = 0.7x cyrk_ode\n", - "\t CySolver = 2.1x nbrk_ode\t CySolver = 1.6x cyrk_ode\n", + "\t nbrk_ode = 14.9x solve_ivp\t cyrk_ode = 21.2x solve_ivp\n", + "\t CySolver = 31.2x solve_ivp\t nbrk_ode = 0.7x cyrk_ode\n", + "\t CySolver = 2.1x nbrk_ode\t CySolver = 1.5x cyrk_ode\n", "End Time: 1.0e+00\n", - "\t nbrk_ode = 31.8x solve_ivp\t cyrk_ode = 28.7x solve_ivp\n", - "\t CySolver = 68.1x solve_ivp\t nbrk_ode = 1.1x cyrk_ode\n", - "\t CySolver = 2.1x nbrk_ode\t CySolver = 2.4x cyrk_ode\n", + "\t nbrk_ode = 29.6x solve_ivp\t cyrk_ode = 29.1x solve_ivp\n", + "\t CySolver = 67.6x solve_ivp\t nbrk_ode = 1.0x cyrk_ode\n", + "\t CySolver = 2.3x nbrk_ode\t CySolver = 2.3x cyrk_ode\n", "End Time: 1.0e+01\n", - "\t nbrk_ode = 102.3x solve_ivp\t cyrk_ode = 38.0x solve_ivp\n", - "\t CySolver = 314.6x solve_ivp\t nbrk_ode = 2.7x cyrk_ode\n", - "\t CySolver = 3.1x nbrk_ode\t CySolver = 8.3x cyrk_ode\n", + "\t nbrk_ode = 95.0x solve_ivp\t cyrk_ode = 37.0x solve_ivp\n", + "\t CySolver = 303.6x solve_ivp\t nbrk_ode = 2.6x cyrk_ode\n", + "\t CySolver = 3.2x nbrk_ode\t CySolver = 8.2x cyrk_ode\n", "End Time: 1.0e+02\n", - "\t nbrk_ode = 131.4x solve_ivp\t cyrk_ode = 38.4x solve_ivp\n", - "\t CySolver = 433.1x solve_ivp\t nbrk_ode = 3.4x cyrk_ode\n", - "\t CySolver = 3.3x nbrk_ode\t CySolver = 11.3x cyrk_ode\n", + "\t nbrk_ode = 120.3x solve_ivp\t cyrk_ode = 37.5x solve_ivp\n", + "\t CySolver = 442.3x solve_ivp\t nbrk_ode = 3.2x cyrk_ode\n", + "\t CySolver = 3.7x nbrk_ode\t CySolver = 11.8x cyrk_ode\n", "End Time: 1.0e+03\n", - "\t nbrk_ode = 126.3x solve_ivp\t cyrk_ode = 38.6x solve_ivp\n", - "\t CySolver = 494.9x solve_ivp\t nbrk_ode = 3.3x cyrk_ode\n", - "\t CySolver = 3.9x nbrk_ode\t CySolver = 12.8x cyrk_ode\n", + "\t nbrk_ode = 121.0x solve_ivp\t cyrk_ode = 38.0x solve_ivp\n", + "\t CySolver = 473.7x solve_ivp\t nbrk_ode = 3.2x cyrk_ode\n", + "\t CySolver = 3.9x nbrk_ode\t CySolver = 12.5x cyrk_ode\n", "End Time: 1.0e+04\n", - "\t nbrk_ode = 113.1x solve_ivp\t cyrk_ode = 40.5x solve_ivp\n", - "\t CySolver = 478.4x solve_ivp\t nbrk_ode = 2.8x cyrk_ode\n", - "\t CySolver = 4.2x nbrk_ode\t CySolver = 11.8x cyrk_ode\n", + "\t nbrk_ode = 107.1x solve_ivp\t cyrk_ode = 38.6x solve_ivp\n", + "\t CySolver = 472.1x solve_ivp\t nbrk_ode = 2.8x cyrk_ode\n", + "\t CySolver = 4.4x nbrk_ode\t CySolver = 12.2x cyrk_ode\n", "End Time: 1.0e+05\n", - "\t nbrk_ode = 109.3x solve_ivp\t cyrk_ode = 40.5x solve_ivp\n", - "\t CySolver = 460.8x solve_ivp\t nbrk_ode = 2.7x cyrk_ode\n", - "\t CySolver = 4.2x nbrk_ode\t CySolver = 11.4x cyrk_ode\n" + "\t nbrk_ode = 98.1x solve_ivp\t cyrk_ode = 35.5x solve_ivp\n", + "\t CySolver = 408.4x solve_ivp\t nbrk_ode = 2.8x cyrk_ode\n", + "\t CySolver = 4.2x nbrk_ode\t CySolver = 11.5x cyrk_ode\n" ] } ], diff --git a/Benchmarks/CyRK_CySolver.pdf b/Benchmarks/CyRK_CySolver.pdf index 3720421968013cbf4f33590ef5b7c13fcd8197bd..f31ff61eefe61331de637c2584e9a10087731f93 100644 GIT binary patch delta 21 bcmdm(voU8wo-v1!0T7xQS!^yd-pvF6SQ-aI delta 21 bcmdm(voU8wo-v1^rJ*?xTW&5h-pvF6Si%QW diff --git a/Benchmarks/CyRK_SciPy_Compare_predprey_v0-8-6-dev4.png b/Benchmarks/CyRK_SciPy_Compare_predprey_v0-8-6-dev4.png new file mode 100644 index 0000000000000000000000000000000000000000..2ee025031eab6e83ef26a3b88562b0ead08e7ae0 GIT binary patch literal 43105 zcmb4r2RxT;-}i}ZMMI(NkyTbxMoAedk{N|Wk!+>Ric%>fvq6JGWQEGiPDMmWHWewO z?Dc++uKRu7_jx||=Xsy^{(P>x>#Bc$=XspR@%w$(@4TvaKw~Kj4+}+6OSLrB^(l(h zpQ32Gm>BRoo9n;y;g{|1draI9IoZ0OwQ{wg_FK6-J2<&J*c}r%W8>;(=j5ocaqC8T zX@QgO?#^zCGBT(C;{zL=Tu;bI9O?JNmoPhPnz~UGyA}C|CQ0>)9YsB<)l%PO;CXkb z{jABVsA zDHWAuvRqG&B~z$eO+!7jgWb{B@2>f_U(1%Y^oDw=)+vOXRmjfIz9f>aup?WEVhi9< zV-i%i9%*W)@Gk)z`uXCN2>H!=*;UjE@>?glSSV)viP|PMdjG#4=ebO~^Y4e3?xqnS ze-d>00Tuf9i^}vUP4YDlt^R+%Mty^#$6!Ev{#jv3NtWs9>FV0ry(T7HU+d!84;}g_ z884%#$P+B5RrBV}F8sFb``e<2n(OPA2g?Po+paHZp{vXOtu9{U;KAi$Ix%`by`=W- z+sC>udgC5<_f0G;EF8<1UvMg(HyY^8cORftRaF%c6BF9Hbf&+Cnu-5+2P`r3@f@grE|2WPoHjSZSB6}RP=g%y!XZB!g~#-3${9b zDVgl_W2a7jO6C4qd+)l1-#q8iwOh(R=bVyK%C#!HyzT6-bwfi#BmL19J?~-_nqK9N z6%-cAS(Pr4HqBaccDSRWNy^tM(xDo~mEm!1wRf5vNX_%Epx$P8ZbI*AES~X6v8ZyLYd& zvhux(@^a1o9g2$bm0WALyNb}2@N9K_w=n&UKPoo%&CH*Hvev>g-#=W4jEKmfXI-t? zzc|t6B)xTObnNZhMxJvihEKVygL53)4@>%0-Q*3HtJKlakyI)&%X3V9@gnAZylVW% zc&nW|DOM(?q{w0!;l06@rlzJ2r2)+PstVc>;!V=^t7HWej5Zv8&J-;7E=G=S&z?Q< z{b~<5PSnNGQ$wF~Se-fw!gjQu8y_@O@|}B8ddlX+iQa*aPdtYUCs%#S%+0O5v3Bc+ zf^%-$wr}sA8UMi<_wmb@b%B9_CNEtRby^wuy{Sqr+q$@=l(UNqO?+KdoU&KK;Lp}< z#+jKJu1zQP0-IN`1XBL*-svRI1qZW5L_}2oEY2#LpDtFI|6aaw z<)yhf?|{HS35V>ku;p7ETKtoe#PJ~^K|z{3Tb(W!6%{4asxHo5x_@6F)_U4oWyOjW z&OPPK$=-(!9dhU_;=R5`X0N%qdCu?!4x#wZkMytrc6)n%PfM>~e1KI1IajTcRZvi1@aI+X3>96!{_VQ-^z=F|Ylru@H*+3+ zvgi70=?xoh@G75=$gyv_#?8Z%CAj-?#-Bg#xgI}0X}3+!O}nk;;i>2AFXMY{1V_bIpgv_X8oPGUv}IarBsR})wB9jry~ zuevZLEVXf?ZEkL^zK2FI*K0h95BGPmQFuny^z`%&{bWNR|W!K6bTjJ*IY}x6zs7zKm|IE*n=l5{F@GvTa zxrHN#`}-@ntW)>j*}@XCfj1JL5704ncYkg`ajjeT?pJ5A40F-GTNf_SNJ&Uo{rHr2 zt5NyP5Eu4Rba345n3xQlsfpips`~~vIkbdUR8?h1N*UM8{nz_7eBw_d%NJ7h@Zm#| z*Pl?qOtrL_y%y&u69@NbXk_EW*`7M}cIfBN))y|lCI$wpq$DMe#rw`A8?WyS_U&8i%F0SMYKLnd(>@)YCBfGF8UYFwys*SLWq;XJ}__`Ig;X# zahOM(olDlA#?sNz5v%0j;2`3Wd%CR>*KUH=6O)-Kr+_`O`!btVu-q2(1+Dl)57m?R zYW-Y#U;S!0Ln4+w`{6?&TRXetKXSjnzPHA5r`mmdEG;B-@yIK8t;aVDPEa^JZ(ZHo zTCuki;+myYZ*Q_|5HT`0fA`Fy_?bILOOcNk9M=k)0toO#zOj z*GLylc1}*@ox{&h3MQK=8v1_!Ajsg~{?bk3EB_K4N=}A|U^y0AiGwNU{&jA5B@b

88iu3$jj*w~od1uY$2 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 literal 0 HcmV?d00001 diff --git a/Benchmarks/CyRK_SciPy_Compare_predprey_v0-8-6-dev5.png b/Benchmarks/CyRK_SciPy_Compare_predprey_v0-8-6-dev5.png new file mode 100644 index 0000000000000000000000000000000000000000..6da7abfdbed51d4081cda241e26f8506102fe763 GIT binary patch literal 42991 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 B4%Gkv literal 0 HcmV?d00001 diff --git a/Benchmarks/CyRK_cyrk_ode.pdf b/Benchmarks/CyRK_cyrk_ode.pdf index 61722429cd870fb29d90f7b9b0d27b8323146765..f31ff61eefe61331de637c2584e9a10087731f93 100644 GIT binary patch delta 19 acmdm(voU8wfiatrfsvV!#pW{O-An*XEC%5K delta 19 acmdm(voU8wfiat*rHQ41@#Zq)-An*Xc?RbI diff --git a/Benchmarks/CyRK_numba.pdf b/Benchmarks/CyRK_numba.pdf index 2fd1e6bdee0bacb71a8182aabd4663516a7db189..60683c7ca06c7e4e7db2bb95013c657efa990757 100644 GIT binary patch delta 19 acmdm(voU8wfiatrfsvV!`Q|d?-An*XCI;XD delta 19 acmdm(voU8wfiat*rHQ41!R9jK-An*XX9nZ| diff --git a/Benchmarks/SciPy.pdf b/Benchmarks/SciPy.pdf index b0eff41ef7f96ef288c9ce96f5b5caa11bd34a8e..2195ec84f538e8855897b54d10e9d4e37b2a4a90 100644 GIT binary patch delta 19 acmdm#vngjop)s40fsvV^<>qqZ-An*XVFu*@ delta 19 acmdm#vngjop)s4GrHO^H@#b>l-An*Xyaw$6 diff --git a/CHANGES.md b/CHANGES.md index 0fea4e5..628145c 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,10 +2,16 @@ ## 2023 -#### v0.8.7 (2024-01-??) +#### v0.8.6 (2024-01-??) + +Changes: +- Converted `CySolver`'s `rk_step` method into a pure-c implementation to allow for further optimizations. +- Changed all files to compile with c rather than c++. + - Had to change cpp_bools to bints to make this change. Bug Fixes: - Fixed incorrect type for rk method in CySolver (should eliminate some compile warnings). +- Fixed issue in benchmark where incorrect results were being displayed for CySolver. #### v0.8.5 (2023-10-27) diff --git a/CyRK/cy/common.pxd b/CyRK/cy/common.pxd index abe8b6d..48bb597 100644 --- a/CyRK/cy/common.pxd +++ b/CyRK/cy/common.pxd @@ -1,10 +1,8 @@ -# distutils: language = c++ + ctypedef fused double_numeric: double double complex -from libcpp cimport bool as bool_cpp_t - cdef double SAFETY cdef double MIN_FACTOR cdef double MAX_FACTOR @@ -33,7 +31,7 @@ cdef void interpolate( size_t t_len_full, size_t t_len_reduced, size_t target_len, - bool_cpp_t is_complex + bint is_complex ) noexcept cdef size_t find_expected_size( @@ -41,8 +39,8 @@ cdef size_t find_expected_size( size_t num_extra, double t_delta_abs, double rtol_min, - bool_cpp_t capture_extra, - bool_cpp_t is_complex + bint capture_extra, + bint is_complex ) noexcept nogil @@ -51,7 +49,7 @@ cdef void find_max_num_steps( size_t num_extra, size_t max_num_steps, size_t max_ram_MB, - bool_cpp_t capture_extra, - bool_cpp_t is_complex, - bool_cpp_t* user_provided_max_num_steps, + bint capture_extra, + bint is_complex, + bint* user_provided_max_num_steps, size_t* max_num_steps_touse) noexcept nogil \ No newline at end of file diff --git a/CyRK/cy/common.pyx b/CyRK/cy/common.pyx index 98ccbab..b9e2491 100644 --- a/CyRK/cy/common.pyx +++ b/CyRK/cy/common.pyx @@ -1,4 +1,4 @@ -# distutils: language = c++ +# distutils: language = c # cython: boundscheck=False, wraparound=False, nonecheck=False, cdivision=True, initializedcheck=False import cython @@ -46,7 +46,7 @@ cdef void interpolate( size_t t_len_full, size_t t_len_reduced, size_t target_len, - bool_cpp_t is_complex + bint is_complex ) noexcept: """ Interpolate the results of a successful integration over the user provided time domain, `time_domain_full`. """ @@ -107,8 +107,8 @@ cdef size_t find_expected_size( size_t num_extra, double t_delta_abs, double rtol_min, - bool_cpp_t capture_extra, - bool_cpp_t is_complex) noexcept nogil: + bint capture_extra, + bint is_complex) noexcept nogil: cdef double temp_expected_size # Pick starting value that works with most problems @@ -145,9 +145,9 @@ cdef void find_max_num_steps( size_t num_extra, size_t max_num_steps, size_t max_ram_MB, - bool_cpp_t capture_extra, - bool_cpp_t is_complex, - bool_cpp_t* user_provided_max_num_steps, + bint capture_extra, + bint is_complex, + bint* user_provided_max_num_steps, size_t* max_num_steps_touse) noexcept nogil: # Determine max number of steps diff --git a/CyRK/cy/cyrk.pyx b/CyRK/cy/cyrk.pyx index 6a8d65b..c15ca34 100644 --- a/CyRK/cy/cyrk.pyx +++ b/CyRK/cy/cyrk.pyx @@ -1,4 +1,4 @@ -# distutils: language = c++ +# distutils: language = c # cython: boundscheck=False, wraparound=False, nonecheck=False, cdivision=True, initializedcheck=False import cython @@ -7,9 +7,7 @@ from cpython.mem cimport PyMem_Free import numpy as np cimport numpy as np -np.import_array() -from libcpp cimport bool as bool_cpp_t from libc.math cimport sqrt, fabs, nextafter, NAN, floor from CyRK.utils.utils cimport allocate_mem, reallocate_mem @@ -80,9 +78,9 @@ def cyrk_ode( double first_step = 0., unsigned char rk_method = 1, double[:] t_eval = None, - bool_cpp_t capture_extra = False, + bint capture_extra = False, size_t num_extra = 0, - bool_cpp_t interpolate_extra = False, + bint interpolate_extra = False, size_t expected_size = 0, size_t max_num_steps = 0, size_t max_ram_MB = 2000 @@ -148,7 +146,7 @@ def cyrk_ode( ``` num_extra : int = 0 The number of extra outputs the integrator should expect. With the previous example there is 1 extra output. - interpolate_extra : bool_cpp_t, default=False + interpolate_extra : bint, default=False Flag if interpolation should be run on extra parameters. If set to False when `run_interpolation=True`, then interpolation will be run on solution's y, t. These will then be used to recalculate extra parameters rather than an interpolation on the extra parameters captured @@ -181,7 +179,7 @@ def cyrk_ode( # Determine information about the differential equation based on its initial conditions cdef size_t y_size cdef double y_size_dbl, y_size_sqrt - cdef bool_cpp_t y_is_complex + cdef bint y_is_complex y_size = y0.size y_is_complex = False y_size_dbl = y_size @@ -201,7 +199,7 @@ def cyrk_ode( # Build time domain cdef double t_start, t_end, t_delta, t_delta_check, t_delta_abs, direction_inf, t_old, t_now, time_ - cdef bool_cpp_t direction_flag + cdef bint direction_flag t_start = t_span[0] t_end = t_span[1] t_delta = t_end - t_start @@ -218,7 +216,7 @@ def cyrk_ode( direction_inf = -INF # Pull out information on args - cdef bool_cpp_t use_args + cdef bint use_args if args is None: use_args = False else: @@ -271,7 +269,7 @@ def cyrk_ode( # Determine max number of steps cdef size_t max_num_steps_touse - cdef bool_cpp_t user_provided_max_num_steps + cdef bint user_provided_max_num_steps find_max_num_steps( y_size, num_extra, @@ -363,7 +361,7 @@ def cyrk_ode( cdef double_numeric[::1] diffeq_out_view = diffeq_out_array # Determine interpolation information - cdef bool_cpp_t run_interpolation + cdef bint run_interpolation cdef size_t len_t_eval if t_eval is None: run_interpolation = False @@ -486,7 +484,7 @@ def cyrk_ode( cdef double step, step_size, min_step, step_factor # Integration flags and variables - cdef bool_cpp_t success, step_accepted, step_rejected, step_error + cdef bint success, step_accepted, step_rejected, step_error cdef size_t len_t # Integration completion variables @@ -666,7 +664,7 @@ def cyrk_ode( # Initialize y_view[i] = y_old_ptr[i] - y_view[i] += K_ptr[j * y_size + i] * A_at_sj + y_view[i] = y_view[i] + K_ptr[j * y_size + i] * A_at_sj if use_args: diffeq(time_, y_array, diffeq_out_array, *args) @@ -686,7 +684,7 @@ def cyrk_ode( # Initialize y_view[i] = y_old_ptr[i] - y_view[i] += K_ptr[j * y_size + i] * B_at_j + y_view[i] = y_view[i] + K_ptr[j * y_size + i] * B_at_j # Find final dydt for this timestep if use_args: diff --git a/CyRK/cy/cysolver.pxd b/CyRK/cy/cysolver.pxd index 122ded0..0d390b4 100644 --- a/CyRK/cy/cysolver.pxd +++ b/CyRK/cy/cysolver.pxd @@ -191,7 +191,7 @@ cdef class CySolver: ctypedef void (*DiffeqType)(CySolver) cdef extern from "rk_step.c": - char rk_step_cf( + int rk_step_cf( # Pointer to differential equation DiffeqType diffeq_ptr, # Pointer to the CySolver instance diff --git a/CyRK/cy/cysolver.pyx b/CyRK/cy/cysolver.pyx index c371a87..05556e4 100644 --- a/CyRK/cy/cysolver.pyx +++ b/CyRK/cy/cysolver.pyx @@ -704,215 +704,6 @@ cdef class CySolver: return step_size - # cdef void rk_step(self) noexcept nogil: - # """ Performs a Runge-Kutta step calculation including local error determination. """ - - # # Initialize step variables - # cdef size_t s, i, j - # cdef double min_step, step, step_factor, time_tmp, t_delta_check - # cdef double scale, temp_double - # cdef double error_norm3, error_norm5, error_norm, error_dot_1, error_dot_2, error_denom, error_pow - # cdef bint step_accepted, step_rejected, step_error - - # # Run RK integration step - # # Determine step size based on previous loop - # # Find minimum step size based on the value of t (less floating point numbers between numbers when t is large) - # min_step = 10. * fabs(nextafter(self.t_old, self.direction_inf) - self.t_old) - # # Look for over/undershoots in previous step size - # if self.step_size > self.max_step: - # self.step_size = self.max_step - # elif self.step_size < min_step: - # self.step_size = min_step - - # # Determine new step size - # step_accepted = False - # step_rejected = False - # step_error = False - - # # Optimization variables - # cdef double A_at_10 - # # Define a very specific A (Row 1; Col 0) now since it is called consistently and does not change. - # A_at_10 = self.A_ptr[1 * self.len_Acols + 0] - - # # # Step Loop - # while not step_accepted: - # if self.step_size < min_step: - # step_error = True - # self.status = -1 - # break - - # # Move time forward for this particular step size - # if self.direction_flag: - # step = self.step_size - # self.t_now = self.t_old + step - # t_delta_check = self.t_now - self.t_end - # else: - # step = -self.step_size - # self.t_now = self.t_old + step - # t_delta_check = self.t_end - self.t_now - - # # Check that we are not at the end of integration with that move - # if t_delta_check > 0.: - # self.t_now = self.t_end - - # # If we are, correct the step so that it just hits the end of integration. - # step = self.t_now - self.t_old - # if self.direction_flag: - # self.step_size = step - # else: - # self.step_size = -step - - # # # Calculate derivative using RK method - - # # t_now must be updated for each loop of s in order to make the diffeq calls. - # # But we need to return to its original value later on. Store in temp variable. - # time_tmp = self.t_now - - # for s in range(1, self.len_C): - # # Update t_now so it can be used in the diffeq call. - # self.t_now = self.t_old + self.C_ptr[s] * step - - # # Dot Product (K, a) * step - # if s == 1: - # for i in range(self.y_size): - # # Set the first column of K - # temp_double = self.dy_old_ptr[i] - # # K[0, :] == first part of the array - # self.K_ptr[i] = temp_double - - # # Calculate y_new for s==1 - # self.y_ptr[i] = self.y_old_ptr[i] + (temp_double * A_at_10 * step) - # else: - # for j in range(s): - # temp_double = self.A_ptr[s * self.len_Acols + j] * step - # for i in range(self.y_size): - # if j == 0: - # # Initialize - # self.y_ptr[i] = self.y_old_ptr[i] - - # self.y_ptr[i] += self.K_ptr[j * self.y_size + i] * temp_double - - # # Call diffeq to update K with the new dydt - # self.diffeq() - - # for i in range(self.y_size): - # self.K_ptr[s * self.y_size + i] = self.dy_ptr[i] - - # # Restore t_now to its previous value. - # self.t_now = time_tmp - - # # Dot Product (K, B) * step - # for j in range(self.rk_n_stages): - # temp_double = self.B_ptr[j] * step - # # We do not use rk_n_stages_plus1 here because we are chopping off the last row of K to match - # # the shape of B. - # for i in range(self.y_size): - # if j == 0: - # # Initialize - # self.y_ptr[i] = self.y_old_ptr[i] - - # self.y_ptr[i] += self.K_ptr[j * self.y_size + i] * temp_double - - # # Find final dydt for this timestep - # self.diffeq() - - # # Check how well this step performed by calculating its error - # if self.rk_method == 2: - # # Calculate Error for DOP853 - # # Dot Product (K, E5) / scale and Dot Product (K, E3) * step / scale - # error_norm3 = 0. - # error_norm5 = 0. - # for i in range(self.y_size): - # # Find scale of y for error calculations - # scale = (self.atols_ptr[i] + - # max(fabs(self.y_old_ptr[i]), fabs(self.y_ptr[i])) * self.rtols_ptr[i]) - - # # Set last array of K equal to dydt - # self.K_ptr[self.rk_n_stages * self.y_size + i] = self.dy_ptr[i] - # # Initialize - # error_dot_1 = 0. - # error_dot_2 = 0. - # for j in range(self.rk_n_stages_plus1): - - # temp_double = self.K_ptr[j * self.y_size + i] - # error_dot_1 += temp_double * self.E3_ptr[j] - # error_dot_2 += temp_double * self.E5_ptr[j] - - # # We need the absolute value but since we are taking the square, it is guaranteed to be positive. - # # TODO: This will need to change if CySolver ever accepts complex numbers - # # error_norm3_abs = fabs(error_dot_1) - # # error_norm5_abs = fabs(error_dot_2) - # error_dot_1 /= scale - # error_dot_2 /= scale - - # error_norm3 += (error_dot_1 * error_dot_1) - # error_norm5 += (error_dot_2 * error_dot_2) - - # # Check if errors are zero - # if (error_norm5 == 0.) and (error_norm3 == 0.): - # error_norm = 0. - # else: - # error_denom = error_norm5 + 0.01 * error_norm3 - # error_norm = self.step_size * error_norm5 / sqrt(error_denom * self.y_size_dbl) - - # else: - # # Calculate Error for RK23 and RK45 - # # Dot Product (K, E) * step / scale - # error_norm = 0. - # for i in range(self.y_size): - # # Find scale of y for error calculations - # scale = (self.atols_ptr[i] + - # max(fabs(self.y_old_ptr[i]), fabs(self.y_ptr[i])) * self.rtols_ptr[i]) - - # # Set last array of K equal to dydt - # self.K_ptr[self.rk_n_stages * self.y_size + i] = self.dy_ptr[i] - # # Initialize - # error_dot_1 = 0. - # for j in range(self.rk_n_stages_plus1): - - # error_dot_1 += self.K_ptr[j * self.y_size + i] * self.E_ptr[j] - - # # We need the absolute value but since we are taking the square, it is guaranteed to be positive. - # # TODO: This will need to change if CySolver ever accepts complex numbers - # # error_norm_abs = fabs(error_dot_1) - # error_dot_1 *= (step / scale) - - # error_norm += (error_dot_1 * error_dot_1) - # error_norm = sqrt(error_norm) / self.y_size_sqrt - - # if error_norm < 1.: - # # The error is low! Let's update this step for the next time loop - # if error_norm == 0.: - # step_factor = MAX_FACTOR - # else: - # error_pow = pow(error_norm, -self.error_expo) - # step_factor = fmin(MAX_FACTOR, SAFETY * error_pow) - - # if step_rejected: - # # There were problems with this step size on the previous step loop. Make sure factor does - # # not exasperate them. - # step_factor = fmin(step_factor, 1.) - - # self.step_size = self.step_size * step_factor - # step_accepted = True - # else: - # error_pow = pow(error_norm, -self.error_expo) - # self.step_size = self.step_size * fmax(MIN_FACTOR, SAFETY * error_pow) - # step_rejected = True - - # if step_error: - # # Issue with step convergence - # self.status = -1 - # elif not step_accepted: - # # Issue with step convergence - # self.status = -7 - - # # End of step loop. Update the 'old' variables - # self.t_old = self.t_now - # for i in range(self.y_size): - # self.y_old_ptr[i] = self.y_ptr[i] - # self.dy_old_ptr[i] = self.dy_ptr[i] - cpdef void solve( self, bint reset = True @@ -946,7 +737,7 @@ cdef class CySolver: # Setup loop variables cdef size_t i - cdef char rk_step_output + cdef int rk_step_output # Setup storage arrays # These arrays are built to fit a number of points equal to `self.expected_size` diff --git a/CyRK/cy/cysolvertest.pyx b/CyRK/cy/cysolvertest.pyx index 5fbb099..ca2bbd6 100644 --- a/CyRK/cy/cysolvertest.pyx +++ b/CyRK/cy/cysolvertest.pyx @@ -1,4 +1,4 @@ -# distutils: language = c++ +# distutils: language = c # cython: boundscheck=False, wraparound=False, nonecheck=False, cdivision=True, initializedcheck=False from libc.math cimport sin, cos diff --git a/CyRK/cy/rk_step.c b/CyRK/cy/rk_step.c index 3a78e42..984374c 100644 --- a/CyRK/cy/rk_step.c +++ b/CyRK/cy/rk_step.c @@ -8,7 +8,7 @@ struct CySolverStruct { }; -char rk_step_cf( +int rk_step_cf( // Pointer to differential equation void (*diffeq_ptr)(CySolverStruct), // Pointer to the CySolver instance @@ -25,18 +25,18 @@ char rk_step_cf( double y_size_sqrt, // Pointers to class attributes that can change during rk_step call. - double* t_now_ptr, - double* y_ptr, - double* dy_ptr, - double* t_old_ptr, - double* y_old_ptr, - double* dy_old_ptr, - double* step_size_ptr, - char* status_ptr, + double* restrict t_now_ptr, + double* restrict y_ptr, + double* restrict dy_ptr, + double* restrict t_old_ptr, + double* restrict y_old_ptr, + double* restrict dy_old_ptr, + double* restrict step_size_ptr, + char* restrict status_ptr, // Integration tolerance variables and pointers - double* atols_ptr, - double* rtols_ptr, + double* restrict atols_ptr, + double* restrict rtols_ptr, double max_step, // RK specific variables and pointers @@ -45,13 +45,13 @@ char rk_step_cf( size_t rk_n_stages_plus1, size_t len_Acols, size_t len_C, - double* A_ptr, - double* B_ptr, - double* C_ptr, - double* K_ptr, - double* E_ptr, - double* E3_ptr, - double* E5_ptr, + double* restrict A_ptr, + double* restrict B_ptr, + double* restrict C_ptr, + double* restrict K_ptr, + double* restrict E_ptr, + double* restrict E3_ptr, + double* restrict E5_ptr, double error_expo, double min_step_factor, double max_step_factor, @@ -64,7 +64,7 @@ char rk_step_cf( // Initialize step variables double min_step, step, step_factor, time_tmp, t_delta_check; double scale, temp_double; - double error_norm3, error_norm5, error_norm, error_dot_1, error_dot_2, error_denom, error_pow; + double error_norm, error_dot_1, error_pow; bool step_accepted, step_rejected, step_error; // Store values from pointers so that they do not have to be dereferenced multiple times @@ -89,15 +89,14 @@ char rk_step_cf( step_error = false; // Optimization variables - double A_at_10; // Define a very specific A (Row 1; Col 0) now since it is called consistently and does not change. - A_at_10 = A_ptr[1 * len_Acols + 0]; + double A_at_10 = A_ptr[1 * len_Acols + 0]; // !! Step Loop while (!step_accepted) { // Check if step size is too small - // This will cause integration to fail: step size smaller than spacing betweeen numbers + // This will cause integration to fail: step size smaller than spacing between numbers if (step_size < min_step) { step_error = true; *status_ptr = -1; @@ -165,7 +164,7 @@ char rk_step_cf( } // Call diffeq method to update K with the new dydt // This will use the now updated values at y_ptr and t_now_ptr. It will update values at dy_ptr. - diffeq_ptr(*cysolver_inst); + diffeq_ptr(cysolver_inst); // Update K based on the new dy values. for (size_t i = 0; i < y_size; i++) { @@ -194,10 +193,11 @@ char rk_step_cf( // Find final dydt for this timestep // This will use the now final values at y_ptr and t_now_ptr. It will update values at dy_ptr. - diffeq_ptr(*cysolver_inst); + diffeq_ptr(cysolver_inst); // Check how well this step performed by calculating its error. if (rk_method == 2) { + double error_norm3, error_norm5, error_dot_2, error_denom; // Calculate Error for DOP853 // Dot Product (K, E5) / scale and Dot Product (K, E3) * step / scale error_norm3 = 0.0; @@ -314,3 +314,9 @@ char rk_step_cf( return 0; } + + +int main(){ + int x = 2; + return 0; +} \ No newline at end of file diff --git a/CyRK/rk/rk.pyx b/CyRK/rk/rk.pyx index 1543db6..4ad80f1 100644 --- a/CyRK/rk/rk.pyx +++ b/CyRK/rk/rk.pyx @@ -1,3 +1,4 @@ +# distutils: language = c # cython: boundscheck=False, wraparound=False, nonecheck=False, cdivision=True, initializedcheck=False from CyRK.rk.rk_constants cimport \ diff --git a/CyRK/rk/rk_constants.pyx b/CyRK/rk/rk_constants.pyx index 5e5f231..4c149d2 100644 --- a/CyRK/rk/rk_constants.pyx +++ b/CyRK/rk/rk_constants.pyx @@ -1,3 +1,4 @@ +# distutils: language = c # cython: boundscheck=False, wraparound=False, nonecheck=False, cdivision=True, initializedcheck=False """ Constants for Runge-Kutta Integration Methods. diff --git a/Performance/cyrk_performance-DOP853.csv b/Performance/cyrk_performance-DOP853.csv index 77fc742..79f896b 100644 --- a/Performance/cyrk_performance-DOP853.csv +++ b/Performance/cyrk_performance-DOP853.csv @@ -19,3 +19,4 @@ CyRK Version, Run-on Date, cython (avg), cython (std),CySolver (avg),CySolver (s 0.8.3, 07/10/2023 02:40:03, 0.9727, 0.0033, 0.0587, 0.0014, 0.1625, 0.0006, 9.9439, 0.0246, 0.4990, 0.0070, 2.6214, 0.0527, 0.4393, 0.0008, 0.0400, 0.0006, 0.1034, 0.0063, 4.4720, 0.1096, 0.3114, 0.0025, 1.1428, 0.0021, 1.4298, 0.0046, 0.0987, 0.0009, 0.2440, 0.0019, 21.2338, 0.3276, 1.7444, 0.0077, 4.3900, 0.0738, 1.6848, 0.0280, 0.1039, 0.0003, 0.4644, 0.0006, 25.3711, 0.1346, 2.2809, 0.0329, 7.3621, 0.0222 0.8.4, 18/10/2023 12:49:04, 0.9453, 0.0036, 0.0574, 0.0012, 0.1718, 0.0070, 9.9086, 0.1287, 0.4833, 0.0013, 1.4208, 0.0060, 0.4293, 0.0016, 0.0383, 0.0001, 0.0956, 0.0006, 4.2518, 0.0123, 0.2944, 0.0001, 0.7605, 0.0005, 1.3829, 0.0014, 0.0931, 0.0001, 0.2438, 0.0003, 19.2126, 0.0622, 1.1729, 0.0003, 3.1186, 0.0861, 1.6221, 0.0111, 0.0957, 0.0000, 0.4634, 0.0006, 22.3320, 0.0879, 1.2067, 0.0012, 6.1291, 0.0053 0.8.6.dev0, 19/01/2024 17:17:31, 0.9740, 0.0119, 0.0719, 0.0007, 0.1697, 0.0033, 10.2169, 0.2169, 0.6434, 0.0046, 1.4779, 0.0182, 0.4544, 0.0118, 0.0448, 0.0002, 0.0977, 0.0011, 4.3446, 0.0344, 0.3626, 0.0026, 0.7838, 0.0069, 1.4235, 0.0165, 0.1232, 0.0009, 0.2477, 0.0013, 19.7307, 0.1608, 1.5919, 0.0137, 3.1624, 0.0146, 1.6762, 0.0267, 0.1249, 0.0014, 0.5076, 0.0153, 23.4199, 0.2695, 1.6225, 0.0102, 6.4958, 0.1520 +0.8.6.dev5, 20/01/2024 20:57:32, 0.9654, 0.0350, 0.0593, 0.0005, 0.1643, 0.0031, 10.1469, 0.2272, 0.5336, 0.0046, 1.5269, 0.0157, 0.4520, 0.0159, 0.0413, 0.0009, 0.1049, 0.0037, 4.4339, 0.0685, 0.3167, 0.0048, 0.8644, 0.0892, 1.4193, 0.0373, 0.0960, 0.0020, 0.2445, 0.0016, 19.1834, 0.4476, 1.1753, 0.0156, 3.1061, 0.0091, 1.6612, 0.0129, 0.0970, 0.0009, 0.4825, 0.0073, 23.6510, 0.5350, 1.2931, 0.0265, 6.9028, 0.1741 diff --git a/Performance/cyrk_performance-RK23.csv b/Performance/cyrk_performance-RK23.csv index 091770f..fe88255 100644 --- a/Performance/cyrk_performance-RK23.csv +++ b/Performance/cyrk_performance-RK23.csv @@ -19,3 +19,4 @@ CyRK Version, Run-on Date, cython (avg), cython (std),CySolver (avg),CySolver (s 0.8.3, 07/10/2023 02:37:45, 4.5212, 0.1075, 0.2681, 0.0021, 0.7992, 0.0038, 43.9629, 0.3217, 2.5955, 0.0502, 9.2842, 0.4116, 2.7602, 0.0088, 0.2146, 0.0037, 0.5896, 0.0074, 27.1210, 0.1858, 2.0566, 0.0327, 5.7936, 0.0150, 4.8923, 0.0594, 0.3719, 0.0011, 0.9807, 0.0023, 82.6179, 0.6252, 6.0628, 0.0336, 20.2684, 0.2082, 5.6639, 0.0115, 0.9587, 0.2834, 1525.4251, 2635.4115, 105.9372, 0.3232, 14.0169, 0.0614, 45.0599, 0.8249 0.8.4, 18/10/2023 12:46:46, 4.4202, 0.0673, 0.2500, 0.0004, 0.8115, 0.0034, 43.1191, 0.0775, 2.4081, 0.0282, 10.0251, 0.7074, 2.7552, 0.0436, 0.2110, 0.0039, 0.5987, 0.0058, 26.5597, 0.2133, 1.9887, 0.0201, 5.8675, 0.1112, 4.7007, 0.0078, 0.3080, 0.0014, 0.9944, 0.0238, 81.1241, 0.3424, 5.5864, 0.7125, 19.9567, 0.1538, 5.4119, 0.0106, 0.3208, 0.0010, 1322.6941, 2287.9898, 96.8733, 2.3521, 5.5968, 0.1162, 36.6713, 0.3267 0.8.6.dev0, 19/01/2024 17:15:11, 4.4655, 0.0540, 0.2520, 0.0024, 0.8384, 0.0112, 48.8406, 7.7300, 2.9519, 0.3498, 11.7789, 0.7832, 2.8343, 0.0050, 0.2088, 0.0027, 0.6362, 0.0114, 28.1720, 0.2013, 1.9729, 0.0399, 6.2734, 0.1911, 4.6792, 0.0865, 0.3271, 0.0109, 0.9865, 0.0228, 81.1380, 0.5222, 5.4767, 0.1452, 21.0884, 0.5013, 5.5224, 0.0985, 0.3386, 0.0031, 1388.9789, 2402.5092, 97.8889, 0.2533, 5.6968, 0.0210, 37.7595, 0.3566 +0.8.6.dev5, 20/01/2024 20:55:09, 4.5939, 0.1214, 0.2913, 0.0055, 0.9096, 0.0547, 45.4232, 1.1684, 2.7730, 0.0485, 10.7296, 0.5067, 2.8359, 0.0144, 0.2277, 0.0069, 0.6448, 0.0286, 28.3614, 0.7453, 2.1621, 0.0884, 6.0957, 0.1981, 4.7850, 0.2003, 0.3504, 0.0068, 1.0324, 0.0655, 81.3522, 1.8550, 6.0088, 0.1014, 21.9253, 0.6227, 5.5980, 0.1062, 0.3607, 0.0049, 1404.0776, 2428.5964, 98.8028, 1.6552, 6.3194, 0.1216, 40.8134, 2.7390 diff --git a/Performance/cyrk_performance-RK45.csv b/Performance/cyrk_performance-RK45.csv index 18a6ca4..c4a4c60 100644 --- a/Performance/cyrk_performance-RK45.csv +++ b/Performance/cyrk_performance-RK45.csv @@ -19,3 +19,4 @@ CyRK Version, Run-on Date, cython (avg), cython (std),CySolver (avg),CySolver (s 0.8.3, 07/10/2023 02:39:08, 1.2268, 0.0292, 0.0670, 0.0002, 0.2042, 0.0002, 13.0410, 0.0369, 1.0062, 0.0659, 2.6633, 0.0087, 0.8234, 0.0038, 0.0631, 0.0002, 0.1648, 0.0001, 8.8861, 0.0427, 0.7835, 0.0085, 2.1426, 0.0023, 1.6358, 0.0049, 0.1139, 0.0050, 0.6746, 0.0009, 26.8571, 0.1145, 3.0055, 0.0209, 6.6462, 0.1028, 1.9187, 0.0032, 0.1280, 0.0045, 0.9513, 0.0050, 32.9776, 0.3770, 4.3772, 0.1087, 10.9500, 0.0345 0.8.4, 18/10/2023 12:48:10, 1.1825, 0.0070, 0.0622, 0.0001, 0.2012, 0.0008, 11.7285, 0.0223, 0.5412, 0.0092, 1.8985, 0.0613, 0.8106, 0.0029, 0.0601, 0.0012, 0.1661, 0.0004, 7.9235, 0.0105, 0.4982, 0.0007, 1.4473, 0.0029, 1.6015, 0.0058, 0.0981, 0.0003, 0.2963, 0.0039, 23.5090, 0.0487, 1.3260, 0.0138, 4.0189, 0.0470, 1.8400, 0.0072, 0.1011, 0.0002, 0.5443, 0.0013, 27.1240, 0.0951, 1.3706, 0.0024, 7.7848, 0.0081 0.8.6.dev0, 19/01/2024 17:16:37, 1.2017, 0.0135, 0.0660, 0.0009, 0.2108, 0.0051, 12.3765, 0.3199, 0.5768, 0.0072, 1.9711, 0.0868, 0.8322, 0.0089, 0.0641, 0.0009, 0.1722, 0.0016, 8.2980, 0.1150, 0.5397, 0.0067, 1.4598, 0.0102, 1.5830, 0.0190, 0.1096, 0.0029, 0.2914, 0.0037, 23.4215, 0.4064, 1.4328, 0.0234, 4.1562, 0.1338, 1.9550, 0.0320, 0.1128, 0.0013, 0.6329, 0.0182, 28.7108, 1.0286, 1.5263, 0.0154, 8.2360, 0.0257 +0.8.6.dev5, 20/01/2024 20:56:36, 1.1977, 0.0179, 0.0650, 0.0013, 0.2077, 0.0023, 11.6011, 0.0360, 0.5446, 0.0073, 1.8115, 0.0468, 0.8020, 0.0134, 0.0618, 0.0008, 0.1674, 0.0014, 8.2247, 0.0430, 0.5467, 0.0151, 1.5453, 0.0619, 1.5847, 0.0179, 0.0959, 0.0019, 0.2969, 0.0113, 23.0218, 0.5510, 1.2733, 0.0171, 3.9222, 0.0331, 1.8856, 0.0197, 0.1008, 0.0020, 0.5672, 0.0075, 28.2135, 0.7941, 1.3469, 0.0147, 8.1835, 0.1518 diff --git a/pyproject.toml b/pyproject.toml index 3dc42d1..3e2944f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name='CyRK' -version = '0.8.6.dev3' +version = '0.8.6.dev5' description='Runge-Kutta ODE Integrator Implemented in Cython and Numba.' authors= [ {name = 'Joe P. Renaud', email = 'joe.p.renaud@gmail.com'} From 248ab5c80a9c89b77a3f2b99884305dcb9d5bbfe Mon Sep 17 00:00:00 2001 From: Jrenaud-Desk Date: Sun, 21 Jan 2024 00:16:03 -0500 Subject: [PATCH 04/12] fixes --- CyRK/array/interp.pyx | 2 +- CyRK/cy/rk_step.c | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/CyRK/array/interp.pyx b/CyRK/array/interp.pyx index 07920d1..fb63238 100644 --- a/CyRK/array/interp.pyx +++ b/CyRK/array/interp.pyx @@ -1,4 +1,4 @@ -# distutils: language = c++ +# distutils: language = c # cython: boundscheck=False, wraparound=False, nonecheck=False, cdivision=True, initializedcheck=False from cython.parallel import prange diff --git a/CyRK/cy/rk_step.c b/CyRK/cy/rk_step.c index 984374c..fa63181 100644 --- a/CyRK/cy/rk_step.c +++ b/CyRK/cy/rk_step.c @@ -314,9 +314,3 @@ int rk_step_cf( return 0; } - - -int main(){ - int x = 2; - return 0; -} \ No newline at end of file From c2bb02c36750891bc5d60bcd97437c94aad09893 Mon Sep 17 00:00:00 2001 From: Jrenaud-Desk Date: Sun, 21 Jan 2024 00:20:37 -0500 Subject: [PATCH 05/12] fixes --- CyRK/cy/rk_step.c | 3 +-- cython_extensions.json | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/CyRK/cy/rk_step.c b/CyRK/cy/rk_step.c index fa63181..318410e 100644 --- a/CyRK/cy/rk_step.c +++ b/CyRK/cy/rk_step.c @@ -303,8 +303,7 @@ int rk_step_cf( // End of RK step. // Update "old" pointers *t_old_ptr = t_now; - for (size_t i = 0; i < y_size; i++) - { + for (size_t i = 0; i < y_size; i++) { y_old_ptr[i] = y_ptr[i]; dy_old_ptr[i] = dy_ptr[i]; } diff --git a/cython_extensions.json b/cython_extensions.json index 2f844f2..86486df 100644 --- a/cython_extensions.json +++ b/cython_extensions.json @@ -8,7 +8,7 @@ }, "interp": { "name": "CyRK.array.interp", - "sources": [["CyRK", "array", "interp.pyx"], ["CyRK", "array", "interp_common.c"]], + "sources": [["CyRK", "array", "interp.pyx"]], "include_dirs": [["CyRK", "array"]], "compile_args": [], "link_args": [] From d9e1035d1c0bec0e8816bd9f6e7345b751d32a27 Mon Sep 17 00:00:00 2001 From: Jrenaud-Desk Date: Sun, 21 Jan 2024 00:25:39 -0500 Subject: [PATCH 06/12] changing more c++ to c --- CyRK/utils/utils.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CyRK/utils/utils.pyx b/CyRK/utils/utils.pyx index b28f9ea..99d414c 100644 --- a/CyRK/utils/utils.pyx +++ b/CyRK/utils/utils.pyx @@ -1,4 +1,4 @@ -# distutils: language = c++ +# distutils: language = c # cython: boundscheck=False, wraparound=False, nonecheck=False, cdivision=True, initializedcheck=False from cpython.mem cimport PyMem_Malloc, PyMem_Realloc From 6be233b4944204a7fc27513accb718f35f791c2d Mon Sep 17 00:00:00 2001 From: Jrenaud-Desk Date: Sun, 21 Jan 2024 00:38:45 -0500 Subject: [PATCH 07/12] fixing macos compile error --- CyRK/cy/rk_step.c | 6 +++--- pyproject.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CyRK/cy/rk_step.c b/CyRK/cy/rk_step.c index 318410e..8770587 100644 --- a/CyRK/cy/rk_step.c +++ b/CyRK/cy/rk_step.c @@ -10,7 +10,7 @@ struct CySolverStruct { int rk_step_cf( // Pointer to differential equation - void (*diffeq_ptr)(CySolverStruct), + void (*diffeq_ptr)(struct CySolverStruct CyInst), // Pointer to the CySolver instance struct CySolverStruct* cysolver_inst, @@ -164,7 +164,7 @@ int rk_step_cf( } // Call diffeq method to update K with the new dydt // This will use the now updated values at y_ptr and t_now_ptr. It will update values at dy_ptr. - diffeq_ptr(cysolver_inst); + diffeq_ptr(*cysolver_inst); // Update K based on the new dy values. for (size_t i = 0; i < y_size; i++) { @@ -193,7 +193,7 @@ int rk_step_cf( // Find final dydt for this timestep // This will use the now final values at y_ptr and t_now_ptr. It will update values at dy_ptr. - diffeq_ptr(cysolver_inst); + diffeq_ptr(*cysolver_inst); // Check how well this step performed by calculating its error. if (rk_method == 2) { diff --git a/pyproject.toml b/pyproject.toml index 3e2944f..13db257 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name='CyRK' -version = '0.8.6.dev5' +version = '0.8.6.dev6' description='Runge-Kutta ODE Integrator Implemented in Cython and Numba.' authors= [ {name = 'Joe P. Renaud', email = 'joe.p.renaud@gmail.com'} From cb71543ff75c6dae236bd83e5070b03ec8b7fb53 Mon Sep 17 00:00:00 2001 From: Jrenaud-Desk Date: Sun, 21 Jan 2024 00:55:09 -0500 Subject: [PATCH 08/12] fixing macos error --- CyRK/cy/rk_step.c | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CyRK/cy/rk_step.c b/CyRK/cy/rk_step.c index 8770587..563942b 100644 --- a/CyRK/cy/rk_step.c +++ b/CyRK/cy/rk_step.c @@ -1,7 +1,7 @@ #include // `size_t` #include // `bool` #include // `fmin`, `fmax`, `fabs` - +#include // Create a fake struct to trick C into accepting the CySolver class (which contains the diffeq method) struct CySolverStruct { char empty; @@ -10,7 +10,7 @@ struct CySolverStruct { int rk_step_cf( // Pointer to differential equation - void (*diffeq_ptr)(struct CySolverStruct CyInst), + void (*diffeq_ptr)(struct CySolverStruct*), // Pointer to the CySolver instance struct CySolverStruct* cysolver_inst, @@ -164,7 +164,7 @@ int rk_step_cf( } // Call diffeq method to update K with the new dydt // This will use the now updated values at y_ptr and t_now_ptr. It will update values at dy_ptr. - diffeq_ptr(*cysolver_inst); + diffeq_ptr(cysolver_inst); // Update K based on the new dy values. for (size_t i = 0; i < y_size; i++) { @@ -193,7 +193,7 @@ int rk_step_cf( // Find final dydt for this timestep // This will use the now final values at y_ptr and t_now_ptr. It will update values at dy_ptr. - diffeq_ptr(*cysolver_inst); + diffeq_ptr(cysolver_inst); // Check how well this step performed by calculating its error. if (rk_method == 2) { diff --git a/pyproject.toml b/pyproject.toml index 13db257..4455fb3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name='CyRK' -version = '0.8.6.dev6' +version = '0.8.6.dev7' description='Runge-Kutta ODE Integrator Implemented in Cython and Numba.' authors= [ {name = 'Joe P. Renaud', email = 'joe.p.renaud@gmail.com'} From 039184199aa898693cb347c041503b2e82f6e056 Mon Sep 17 00:00:00 2001 From: Jrenaud-Desk Date: Sun, 21 Jan 2024 12:43:28 -0500 Subject: [PATCH 09/12] tweak to github actions --- .github/workflows/push_tests_mac.yml | 1 + .github/workflows/push_tests_ubun.yml | 1 + .github/workflows/push_tests_win.yml | 1 + Benchmarks/CyRK - SciPy Comparison.ipynb | 64 +++++++++--------- Benchmarks/CyRK_CySolver.pdf | Bin 13873 -> 13873 bytes ...yRK_SciPy_Compare_predprey_v0-8-6-dev7.png | Bin 0 -> 42915 bytes Benchmarks/CyRK_cyrk_ode.pdf | Bin 13873 -> 13873 bytes Benchmarks/CyRK_numba.pdf | Bin 13873 -> 13873 bytes Benchmarks/SciPy.pdf | Bin 13874 -> 13874 bytes 9 files changed, 35 insertions(+), 32 deletions(-) create mode 100644 Benchmarks/CyRK_SciPy_Compare_predprey_v0-8-6-dev7.png diff --git a/.github/workflows/push_tests_mac.yml b/.github/workflows/push_tests_mac.yml index 776404e..d27d91b 100644 --- a/.github/workflows/push_tests_mac.yml +++ b/.github/workflows/push_tests_mac.yml @@ -21,6 +21,7 @@ jobs: - "3.9" - "3.10" - "3.11" + fail-fast: false steps: - uses: actions/checkout@v3 - uses: conda-incubator/setup-miniconda@v2 diff --git a/.github/workflows/push_tests_ubun.yml b/.github/workflows/push_tests_ubun.yml index 99c43c7..d614198 100644 --- a/.github/workflows/push_tests_ubun.yml +++ b/.github/workflows/push_tests_ubun.yml @@ -13,6 +13,7 @@ jobs: - "3.9" - "3.10" - "3.11" + fail-fast: false steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} diff --git a/.github/workflows/push_tests_win.yml b/.github/workflows/push_tests_win.yml index 82428ab..e30f94a 100644 --- a/.github/workflows/push_tests_win.yml +++ b/.github/workflows/push_tests_win.yml @@ -16,6 +16,7 @@ jobs: - "3.9" - "3.10" - "3.11" + fail-fast: false steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} diff --git a/Benchmarks/CyRK - SciPy Comparison.ipynb b/Benchmarks/CyRK - SciPy Comparison.ipynb index 8602de7..cd4b69f 100644 --- a/Benchmarks/CyRK - SciPy Comparison.ipynb +++ b/Benchmarks/CyRK - SciPy Comparison.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 10, "id": "971e366b", "metadata": {}, "outputs": [ @@ -18,7 +18,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "0.8.6.dev5\n" + "0.8.6.dev7\n" ] } ], @@ -141,9 +141,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "2024-01-20 20:26:18(+00:00:03::598872) - INFO : TidalPy initializing...\n", - "2024-01-20 20:26:18(+00:00:03::598872) - INFO : Output directory: N:\\Joe Documents\\Research\\Software\\CyRK\\Benchmarks\\TidalPy-Run_20240120-2026\n", - "2024-01-20 20:26:18(+00:00:03::599882) - INFO : TidalPy initialization complete.\n", + "2024-01-21 01:02:25(+00:00:04::563594) - INFO : TidalPy initializing...\n", + "2024-01-21 01:02:25(+00:00:04::563594) - INFO : Output directory: N:\\Joe Documents\\Research\\Software\\CyRK\\Benchmarks\\TidalPy-Run_20240121-0102\n", + "2024-01-21 01:02:25(+00:00:04::564595) - INFO : TidalPy initialization complete.\n", "SciPy Solution\n" ] }, @@ -473,7 +473,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "

" ] @@ -554,41 +554,41 @@ "text": [ "How much faster X is vs. Y\n", "End Time: 1.0e-03\n", - "\t nbrk_ode = 10.4x solve_ivp\t cyrk_ode = 17.4x solve_ivp\n", - "\t CySolver = 21.8x solve_ivp\t nbrk_ode = 0.6x cyrk_ode\n", - "\t CySolver = 2.1x nbrk_ode\t CySolver = 1.2x cyrk_ode\n", + "\t nbrk_ode = 10.4x solve_ivp\t cyrk_ode = 16.9x solve_ivp\n", + "\t CySolver = 21.3x solve_ivp\t nbrk_ode = 0.6x cyrk_ode\n", + "\t CySolver = 2.0x nbrk_ode\t CySolver = 1.3x cyrk_ode\n", "End Time: 1.0e-02\n", - "\t nbrk_ode = 10.3x solve_ivp\t cyrk_ode = 17.1x solve_ivp\n", - "\t CySolver = 21.1x solve_ivp\t nbrk_ode = 0.6x cyrk_ode\n", - "\t CySolver = 2.1x nbrk_ode\t CySolver = 1.2x cyrk_ode\n", + "\t nbrk_ode = 10.4x solve_ivp\t cyrk_ode = 16.9x solve_ivp\n", + "\t CySolver = 21.6x solve_ivp\t nbrk_ode = 0.6x cyrk_ode\n", + "\t CySolver = 2.1x nbrk_ode\t CySolver = 1.3x cyrk_ode\n", "End Time: 1.0e-01\n", - "\t nbrk_ode = 14.9x solve_ivp\t cyrk_ode = 21.2x solve_ivp\n", - "\t CySolver = 31.2x solve_ivp\t nbrk_ode = 0.7x cyrk_ode\n", + "\t nbrk_ode = 14.5x solve_ivp\t cyrk_ode = 20.0x solve_ivp\n", + "\t CySolver = 30.0x solve_ivp\t nbrk_ode = 0.7x cyrk_ode\n", "\t CySolver = 2.1x nbrk_ode\t CySolver = 1.5x cyrk_ode\n", "End Time: 1.0e+00\n", - "\t nbrk_ode = 29.6x solve_ivp\t cyrk_ode = 29.1x solve_ivp\n", - "\t CySolver = 67.6x solve_ivp\t nbrk_ode = 1.0x cyrk_ode\n", - "\t CySolver = 2.3x nbrk_ode\t CySolver = 2.3x cyrk_ode\n", + "\t nbrk_ode = 28.0x solve_ivp\t cyrk_ode = 26.5x solve_ivp\n", + "\t CySolver = 61.0x solve_ivp\t nbrk_ode = 1.1x cyrk_ode\n", + "\t CySolver = 2.2x nbrk_ode\t CySolver = 2.3x cyrk_ode\n", "End Time: 1.0e+01\n", - "\t nbrk_ode = 95.0x solve_ivp\t cyrk_ode = 37.0x solve_ivp\n", - "\t CySolver = 303.6x solve_ivp\t nbrk_ode = 2.6x cyrk_ode\n", - "\t CySolver = 3.2x nbrk_ode\t CySolver = 8.2x cyrk_ode\n", + "\t nbrk_ode = 94.4x solve_ivp\t cyrk_ode = 35.0x solve_ivp\n", + "\t CySolver = 297.8x solve_ivp\t nbrk_ode = 2.7x cyrk_ode\n", + "\t CySolver = 3.2x nbrk_ode\t CySolver = 8.5x cyrk_ode\n", "End Time: 1.0e+02\n", - "\t nbrk_ode = 120.3x solve_ivp\t cyrk_ode = 37.5x solve_ivp\n", - "\t CySolver = 442.3x solve_ivp\t nbrk_ode = 3.2x cyrk_ode\n", - "\t CySolver = 3.7x nbrk_ode\t CySolver = 11.8x cyrk_ode\n", + "\t nbrk_ode = 116.3x solve_ivp\t cyrk_ode = 37.8x solve_ivp\n", + "\t CySolver = 439.0x solve_ivp\t nbrk_ode = 3.1x cyrk_ode\n", + "\t CySolver = 3.8x nbrk_ode\t CySolver = 11.6x cyrk_ode\n", "End Time: 1.0e+03\n", - "\t nbrk_ode = 121.0x solve_ivp\t cyrk_ode = 38.0x solve_ivp\n", - "\t CySolver = 473.7x solve_ivp\t nbrk_ode = 3.2x cyrk_ode\n", - "\t CySolver = 3.9x nbrk_ode\t CySolver = 12.5x cyrk_ode\n", + "\t nbrk_ode = 119.4x solve_ivp\t cyrk_ode = 38.3x solve_ivp\n", + "\t CySolver = 470.2x solve_ivp\t nbrk_ode = 3.1x cyrk_ode\n", + "\t CySolver = 3.9x nbrk_ode\t CySolver = 12.3x cyrk_ode\n", "End Time: 1.0e+04\n", - "\t nbrk_ode = 107.1x solve_ivp\t cyrk_ode = 38.6x solve_ivp\n", - "\t CySolver = 472.1x solve_ivp\t nbrk_ode = 2.8x cyrk_ode\n", - "\t CySolver = 4.4x nbrk_ode\t CySolver = 12.2x cyrk_ode\n", + "\t nbrk_ode = 108.0x solve_ivp\t cyrk_ode = 39.7x solve_ivp\n", + "\t CySolver = 473.5x solve_ivp\t nbrk_ode = 2.7x cyrk_ode\n", + "\t CySolver = 4.4x nbrk_ode\t CySolver = 11.9x cyrk_ode\n", "End Time: 1.0e+05\n", - "\t nbrk_ode = 98.1x solve_ivp\t cyrk_ode = 35.5x solve_ivp\n", - "\t CySolver = 408.4x solve_ivp\t nbrk_ode = 2.8x cyrk_ode\n", - "\t CySolver = 4.2x nbrk_ode\t CySolver = 11.5x cyrk_ode\n" + "\t nbrk_ode = 99.4x solve_ivp\t cyrk_ode = 37.9x solve_ivp\n", + "\t CySolver = 446.6x solve_ivp\t nbrk_ode = 2.6x cyrk_ode\n", + "\t CySolver = 4.5x nbrk_ode\t CySolver = 11.8x cyrk_ode\n" ] } ], diff --git a/Benchmarks/CyRK_CySolver.pdf b/Benchmarks/CyRK_CySolver.pdf index f31ff61eefe61331de637c2584e9a10087731f93..fcce7883443449dad2eb87c9e2348ef9a30bebde 100644 GIT binary patch delta 20 bcmdm(voU8wzA?L@fuVtsvDxM_>pTp7+sp{r<1}|J?U;-_P@UJ=g1Z{pyN*&+|Nv{*VO3I8JpJX*AE|9puUJ^zLY2P!k!$q1xqI-_sm8r& z<;iCnp9oX*bv(9_Qg>u(N=7LBrj94)$XaR}`NOZPS5T|TA5F3_1d*@U`d*+@{QK>D zt7!zuR}zwYs2K7UtwuMh{_hX6-$flI-~4v_|JNULhux*);j{Pm%ve{i4$sY%NYBh% zCn3Rd>dPyoA00(6KUo+UaD=HRZ`-zQ6&Ke9hqre`-+8*b)3Em3j+WP}m)W_quE6$r z%#9lnQnqzh=Q=KK+q$)~DukJplQZP|cjxn=p?wpL3T-npr+;(^2?|o~?(W{R;~T1~ ztH*vk>aJ>UH|g6cKR>$f=H4@0k`|?k`}Z$B(OrJ&#g$F*gC{9UNlA&3iAijFEJJku zk8Zr5zkku`6LpgzXYcQ+qdnkuxGk8kXQ{jHu( zukPBW)O{~Mjm%CAjt#_H(o($A$Ae5C9P7!v6`*|Ya8bVB>^NKWJ;NNXDE_@nYHDgM zYj(1Pt`ykPR>V2j*B6X?`ux$gqV`>maq}Zr%UrWZE53aBlJV8ZFrooN2O z^iSU#-8-zSq(t*NX^*kc;^3{oJMog1dRW{8asgjkGE`JrA3ErV%pbh5la)0#Bf~EI zxz|wB+3|@9hc`EOpIhKxx@3v2j*d>o;&(ak(V(=nH1+jthQFWecF#T$?n<-0PVC+M z?1Yj^!Ztgmlc!F_HB5|;yY<(zQkB;>n~l!To{D?4r}5_Q;E#`7b26f zbnHTh?CH~|cLgrUb@@#koE(0~Y~Pr?x!|CZV|<%=h=IaG zRg&PU?(VisO|Ga=(9+Us%CoFsYmAGJXP~^tdP9^09391&n3xQrEOl}JyHB1xnQvWv zf$dw|QQSvZRMdVWBd)5ds@7j0K7Cr7V{}jX=+X7~rd4a!MC@>SUs+S5Vu6RVpycM3 z-%?;xz*A6AFw+;U(E95(F6{XG+|~1c{wS#ol=IiM2YT>_ob0X9P`GR&aVIj8rNraw z<^5A1A3E$)QDNVtZBYN{(W6bm!Yfy<^hwTMtr)JNd?;Bib&bpkk$&zsRKUb*naP=L|L9R@2bZw@Fy(n_~**Aj&tKUBDw(q z@*g@nhUW(p*fSk3dvwug-`w?8Biph?c%-T1+c#*pBXHI;rB@e~MIxsL0Cptr?NXM{Zy>Qxe zcc5kRCawt4ojb4n`tfm7;~w{3`jF7j9Ord=_T1R%(qSaKQ@?A4^CgWZ9PWy)pv|D@i&J`Lg6tL^c9 z&!fN1+mk17^*>KQ><~5d<;#8*6|Ch3#a~A(4%?&nXa-rbfrEH zXwvRe7a}iR+A*Tv^Q!kv(w+ey0l!fiR#yMfXAI+|*jG&`GKR&m`0VoX@(szESYnT# zU3;09ElW+^7kc@@gYEva1MycA6E)3>okfdo?cTjxMP>5ErduNYXU?2qXVrah>~$-@ z*)DMzk0G6m!n=1xLa43l*Pp*{S+QkhIrEjQEKyDlj;4#8;{Be}KR&8SNlA@=&_8hC zKtn@Ann1vel8dF>-o2d3ANp&;uLx=k@_ojy$?1h%v`ZC*W5a~kts8jue)8+vtdx|X zF5hpPLwt30bvf3q)#BT8di|zNn|OCPa;Wa#uXp0ama^%tGfbWlTWGIuwWcK>il?oL zUCulGEmR;N<<%>#!u)(e>Y;rj|HX)ibp<98dHT&}l~28X-pM?4OKi&N(_?p3E*t{3 z=)m#*@P=C9`}gnTZpWSr%BsQdsuZ6bx+PB^ zBqt{q7FOTYW#M9pk{}`^be4sM#baUnt8jf!jZ((*QbrExdZMTs!KlD#C?mXl`&8Po zZ!augv((AS$=lbr_to|7kG*~->vf{i3Zi8i-#_vUtJa)(NC3tD+4JWN!m;Xhb7qfD z)YgQvHusT@$9AHtbQzjioCC`Hc*!R1n~Fz{tgVX{SV{3H1juc%ERP%=b&LCRyzM@ptjAE$ zkB^VmDJWE&&#{Y)i+gihhn(C)VkOHXvqKn{E?ue_K_ej{A+mRG5}pSN9IiLD#XXzr zEVa1#D36rQdAYoqom;8;&dww>jjx}coMLL^x^{Jod5H=d&9&|{33+kT$ID+CTl#0j z{QUMUr+MdA`!_dJ&!4BySkOw8*7&iD(4WPdJRA5#hW+UKMJm0 zyT+?Phc4mQP+y-?cWI52^of`8l9@m%!|(5{VP!p-ENAM{xqQveRjhHdyAR^p;}ZWp zd!~uf4r~KozOiPM}p_sgMZOmq(XqpnFY(*3lZk-Db-oZr6OqcsSTHr0fgyDOfGfNS1@rYxM$p^7I znLjHQlhJ&Rca{1uO_l%oW!CWWrT*i4dyY2=iiwD%L~u*CJQoPm+I!|#y3fQH-NT1@ zJInpego3&X?U+&DMCm>8q&awbHBrZ<{eOE5cRrONHG6z~{P>^WQ%r*j{=cQkH}-Ef zEj%A~G$&|o^6Ng*Yo0K**VLTHE*=`|doF$Iix&B-PfAK!u<0BcllP*TrZ=64;M&~Z z_iKFMK(=AdwT6Nm-P=p|1}+@=(T+BjrTp(v=D*|BnhzX8G|VZ+`RSV<@O&6`1Sr}<`)*w65P-nZW5BuFc$8VuO`Af6g@up*`u;&v$wNnH6>F?sMft*SC*R2- zRy%w9w^QHR94doo#AMFxl#)u_aNwGbxA!i5L0?mosq?XWaKQYS8k$nM-cvM#O~PrY zOn3RZvG3Sen;*OPc`QscpadL9GZx^n&DAt3^WA|`Vddl$(cgd6+$&V7&cbPai&dRT z-1{e|>`SNKn~hFR)}Uv;dM02Sxh%*Y*xitqwP)aE{I1jAd2r^UaR!D<4n#`*>gf9q zY9E#VACSGt6Ti71j~<^IjH+7tQYAe`PhX#vgX28fpRwjGuFZ$(KPbO1T(kS+`qI); z`Vrk19(yek-Q3-EhitXAS0wK}b75kzv2X5YMQBn|Qj65c$cUh@v}3EfP#_M!H=YXC zCFb&FT57Ab^!dCz$z(a7bMy0lN1mQuPOakP%#fB35fu@+`>M^_$|{IqCBMP%pHjAl z*WbhopX#moI;FXD=gzCi$@d>#Vq$GZ9nCs5_+}CvvgNMsZ4o)So7nSr0~Z$#|1|C~ z5*yh4t3Gxe2PdatR^Q!kV=e1BPh8*bHF9M5)06F41nwZGOjr$!WcMGSXI*9b|aOpq?*G`tp zD&9*+M+d;cIbv+cLOH$9%_`Pv>&ws(b7-vTD00#_G2ubgXrPnvbXb_5RZ%g>v)CIl zZy7KfVo~mwWl)js&-d~Mz!Z+Eh6DQve5};iX6%XUJiNR%y*1(OMNaYiADOLNw{GnF zhwZaJDyz&c-d2mQ8-AC=3b1+e=2~gjuC-LtQ!m$>^8UO)CY3lV?hEriK*0yHIdy3@HmC`&)H7nQI6#f!5~pPu;|oLxIcs%RMF zy8V$lvTZociYjg%9uoQj%m95>!>w7^H8p5-1GBZRG-|4<)*lM(s373svtj*@zHK^` z%)-vjKARBlSxUWAV9w@esDJsg8k=&fUBlIr=90GWF8$L_%H*>~|J*|%(-+g_oSeC51pF3k&`! zJfN;)c@|}a9HA<|c>Vg4{O_T4zi|Liv<^Eg9YvW<$9?MElJ~!>7R`@Vtcog#2B+Y| z2NXoW60Te1lOz4nyme0l{>WxzX1>ieeK7QAx;yh{`CJr8%vYRfgOY`W1fCLn!zCW6 zbEq#$AdGr@uEp)Ju(r15U}H=3SOEXKv9K`rlP$2~Kq8HV7TB%F;)4II7yb!(borrE zThvb1E-e)m|KF2j&+1oSSpN3}foQZ~%?E5PX1Ef7!+wJ#144>qqz!I)*+@(M1|tX$ z(@ZMpuhCd}`OTinaQ4hLk=NI^hlZ&Sd@BnJ3;6wY6SgoZt%M};?e)dxMyX<)kxbcj z=2vc20l@s#t5;P*SMcf8bBC*V{OH(G;x}6;_p>GA0LPj&2X;8N#tdG+eqC2jPcQsY zkg71N#(Fm1y}qQ&fCgriYISb@EUJHJ6>BqiltENA9&w)AA8dN2AJ?vmIh8We6&AaE zY?uJu4j-y$>&rTjNFRiAs`vPknH)vG@N}=`qZ8&Kwtvu1_U<*$dX4+kvwwDO$-sgs zp;PGHNwS86f!B7qx7hWXRYn$Ub7)GT0q(kd`Le;aLpOFV$0oss0_LDEIsM}zZj=ka zmuYHYrf+4)PXKDw&Jxc8mybKaNPXBMY8hErR5G=btZZy(u`NA@TbH55D{5;;&Ch_O zt=)Z6B};+8DS+jet5@l>3@)M)es3?JL+|zecJGm9S(inbuh6=6baT@`jq4Yu+AL}6 zPdwwouYp24b{H<0OK^!FIn-?UHcrZd%0DxGV*UE{Rvix=#`^$Dqi`&&vDGr7lpHQv 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 Date: Sun, 21 Jan 2024 12:53:46 -0500 Subject: [PATCH 10/12] test --- Tests/C_Cython_Tests/test_c_cython.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Tests/C_Cython_Tests/test_c_cython.py b/Tests/C_Cython_Tests/test_c_cython.py index 21e12a8..8d48acc 100644 --- a/Tests/C_Cython_Tests/test_c_cython.py +++ b/Tests/C_Cython_Tests/test_c_cython.py @@ -550,11 +550,11 @@ def correct_answer(t, c1_, c2_): real_answer = correct_answer(CySolverAccuracyTestInst.t, c1, c2) if rk_method == 0: - assert np.allclose(CySolverAccuracyTestInst.y, real_answer, rtol=1.0e-3, atol=1.0e-6) + assert np.allclose(CySolverAccuracyTestInst.y, real_answer, rtol=1.0e-2, atol=1.0e-3) elif rk_method == 1: - assert np.allclose(CySolverAccuracyTestInst.y, real_answer, rtol=1.0e-4, atol=1.0e-7) + assert np.allclose(CySolverAccuracyTestInst.y, real_answer, rtol=1.0e-2, atol=1.0e-3) else: - assert np.allclose(CySolverAccuracyTestInst.y, real_answer, rtol=1.0e-5, atol=1.0e-8) + assert np.allclose(CySolverAccuracyTestInst.y, real_answer, rtol=1.0e-2, atol=1.0e-3) # Check the accuracy of the results # import matplotlib.pyplot as plt From 9ec267e08d36854bf7959ef552296e67c5cd1dad Mon Sep 17 00:00:00 2001 From: Jrenaud-Desk Date: Sun, 21 Jan 2024 14:34:45 -0500 Subject: [PATCH 11/12] testing --- .github/workflows/push_tests_mac.yml | 2 +- Tests/C_Cython_Tests/test_c_cython.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/push_tests_mac.yml b/.github/workflows/push_tests_mac.yml index d27d91b..9504f8c 100644 --- a/.github/workflows/push_tests_mac.yml +++ b/.github/workflows/push_tests_mac.yml @@ -13,7 +13,7 @@ jobs: shell: bash -el {0} name: Test CyRK on MacOS - runs-on: macos-latest + runs-on: macos-12.7.2 strategy: matrix: python-version: diff --git a/Tests/C_Cython_Tests/test_c_cython.py b/Tests/C_Cython_Tests/test_c_cython.py index 8d48acc..21e12a8 100644 --- a/Tests/C_Cython_Tests/test_c_cython.py +++ b/Tests/C_Cython_Tests/test_c_cython.py @@ -550,11 +550,11 @@ def correct_answer(t, c1_, c2_): real_answer = correct_answer(CySolverAccuracyTestInst.t, c1, c2) if rk_method == 0: - assert np.allclose(CySolverAccuracyTestInst.y, real_answer, rtol=1.0e-2, atol=1.0e-3) + assert np.allclose(CySolverAccuracyTestInst.y, real_answer, rtol=1.0e-3, atol=1.0e-6) elif rk_method == 1: - assert np.allclose(CySolverAccuracyTestInst.y, real_answer, rtol=1.0e-2, atol=1.0e-3) + assert np.allclose(CySolverAccuracyTestInst.y, real_answer, rtol=1.0e-4, atol=1.0e-7) else: - assert np.allclose(CySolverAccuracyTestInst.y, real_answer, rtol=1.0e-2, atol=1.0e-3) + assert np.allclose(CySolverAccuracyTestInst.y, real_answer, rtol=1.0e-5, atol=1.0e-8) # Check the accuracy of the results # import matplotlib.pyplot as plt From c4035dd8abbf9174633a18274cf5f26e69020318 Mon Sep 17 00:00:00 2001 From: Jrenaud-Desk Date: Sun, 21 Jan 2024 14:37:29 -0500 Subject: [PATCH 12/12] testing 2 --- .github/workflows/push_tests_mac.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push_tests_mac.yml b/.github/workflows/push_tests_mac.yml index 9504f8c..58d9ac8 100644 --- a/.github/workflows/push_tests_mac.yml +++ b/.github/workflows/push_tests_mac.yml @@ -13,7 +13,7 @@ jobs: shell: bash -el {0} name: Test CyRK on MacOS - runs-on: macos-12.7.2 + runs-on: macos-11 strategy: matrix: python-version: