odrpack 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. odrpack-0.1.0/.github/workflows/build-wheels.yml +118 -0
  2. odrpack-0.1.0/.github/workflows/test-linux.yml +65 -0
  3. odrpack-0.1.0/.gitignore +171 -0
  4. odrpack-0.1.0/.gitmodules +6 -0
  5. odrpack-0.1.0/.vscode/c_cpp_properties.json +21 -0
  6. odrpack-0.1.0/.vscode/settings.json +77 -0
  7. odrpack-0.1.0/LICENSE +21 -0
  8. odrpack-0.1.0/PKG-INFO +108 -0
  9. odrpack-0.1.0/README.md +59 -0
  10. odrpack-0.1.0/cibw-scripts/cibw_before_build_macos.sh +73 -0
  11. odrpack-0.1.0/cibw-scripts/cibw_before_build_windows.sh +5 -0
  12. odrpack-0.1.0/cibw-scripts/cibw_repair_wheel_command_windows.sh +10 -0
  13. odrpack-0.1.0/codecov.yml +15 -0
  14. odrpack-0.1.0/extern/blas.f +1119 -0
  15. odrpack-0.1.0/extern/odrpack95/.github/workflows/CI.yml +92 -0
  16. odrpack-0.1.0/extern/odrpack95/.github/workflows/pages.yml +58 -0
  17. odrpack-0.1.0/extern/odrpack95/.gitignore +12 -0
  18. odrpack-0.1.0/extern/odrpack95/LICENSE +21 -0
  19. odrpack-0.1.0/extern/odrpack95/README.md +112 -0
  20. odrpack-0.1.0/extern/odrpack95/api-doc-ford.md +39 -0
  21. odrpack-0.1.0/extern/odrpack95/c/README.md +1 -0
  22. odrpack-0.1.0/extern/odrpack95/c/example/data3.dat +24 -0
  23. odrpack-0.1.0/extern/odrpack95/c/example/example3.c +162 -0
  24. odrpack-0.1.0/extern/odrpack95/c/example/example5.c +187 -0
  25. odrpack-0.1.0/extern/odrpack95/c/example/meson.build +9 -0
  26. odrpack-0.1.0/extern/odrpack95/c/include/odrpack/odrpack.h +397 -0
  27. odrpack-0.1.0/extern/odrpack95/c/meson.build +14 -0
  28. odrpack-0.1.0/extern/odrpack95/c/odrpack_capi.f90 +604 -0
  29. odrpack-0.1.0/extern/odrpack95/codecov.yml +18 -0
  30. odrpack-0.1.0/extern/odrpack95/example/analysis_example5.txt +384 -0
  31. odrpack-0.1.0/extern/odrpack95/example/data1.dat +14 -0
  32. odrpack-0.1.0/extern/odrpack95/example/data2.dat +22 -0
  33. odrpack-0.1.0/extern/odrpack95/example/data3.dat +25 -0
  34. odrpack-0.1.0/extern/odrpack95/example/example1.f90 +113 -0
  35. odrpack-0.1.0/extern/odrpack95/example/example2.f90 +87 -0
  36. odrpack-0.1.0/extern/odrpack95/example/example3.f90 +147 -0
  37. odrpack-0.1.0/extern/odrpack95/example/example4.f90 +141 -0
  38. odrpack-0.1.0/extern/odrpack95/example/example5.f90 +80 -0
  39. odrpack-0.1.0/extern/odrpack95/example/meson.build +9 -0
  40. odrpack-0.1.0/extern/odrpack95/example/report1.dat +127 -0
  41. odrpack-0.1.0/extern/odrpack95/example/report2.dat +87 -0
  42. odrpack-0.1.0/extern/odrpack95/example/report3.dat +121 -0
  43. odrpack-0.1.0/extern/odrpack95/example/report4.dat +115 -0
  44. odrpack-0.1.0/extern/odrpack95/fpm.toml +21 -0
  45. odrpack-0.1.0/extern/odrpack95/meson.build +41 -0
  46. odrpack-0.1.0/extern/odrpack95/original/Doc/changes +131 -0
  47. odrpack-0.1.0/extern/odrpack95/original/Doc/guide.pdf +0 -0
  48. odrpack-0.1.0/extern/odrpack95/original/Doc/guide.ps +12897 -0
  49. odrpack-0.1.0/extern/odrpack95/original/Doc/guide.tex +4471 -0
  50. odrpack-0.1.0/extern/odrpack95/original/Doc/makefile +77 -0
  51. odrpack-0.1.0/extern/odrpack95/original/Doc/readme +180 -0
  52. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/data1.dat +14 -0
  53. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/data2.dat +22 -0
  54. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/data3.dat +25 -0
  55. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/drive1.f +236 -0
  56. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/drive1.out +127 -0
  57. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/drive2.f +170 -0
  58. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/drive2.out +87 -0
  59. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/drive3.f +301 -0
  60. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/drive3.out +121 -0
  61. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/drive4.f +151 -0
  62. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/drive4.out +115 -0
  63. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/real_precision.f +5 -0
  64. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/restart_example.f +172 -0
  65. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/simple_example.f90 +66 -0
  66. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/simple_example.out +84 -0
  67. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/test.f +2742 -0
  68. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/test.out +3762 -0
  69. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/tester.f +241 -0
  70. odrpack-0.1.0/extern/odrpack95/original/F95/Drivers/tester.out +96 -0
  71. odrpack-0.1.0/extern/odrpack95/original/F95/Src/lpkbls.f +2355 -0
  72. odrpack-0.1.0/extern/odrpack95/original/F95/Src/odr.f +12136 -0
  73. odrpack-0.1.0/extern/odrpack95/original/F95/Src/real_precision.f +5 -0
  74. odrpack-0.1.0/extern/odrpack95/src/blas.f_ +1119 -0
  75. odrpack-0.1.0/extern/odrpack95/src/blas_interfaces.f90 +201 -0
  76. odrpack-0.1.0/extern/odrpack95/src/linpack.f +1224 -0
  77. odrpack-0.1.0/extern/odrpack95/src/odrpack.f90 +2532 -0
  78. odrpack-0.1.0/extern/odrpack95/src/odrpack_core.f90 +6759 -0
  79. odrpack-0.1.0/extern/odrpack95/src/odrpack_kinds.F90 +34 -0
  80. odrpack-0.1.0/extern/odrpack95/src/odrpack_reports.f90 +2919 -0
  81. odrpack-0.1.0/extern/odrpack95/test/meson.build +16 -0
  82. odrpack-0.1.0/extern/odrpack95/test/test_error_detection.f90 +250 -0
  83. odrpack-0.1.0/extern/odrpack95/test/test_solution.f90 +2646 -0
  84. odrpack-0.1.0/extern/pybind11/.appveyor.yml +35 -0
  85. odrpack-0.1.0/extern/pybind11/.clang-format +38 -0
  86. odrpack-0.1.0/extern/pybind11/.clang-tidy +79 -0
  87. odrpack-0.1.0/extern/pybind11/.cmake-format.yaml +73 -0
  88. odrpack-0.1.0/extern/pybind11/.codespell-ignore-lines +24 -0
  89. odrpack-0.1.0/extern/pybind11/.gitattributes +1 -0
  90. odrpack-0.1.0/extern/pybind11/.github/CODEOWNERS +9 -0
  91. odrpack-0.1.0/extern/pybind11/.github/CONTRIBUTING.md +388 -0
  92. odrpack-0.1.0/extern/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +61 -0
  93. odrpack-0.1.0/extern/pybind11/.github/ISSUE_TEMPLATE/config.yml +8 -0
  94. odrpack-0.1.0/extern/pybind11/.github/dependabot.yml +15 -0
  95. odrpack-0.1.0/extern/pybind11/.github/labeler.yml +13 -0
  96. odrpack-0.1.0/extern/pybind11/.github/labeler_merged.yml +8 -0
  97. odrpack-0.1.0/extern/pybind11/.github/matchers/pylint.json +32 -0
  98. odrpack-0.1.0/extern/pybind11/.github/pull_request_template.md +19 -0
  99. odrpack-0.1.0/extern/pybind11/.github/workflows/ci.yml +1248 -0
  100. odrpack-0.1.0/extern/pybind11/.github/workflows/configure.yml +92 -0
  101. odrpack-0.1.0/extern/pybind11/.github/workflows/emscripten.yaml +30 -0
  102. odrpack-0.1.0/extern/pybind11/.github/workflows/format.yml +60 -0
  103. odrpack-0.1.0/extern/pybind11/.github/workflows/labeler.yml +25 -0
  104. odrpack-0.1.0/extern/pybind11/.github/workflows/pip.yml +120 -0
  105. odrpack-0.1.0/extern/pybind11/.github/workflows/upstream.yml +116 -0
  106. odrpack-0.1.0/extern/pybind11/.gitignore +46 -0
  107. odrpack-0.1.0/extern/pybind11/.pre-commit-config.yaml +156 -0
  108. odrpack-0.1.0/extern/pybind11/.readthedocs.yml +20 -0
  109. odrpack-0.1.0/extern/pybind11/CMakeLists.txt +345 -0
  110. odrpack-0.1.0/extern/pybind11/LICENSE +29 -0
  111. odrpack-0.1.0/extern/pybind11/MANIFEST.in +6 -0
  112. odrpack-0.1.0/extern/pybind11/README.rst +181 -0
  113. odrpack-0.1.0/extern/pybind11/SECURITY.md +13 -0
  114. odrpack-0.1.0/extern/pybind11/docs/Doxyfile +21 -0
  115. odrpack-0.1.0/extern/pybind11/docs/Makefile +192 -0
  116. odrpack-0.1.0/extern/pybind11/docs/_static/css/custom.css +3 -0
  117. odrpack-0.1.0/extern/pybind11/docs/advanced/cast/chrono.rst +81 -0
  118. odrpack-0.1.0/extern/pybind11/docs/advanced/cast/custom.rst +137 -0
  119. odrpack-0.1.0/extern/pybind11/docs/advanced/cast/eigen.rst +310 -0
  120. odrpack-0.1.0/extern/pybind11/docs/advanced/cast/functional.rst +109 -0
  121. odrpack-0.1.0/extern/pybind11/docs/advanced/cast/index.rst +43 -0
  122. odrpack-0.1.0/extern/pybind11/docs/advanced/cast/overview.rst +170 -0
  123. odrpack-0.1.0/extern/pybind11/docs/advanced/cast/stl.rst +249 -0
  124. odrpack-0.1.0/extern/pybind11/docs/advanced/cast/strings.rst +296 -0
  125. odrpack-0.1.0/extern/pybind11/docs/advanced/classes.rst +1334 -0
  126. odrpack-0.1.0/extern/pybind11/docs/advanced/deadlock.md +391 -0
  127. odrpack-0.1.0/extern/pybind11/docs/advanced/embedding.rst +262 -0
  128. odrpack-0.1.0/extern/pybind11/docs/advanced/exceptions.rst +400 -0
  129. odrpack-0.1.0/extern/pybind11/docs/advanced/functions.rst +614 -0
  130. odrpack-0.1.0/extern/pybind11/docs/advanced/misc.rst +436 -0
  131. odrpack-0.1.0/extern/pybind11/docs/advanced/pycpp/index.rst +13 -0
  132. odrpack-0.1.0/extern/pybind11/docs/advanced/pycpp/numpy.rst +453 -0
  133. odrpack-0.1.0/extern/pybind11/docs/advanced/pycpp/object.rst +286 -0
  134. odrpack-0.1.0/extern/pybind11/docs/advanced/pycpp/utilities.rst +155 -0
  135. odrpack-0.1.0/extern/pybind11/docs/advanced/smart_ptrs.rst +174 -0
  136. odrpack-0.1.0/extern/pybind11/docs/basics.rst +314 -0
  137. odrpack-0.1.0/extern/pybind11/docs/benchmark.py +89 -0
  138. odrpack-0.1.0/extern/pybind11/docs/benchmark.rst +95 -0
  139. odrpack-0.1.0/extern/pybind11/docs/changelog.rst +3285 -0
  140. odrpack-0.1.0/extern/pybind11/docs/classes.rst +555 -0
  141. odrpack-0.1.0/extern/pybind11/docs/cmake/index.rst +8 -0
  142. odrpack-0.1.0/extern/pybind11/docs/compiling.rst +728 -0
  143. odrpack-0.1.0/extern/pybind11/docs/conf.py +369 -0
  144. odrpack-0.1.0/extern/pybind11/docs/faq.rst +352 -0
  145. odrpack-0.1.0/extern/pybind11/docs/index.rst +48 -0
  146. odrpack-0.1.0/extern/pybind11/docs/installing.rst +105 -0
  147. odrpack-0.1.0/extern/pybind11/docs/limitations.rst +68 -0
  148. odrpack-0.1.0/extern/pybind11/docs/pybind11-logo.png +0 -0
  149. odrpack-0.1.0/extern/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
  150. odrpack-0.1.0/extern/pybind11/docs/pybind11_vs_boost_python1.svg +427 -0
  151. odrpack-0.1.0/extern/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
  152. odrpack-0.1.0/extern/pybind11/docs/pybind11_vs_boost_python2.svg +427 -0
  153. odrpack-0.1.0/extern/pybind11/docs/reference.rst +130 -0
  154. odrpack-0.1.0/extern/pybind11/docs/release.rst +143 -0
  155. odrpack-0.1.0/extern/pybind11/docs/requirements.in +6 -0
  156. odrpack-0.1.0/extern/pybind11/docs/requirements.txt +275 -0
  157. odrpack-0.1.0/extern/pybind11/docs/upgrade.rst +595 -0
  158. odrpack-0.1.0/extern/pybind11/include/pybind11/attr.h +690 -0
  159. odrpack-0.1.0/extern/pybind11/include/pybind11/buffer_info.h +208 -0
  160. odrpack-0.1.0/extern/pybind11/include/pybind11/cast.h +1934 -0
  161. odrpack-0.1.0/extern/pybind11/include/pybind11/chrono.h +225 -0
  162. odrpack-0.1.0/extern/pybind11/include/pybind11/common.h +2 -0
  163. odrpack-0.1.0/extern/pybind11/include/pybind11/complex.h +74 -0
  164. odrpack-0.1.0/extern/pybind11/include/pybind11/conduit/README.txt +15 -0
  165. odrpack-0.1.0/extern/pybind11/include/pybind11/conduit/pybind11_conduit_v1.h +111 -0
  166. odrpack-0.1.0/extern/pybind11/include/pybind11/conduit/pybind11_platform_abi_id.h +87 -0
  167. odrpack-0.1.0/extern/pybind11/include/pybind11/conduit/wrap_include_python_h.h +72 -0
  168. odrpack-0.1.0/extern/pybind11/include/pybind11/detail/class.h +800 -0
  169. odrpack-0.1.0/extern/pybind11/include/pybind11/detail/common.h +1260 -0
  170. odrpack-0.1.0/extern/pybind11/include/pybind11/detail/cpp_conduit.h +77 -0
  171. odrpack-0.1.0/extern/pybind11/include/pybind11/detail/descr.h +171 -0
  172. odrpack-0.1.0/extern/pybind11/include/pybind11/detail/exception_translation.h +71 -0
  173. odrpack-0.1.0/extern/pybind11/include/pybind11/detail/init.h +436 -0
  174. odrpack-0.1.0/extern/pybind11/include/pybind11/detail/internals.h +725 -0
  175. odrpack-0.1.0/extern/pybind11/include/pybind11/detail/type_caster_base.h +1188 -0
  176. odrpack-0.1.0/extern/pybind11/include/pybind11/detail/typeid.h +65 -0
  177. odrpack-0.1.0/extern/pybind11/include/pybind11/detail/value_and_holder.h +77 -0
  178. odrpack-0.1.0/extern/pybind11/include/pybind11/eigen/common.h +9 -0
  179. odrpack-0.1.0/extern/pybind11/include/pybind11/eigen/matrix.h +715 -0
  180. odrpack-0.1.0/extern/pybind11/include/pybind11/eigen/tensor.h +515 -0
  181. odrpack-0.1.0/extern/pybind11/include/pybind11/eigen.h +12 -0
  182. odrpack-0.1.0/extern/pybind11/include/pybind11/embed.h +303 -0
  183. odrpack-0.1.0/extern/pybind11/include/pybind11/eval.h +156 -0
  184. odrpack-0.1.0/extern/pybind11/include/pybind11/functional.h +149 -0
  185. odrpack-0.1.0/extern/pybind11/include/pybind11/gil.h +215 -0
  186. odrpack-0.1.0/extern/pybind11/include/pybind11/gil_safe_call_once.h +102 -0
  187. odrpack-0.1.0/extern/pybind11/include/pybind11/iostream.h +265 -0
  188. odrpack-0.1.0/extern/pybind11/include/pybind11/numpy.h +2232 -0
  189. odrpack-0.1.0/extern/pybind11/include/pybind11/operators.h +202 -0
  190. odrpack-0.1.0/extern/pybind11/include/pybind11/options.h +92 -0
  191. odrpack-0.1.0/extern/pybind11/include/pybind11/pybind11.h +3027 -0
  192. odrpack-0.1.0/extern/pybind11/include/pybind11/pytypes.h +2655 -0
  193. odrpack-0.1.0/extern/pybind11/include/pybind11/stl/filesystem.h +126 -0
  194. odrpack-0.1.0/extern/pybind11/include/pybind11/stl.h +648 -0
  195. odrpack-0.1.0/extern/pybind11/include/pybind11/stl_bind.h +858 -0
  196. odrpack-0.1.0/extern/pybind11/include/pybind11/type_caster_pyobject_ptr.h +61 -0
  197. odrpack-0.1.0/extern/pybind11/include/pybind11/typing.h +315 -0
  198. odrpack-0.1.0/extern/pybind11/include/pybind11/warnings.h +75 -0
  199. odrpack-0.1.0/extern/pybind11/noxfile.py +107 -0
  200. odrpack-0.1.0/extern/pybind11/pybind11/__init__.py +19 -0
  201. odrpack-0.1.0/extern/pybind11/pybind11/__main__.py +86 -0
  202. odrpack-0.1.0/extern/pybind11/pybind11/_version.py +12 -0
  203. odrpack-0.1.0/extern/pybind11/pybind11/commands.py +39 -0
  204. odrpack-0.1.0/extern/pybind11/pybind11/py.typed +0 -0
  205. odrpack-0.1.0/extern/pybind11/pybind11/setup_helpers.py +500 -0
  206. odrpack-0.1.0/extern/pybind11/pyproject.toml +86 -0
  207. odrpack-0.1.0/extern/pybind11/setup.cfg +42 -0
  208. odrpack-0.1.0/extern/pybind11/setup.py +149 -0
  209. odrpack-0.1.0/extern/pybind11/tests/CMakeLists.txt +596 -0
  210. odrpack-0.1.0/extern/pybind11/tests/conftest.py +225 -0
  211. odrpack-0.1.0/extern/pybind11/tests/constructor_stats.h +330 -0
  212. odrpack-0.1.0/extern/pybind11/tests/cross_module_gil_utils.cpp +111 -0
  213. odrpack-0.1.0/extern/pybind11/tests/cross_module_interleaved_error_already_set.cpp +54 -0
  214. odrpack-0.1.0/extern/pybind11/tests/custom_exceptions.py +10 -0
  215. odrpack-0.1.0/extern/pybind11/tests/eigen_tensor_avoid_stl_array.cpp +16 -0
  216. odrpack-0.1.0/extern/pybind11/tests/env.py +32 -0
  217. odrpack-0.1.0/extern/pybind11/tests/exo_planet_c_api.cpp +76 -0
  218. odrpack-0.1.0/extern/pybind11/tests/exo_planet_pybind11.cpp +19 -0
  219. odrpack-0.1.0/extern/pybind11/tests/extra_python_package/pytest.ini +0 -0
  220. odrpack-0.1.0/extern/pybind11/tests/extra_python_package/test_files.py +307 -0
  221. odrpack-0.1.0/extern/pybind11/tests/extra_setuptools/pytest.ini +0 -0
  222. odrpack-0.1.0/extern/pybind11/tests/extra_setuptools/test_setuphelper.py +153 -0
  223. odrpack-0.1.0/extern/pybind11/tests/home_planet_very_lonely_traveler.cpp +13 -0
  224. odrpack-0.1.0/extern/pybind11/tests/local_bindings.h +92 -0
  225. odrpack-0.1.0/extern/pybind11/tests/object.h +205 -0
  226. odrpack-0.1.0/extern/pybind11/tests/pybind11_cross_module_tests.cpp +149 -0
  227. odrpack-0.1.0/extern/pybind11/tests/pybind11_tests.cpp +136 -0
  228. odrpack-0.1.0/extern/pybind11/tests/pybind11_tests.h +119 -0
  229. odrpack-0.1.0/extern/pybind11/tests/pyproject.toml +17 -0
  230. odrpack-0.1.0/extern/pybind11/tests/pytest.ini +23 -0
  231. odrpack-0.1.0/extern/pybind11/tests/requirements.txt +13 -0
  232. odrpack-0.1.0/extern/pybind11/tests/test_async.cpp +25 -0
  233. odrpack-0.1.0/extern/pybind11/tests/test_async.py +31 -0
  234. odrpack-0.1.0/extern/pybind11/tests/test_buffers.cpp +442 -0
  235. odrpack-0.1.0/extern/pybind11/tests/test_buffers.py +401 -0
  236. odrpack-0.1.0/extern/pybind11/tests/test_builtin_casters.cpp +387 -0
  237. odrpack-0.1.0/extern/pybind11/tests/test_builtin_casters.py +532 -0
  238. odrpack-0.1.0/extern/pybind11/tests/test_call_policies.cpp +113 -0
  239. odrpack-0.1.0/extern/pybind11/tests/test_call_policies.py +256 -0
  240. odrpack-0.1.0/extern/pybind11/tests/test_callbacks.cpp +280 -0
  241. odrpack-0.1.0/extern/pybind11/tests/test_callbacks.py +232 -0
  242. odrpack-0.1.0/extern/pybind11/tests/test_chrono.cpp +81 -0
  243. odrpack-0.1.0/extern/pybind11/tests/test_chrono.py +207 -0
  244. odrpack-0.1.0/extern/pybind11/tests/test_class.cpp +672 -0
  245. odrpack-0.1.0/extern/pybind11/tests/test_class.py +539 -0
  246. odrpack-0.1.0/extern/pybind11/tests/test_cmake_build/CMakeLists.txt +86 -0
  247. odrpack-0.1.0/extern/pybind11/tests/test_cmake_build/embed.cpp +23 -0
  248. odrpack-0.1.0/extern/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +19 -0
  249. odrpack-0.1.0/extern/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +29 -0
  250. odrpack-0.1.0/extern/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +37 -0
  251. odrpack-0.1.0/extern/pybind11/tests/test_cmake_build/main.cpp +6 -0
  252. odrpack-0.1.0/extern/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +38 -0
  253. odrpack-0.1.0/extern/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +32 -0
  254. odrpack-0.1.0/extern/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +38 -0
  255. odrpack-0.1.0/extern/pybind11/tests/test_cmake_build/test.py +10 -0
  256. odrpack-0.1.0/extern/pybind11/tests/test_const_name.cpp +55 -0
  257. odrpack-0.1.0/extern/pybind11/tests/test_const_name.py +31 -0
  258. odrpack-0.1.0/extern/pybind11/tests/test_constants_and_functions.cpp +158 -0
  259. odrpack-0.1.0/extern/pybind11/tests/test_constants_and_functions.py +58 -0
  260. odrpack-0.1.0/extern/pybind11/tests/test_copy_move.cpp +544 -0
  261. odrpack-0.1.0/extern/pybind11/tests/test_copy_move.py +144 -0
  262. odrpack-0.1.0/extern/pybind11/tests/test_cpp_conduit.cpp +22 -0
  263. odrpack-0.1.0/extern/pybind11/tests/test_cpp_conduit.py +166 -0
  264. odrpack-0.1.0/extern/pybind11/tests/test_cpp_conduit_traveler_bindings.h +47 -0
  265. odrpack-0.1.0/extern/pybind11/tests/test_cpp_conduit_traveler_types.h +25 -0
  266. odrpack-0.1.0/extern/pybind11/tests/test_custom_type_casters.cpp +217 -0
  267. odrpack-0.1.0/extern/pybind11/tests/test_custom_type_casters.py +126 -0
  268. odrpack-0.1.0/extern/pybind11/tests/test_custom_type_setup.cpp +41 -0
  269. odrpack-0.1.0/extern/pybind11/tests/test_custom_type_setup.py +50 -0
  270. odrpack-0.1.0/extern/pybind11/tests/test_docs_advanced_cast_custom.cpp +70 -0
  271. odrpack-0.1.0/extern/pybind11/tests/test_docs_advanced_cast_custom.py +37 -0
  272. odrpack-0.1.0/extern/pybind11/tests/test_docstring_options.cpp +129 -0
  273. odrpack-0.1.0/extern/pybind11/tests/test_docstring_options.py +66 -0
  274. odrpack-0.1.0/extern/pybind11/tests/test_eigen_matrix.cpp +443 -0
  275. odrpack-0.1.0/extern/pybind11/tests/test_eigen_matrix.py +819 -0
  276. odrpack-0.1.0/extern/pybind11/tests/test_eigen_tensor.cpp +18 -0
  277. odrpack-0.1.0/extern/pybind11/tests/test_eigen_tensor.inl +338 -0
  278. odrpack-0.1.0/extern/pybind11/tests/test_eigen_tensor.py +293 -0
  279. odrpack-0.1.0/extern/pybind11/tests/test_embed/CMakeLists.txt +56 -0
  280. odrpack-0.1.0/extern/pybind11/tests/test_embed/catch.cpp +43 -0
  281. odrpack-0.1.0/extern/pybind11/tests/test_embed/external_module.cpp +20 -0
  282. odrpack-0.1.0/extern/pybind11/tests/test_embed/test_interpreter.cpp +488 -0
  283. odrpack-0.1.0/extern/pybind11/tests/test_embed/test_interpreter.py +16 -0
  284. odrpack-0.1.0/extern/pybind11/tests/test_embed/test_trampoline.py +18 -0
  285. odrpack-0.1.0/extern/pybind11/tests/test_enum.cpp +133 -0
  286. odrpack-0.1.0/extern/pybind11/tests/test_enum.py +333 -0
  287. odrpack-0.1.0/extern/pybind11/tests/test_eval.cpp +118 -0
  288. odrpack-0.1.0/extern/pybind11/tests/test_eval.py +52 -0
  289. odrpack-0.1.0/extern/pybind11/tests/test_eval_call.py +5 -0
  290. odrpack-0.1.0/extern/pybind11/tests/test_exceptions.cpp +427 -0
  291. odrpack-0.1.0/extern/pybind11/tests/test_exceptions.h +13 -0
  292. odrpack-0.1.0/extern/pybind11/tests/test_exceptions.py +438 -0
  293. odrpack-0.1.0/extern/pybind11/tests/test_factory_constructors.cpp +430 -0
  294. odrpack-0.1.0/extern/pybind11/tests/test_factory_constructors.py +531 -0
  295. odrpack-0.1.0/extern/pybind11/tests/test_gil_scoped.cpp +144 -0
  296. odrpack-0.1.0/extern/pybind11/tests/test_gil_scoped.py +265 -0
  297. odrpack-0.1.0/extern/pybind11/tests/test_iostream.cpp +126 -0
  298. odrpack-0.1.0/extern/pybind11/tests/test_iostream.py +297 -0
  299. odrpack-0.1.0/extern/pybind11/tests/test_kwargs_and_defaults.cpp +331 -0
  300. odrpack-0.1.0/extern/pybind11/tests/test_kwargs_and_defaults.py +441 -0
  301. odrpack-0.1.0/extern/pybind11/tests/test_local_bindings.cpp +106 -0
  302. odrpack-0.1.0/extern/pybind11/tests/test_local_bindings.py +259 -0
  303. odrpack-0.1.0/extern/pybind11/tests/test_methods_and_attributes.cpp +492 -0
  304. odrpack-0.1.0/extern/pybind11/tests/test_methods_and_attributes.py +552 -0
  305. odrpack-0.1.0/extern/pybind11/tests/test_modules.cpp +125 -0
  306. odrpack-0.1.0/extern/pybind11/tests/test_modules.py +128 -0
  307. odrpack-0.1.0/extern/pybind11/tests/test_multiple_inheritance.cpp +341 -0
  308. odrpack-0.1.0/extern/pybind11/tests/test_multiple_inheritance.py +501 -0
  309. odrpack-0.1.0/extern/pybind11/tests/test_numpy_array.cpp +589 -0
  310. odrpack-0.1.0/extern/pybind11/tests/test_numpy_array.py +689 -0
  311. odrpack-0.1.0/extern/pybind11/tests/test_numpy_dtypes.cpp +745 -0
  312. odrpack-0.1.0/extern/pybind11/tests/test_numpy_dtypes.py +470 -0
  313. odrpack-0.1.0/extern/pybind11/tests/test_numpy_vectorize.cpp +107 -0
  314. odrpack-0.1.0/extern/pybind11/tests/test_numpy_vectorize.py +268 -0
  315. odrpack-0.1.0/extern/pybind11/tests/test_opaque_types.cpp +77 -0
  316. odrpack-0.1.0/extern/pybind11/tests/test_opaque_types.py +63 -0
  317. odrpack-0.1.0/extern/pybind11/tests/test_operator_overloading.cpp +281 -0
  318. odrpack-0.1.0/extern/pybind11/tests/test_operator_overloading.py +159 -0
  319. odrpack-0.1.0/extern/pybind11/tests/test_pickling.cpp +194 -0
  320. odrpack-0.1.0/extern/pybind11/tests/test_pickling.py +112 -0
  321. odrpack-0.1.0/extern/pybind11/tests/test_python_multiple_inheritance.cpp +45 -0
  322. odrpack-0.1.0/extern/pybind11/tests/test_python_multiple_inheritance.py +36 -0
  323. odrpack-0.1.0/extern/pybind11/tests/test_pytypes.cpp +1162 -0
  324. odrpack-0.1.0/extern/pybind11/tests/test_pytypes.py +1274 -0
  325. odrpack-0.1.0/extern/pybind11/tests/test_sequences_and_iterators.cpp +600 -0
  326. odrpack-0.1.0/extern/pybind11/tests/test_sequences_and_iterators.py +296 -0
  327. odrpack-0.1.0/extern/pybind11/tests/test_smart_ptr.cpp +476 -0
  328. odrpack-0.1.0/extern/pybind11/tests/test_smart_ptr.py +329 -0
  329. odrpack-0.1.0/extern/pybind11/tests/test_stl.cpp +651 -0
  330. odrpack-0.1.0/extern/pybind11/tests/test_stl.py +566 -0
  331. odrpack-0.1.0/extern/pybind11/tests/test_stl_binders.cpp +275 -0
  332. odrpack-0.1.0/extern/pybind11/tests/test_stl_binders.py +414 -0
  333. odrpack-0.1.0/extern/pybind11/tests/test_tagbased_polymorphic.cpp +148 -0
  334. odrpack-0.1.0/extern/pybind11/tests/test_tagbased_polymorphic.py +30 -0
  335. odrpack-0.1.0/extern/pybind11/tests/test_thread.cpp +66 -0
  336. odrpack-0.1.0/extern/pybind11/tests/test_thread.py +49 -0
  337. odrpack-0.1.0/extern/pybind11/tests/test_type_caster_pyobject_ptr.cpp +168 -0
  338. odrpack-0.1.0/extern/pybind11/tests/test_type_caster_pyobject_ptr.py +122 -0
  339. odrpack-0.1.0/extern/pybind11/tests/test_type_caster_std_function_specializations.cpp +46 -0
  340. odrpack-0.1.0/extern/pybind11/tests/test_type_caster_std_function_specializations.py +15 -0
  341. odrpack-0.1.0/extern/pybind11/tests/test_union.cpp +22 -0
  342. odrpack-0.1.0/extern/pybind11/tests/test_union.py +10 -0
  343. odrpack-0.1.0/extern/pybind11/tests/test_unnamed_namespace_a.cpp +38 -0
  344. odrpack-0.1.0/extern/pybind11/tests/test_unnamed_namespace_a.py +36 -0
  345. odrpack-0.1.0/extern/pybind11/tests/test_unnamed_namespace_b.cpp +13 -0
  346. odrpack-0.1.0/extern/pybind11/tests/test_unnamed_namespace_b.py +7 -0
  347. odrpack-0.1.0/extern/pybind11/tests/test_vector_unique_ptr_member.cpp +54 -0
  348. odrpack-0.1.0/extern/pybind11/tests/test_vector_unique_ptr_member.py +16 -0
  349. odrpack-0.1.0/extern/pybind11/tests/test_virtual_functions.cpp +592 -0
  350. odrpack-0.1.0/extern/pybind11/tests/test_virtual_functions.py +468 -0
  351. odrpack-0.1.0/extern/pybind11/tests/test_warnings.cpp +46 -0
  352. odrpack-0.1.0/extern/pybind11/tests/test_warnings.py +68 -0
  353. odrpack-0.1.0/extern/pybind11/tests/valgrind-numpy-scipy.supp +140 -0
  354. odrpack-0.1.0/extern/pybind11/tests/valgrind-python.supp +117 -0
  355. odrpack-0.1.0/extern/pybind11/tools/FindCatch.cmake +76 -0
  356. odrpack-0.1.0/extern/pybind11/tools/FindEigen3.cmake +86 -0
  357. odrpack-0.1.0/extern/pybind11/tools/FindPythonLibsNew.cmake +310 -0
  358. odrpack-0.1.0/extern/pybind11/tools/JoinPaths.cmake +23 -0
  359. odrpack-0.1.0/extern/pybind11/tools/check-style.sh +44 -0
  360. odrpack-0.1.0/extern/pybind11/tools/cmake_uninstall.cmake.in +23 -0
  361. odrpack-0.1.0/extern/pybind11/tools/codespell_ignore_lines_from_errors.py +40 -0
  362. odrpack-0.1.0/extern/pybind11/tools/libsize.py +38 -0
  363. odrpack-0.1.0/extern/pybind11/tools/make_changelog.py +92 -0
  364. odrpack-0.1.0/extern/pybind11/tools/pybind11.pc.in +7 -0
  365. odrpack-0.1.0/extern/pybind11/tools/pybind11Common.cmake +416 -0
  366. odrpack-0.1.0/extern/pybind11/tools/pybind11Config.cmake.in +233 -0
  367. odrpack-0.1.0/extern/pybind11/tools/pybind11GuessPythonExtSuffix.cmake +86 -0
  368. odrpack-0.1.0/extern/pybind11/tools/pybind11NewTools.cmake +332 -0
  369. odrpack-0.1.0/extern/pybind11/tools/pybind11Tools.cmake +216 -0
  370. odrpack-0.1.0/extern/pybind11/tools/pyproject.toml +3 -0
  371. odrpack-0.1.0/extern/pybind11/tools/setup_global.py.in +66 -0
  372. odrpack-0.1.0/extern/pybind11/tools/setup_main.py.in +46 -0
  373. odrpack-0.1.0/extern/pybind11/tools/test-pybind11GuessPythonExtSuffix.cmake +161 -0
  374. odrpack-0.1.0/meson.build +90 -0
  375. odrpack-0.1.0/pyproject.toml +44 -0
  376. odrpack-0.1.0/requirements-build.txt +9 -0
  377. odrpack-0.1.0/src/odrpack/__init__.py +16 -0
  378. odrpack-0.1.0/src/odrpack/__odrpack.py.cpp +545 -0
  379. odrpack-0.1.0/src/odrpack/__odrpack.pyi +177 -0
  380. odrpack-0.1.0/src/odrpack/driver.py +533 -0
  381. odrpack-0.1.0/src/odrpack/exceptions.py +11 -0
  382. odrpack-0.1.0/src/odrpack/py.typed +0 -0
  383. odrpack-0.1.0/src/odrpack/result.py +79 -0
  384. odrpack-0.1.0/tests/example5.py +32 -0
  385. odrpack-0.1.0/tests/test_odrpack_multiprocessing.py +68 -0
  386. odrpack-0.1.0/tests/test_odrpack_single.py +562 -0
@@ -0,0 +1,118 @@
1
+ name: Build and upload to PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ pull_request:
6
+ push:
7
+ branches:
8
+ - main
9
+ release:
10
+ types:
11
+ - published
12
+
13
+ concurrency:
14
+ group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
15
+ cancel-in-progress: true
16
+
17
+ jobs:
18
+ build_wheels:
19
+ name: Build wheels on ${{ matrix.os }}
20
+ runs-on: ${{ matrix.os }}
21
+ strategy:
22
+ matrix:
23
+ os: [ubuntu-latest, windows-latest, macos-13, macos-14]
24
+
25
+ steps:
26
+ - name: Checkout code
27
+ uses: actions/checkout@v4
28
+ with:
29
+ submodules: recursive
30
+
31
+ - name: Set up Fortran
32
+ uses: fortran-lang/setup-fortran@v1
33
+ with:
34
+ version: 13 # 14 not supported yet in Windows
35
+
36
+ # This can't be placed in the cibuildwheel action
37
+ # Without it, the wheel repair fails
38
+ - name: Set macOS deployment target
39
+ if: runner.os == 'macOS'
40
+ run: |
41
+ echo "MACOSX_DEPLOYMENT_TARGET=$(sw_vers -productVersion | cut -d '.' -f 1-2)" >> $GITHUB_ENV
42
+
43
+ - name: Build wheels
44
+ uses: pypa/cibuildwheel@v2.22.0
45
+ env:
46
+ # All cibuildwheel options are here (nothing "hidden" in pyproject.toml)
47
+ CIBW_SKIP: "*-win32 *i686 pp3*"
48
+ CIBW_BUILD_VERBOSITY: 1
49
+ CIBW_TEST_REQUIRES: pytest
50
+ CIBW_TEST_COMMAND: "pytest {project}/tests"
51
+ CIBW_BEFORE_BUILD_WINDOWS: |
52
+ bash {project}/cibw-scripts/cibw_before_build_windows.sh {project}
53
+ CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: |
54
+ bash ./cibw-scripts/cibw_repair_wheel_command_windows.sh {wheel} {dest_dir}
55
+
56
+ - name: Upload wheels
57
+ uses: actions/upload-artifact@v4
58
+ with:
59
+ name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
60
+ path: ./wheelhouse/*.whl
61
+
62
+ build_sdist:
63
+ name: Build source distribution
64
+ runs-on: ubuntu-latest
65
+ steps:
66
+ - name: Checkout code
67
+ uses: actions/checkout@v4
68
+ with:
69
+ submodules: recursive
70
+
71
+ - name: Build sdist
72
+ run: pipx run build --sdist
73
+
74
+ - name: Upload wheels
75
+ uses: actions/upload-artifact@v4
76
+ with:
77
+ name: cibw-sdist
78
+ path: dist/*.tar.gz
79
+
80
+ upload_pypi:
81
+ name: Publish to PyPI
82
+ needs: [build_wheels, build_sdist]
83
+ runs-on: ubuntu-latest
84
+ environment:
85
+ name: pypi
86
+ permissions:
87
+ id-token: write
88
+ # if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
89
+ if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, 'publish-pypi') }}
90
+ steps:
91
+ - uses: actions/download-artifact@v4
92
+ with:
93
+ pattern: cibw-*
94
+ path: dist
95
+ merge-multiple: true
96
+
97
+ - uses: pypa/gh-action-pypi-publish@release/v1
98
+
99
+ upload_test_pypi:
100
+ name: Publish to TestPyPI
101
+ needs: [build_wheels, build_sdist]
102
+ runs-on: ubuntu-latest
103
+ environment:
104
+ name: testpypi
105
+ url: https://test.pypi.org/p/odrpack
106
+ permissions:
107
+ id-token: write
108
+ if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, 'publish-testpypi') }}
109
+ steps:
110
+ - uses: actions/download-artifact@v4
111
+ with:
112
+ pattern: cibw-*
113
+ path: dist
114
+ merge-multiple: true
115
+
116
+ - uses: pypa/gh-action-pypi-publish@release/v1
117
+ with:
118
+ repository-url: https://test.pypi.org/legacy/
@@ -0,0 +1,65 @@
1
+ name: Test Linux
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+
9
+ jobs:
10
+ test:
11
+ name: Ubuntu / ${{ matrix.python-version }}
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ matrix:
15
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
16
+ fail-fast: false
17
+
18
+ steps:
19
+ - name: Checkout code
20
+ uses: actions/checkout@v4
21
+ with:
22
+ submodules: recursive
23
+
24
+ - name: Set up Python ${{ matrix.python-version }}
25
+ uses: actions/setup-python@v5
26
+ with:
27
+ python-version: ${{ matrix.python-version }}
28
+
29
+ - name: Install Ubuntu-build dependencies
30
+ run: |
31
+ sudo apt-get update
32
+ sudo apt-get install -y libopenblas-dev
33
+ gfortran --version
34
+ gcc --version
35
+
36
+ - name: Install PyPi-build dependencies
37
+ run: |
38
+ python -m pip install --upgrade pip
39
+ pip install -r requirements-build.txt
40
+
41
+ - name: Build package
42
+ run: |
43
+ pip install -e . --no-build-isolation
44
+
45
+ - name: Run tests and collect coverage
46
+ run: |
47
+ pytest --cov -v -s --cov-report=xml --junitxml=junit.xml -o junit_family=legacy
48
+ coverage report
49
+
50
+ - name: Run example
51
+ run: |
52
+ python ./tests/example5.py
53
+
54
+ - name: Upload coverage to Codecov
55
+ if: ${{ matrix.python-version == '3.10' }}
56
+ uses: codecov/codecov-action@v4
57
+ with:
58
+ token: ${{ secrets.CODECOV_TOKEN }}
59
+ verbose: false
60
+
61
+ - name: Upload test results to Codecov
62
+ if: ${{ matrix.python-version == '3.10' && !cancelled() }}
63
+ uses: codecov/test-results-action@v1
64
+ with:
65
+ token: ${{ secrets.CODECOV_TOKEN }}
@@ -0,0 +1,171 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # UV
98
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ #uv.lock
102
+
103
+ # poetry
104
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
105
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
106
+ # commonly ignored for libraries.
107
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
108
+ #poetry.lock
109
+
110
+ # pdm
111
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
112
+ #pdm.lock
113
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
114
+ # in version control.
115
+ # https://pdm.fming.dev/latest/usage/project/#working-with-version-control
116
+ .pdm.toml
117
+ .pdm-python
118
+ .pdm-build/
119
+
120
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
121
+ __pypackages__/
122
+
123
+ # Celery stuff
124
+ celerybeat-schedule
125
+ celerybeat.pid
126
+
127
+ # SageMath parsed files
128
+ *.sage.py
129
+
130
+ # Environments
131
+ .env
132
+ .venv
133
+ env/
134
+ venv/
135
+ ENV/
136
+ env.bak/
137
+ venv.bak/
138
+
139
+ # Spyder project settings
140
+ .spyderproject
141
+ .spyproject
142
+
143
+ # Rope project settings
144
+ .ropeproject
145
+
146
+ # mkdocs documentation
147
+ /site
148
+
149
+ # mypy
150
+ .mypy_cache/
151
+ .dmypy.json
152
+ dmypy.json
153
+
154
+ # Pyre type checker
155
+ .pyre/
156
+
157
+ # pytype static type analyzer
158
+ .pytype/
159
+
160
+ # Cython debug symbols
161
+ cython_debug/
162
+
163
+ # PyCharm
164
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
165
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
166
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
167
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
168
+ #.idea/
169
+
170
+ # PyPI configuration file
171
+ .pypirc
@@ -0,0 +1,6 @@
1
+ [submodule "extern/pybind11"]
2
+ path = extern/pybind11
3
+ url = https://github.com/pybind/pybind11
4
+ [submodule "extern/odrpack95"]
5
+ path = extern/odrpack95
6
+ url = https://github.com/HugoMVale/odrpack95
@@ -0,0 +1,21 @@
1
+ {
2
+ "configurations": [
3
+ {
4
+ "name": "Linux",
5
+ "includePath": [
6
+ "${workspaceFolder}/**",
7
+ "${workspaceFolder}/extern/pybind11/include/pybind11",
8
+ "${workspaceFolder}/extern/odrpack95/c/include/odrpack",
9
+ //"${workspaceFolder}/extern/nanobind/include/nanobind",
10
+ "/usr/include/python3.10"
11
+ ],
12
+ "defines": [],
13
+ "compilerPath": "/usr/bin/gcc",
14
+ "cStandard": "c17",
15
+ "cppStandard": "gnu++17",
16
+ "intelliSenseMode": "linux-gcc-x64",
17
+ "configurationProvider": "mesonbuild.mesonbuild"
18
+ }
19
+ ],
20
+ "version": 4
21
+ }
@@ -0,0 +1,77 @@
1
+ {
2
+ "files.associations": {
3
+ "complex": "cpp",
4
+ "array": "cpp",
5
+ "atomic": "cpp",
6
+ "bit": "cpp",
7
+ "*.tcc": "cpp",
8
+ "cctype": "cpp",
9
+ "chrono": "cpp",
10
+ "clocale": "cpp",
11
+ "cmath": "cpp",
12
+ "codecvt": "cpp",
13
+ "compare": "cpp",
14
+ "concepts": "cpp",
15
+ "condition_variable": "cpp",
16
+ "cstdarg": "cpp",
17
+ "cstddef": "cpp",
18
+ "cstdint": "cpp",
19
+ "cstdio": "cpp",
20
+ "cstdlib": "cpp",
21
+ "cstring": "cpp",
22
+ "ctime": "cpp",
23
+ "cwchar": "cpp",
24
+ "cwctype": "cpp",
25
+ "deque": "cpp",
26
+ "forward_list": "cpp",
27
+ "list": "cpp",
28
+ "map": "cpp",
29
+ "set": "cpp",
30
+ "string": "cpp",
31
+ "unordered_map": "cpp",
32
+ "unordered_set": "cpp",
33
+ "vector": "cpp",
34
+ "exception": "cpp",
35
+ "algorithm": "cpp",
36
+ "functional": "cpp",
37
+ "iterator": "cpp",
38
+ "memory": "cpp",
39
+ "memory_resource": "cpp",
40
+ "numeric": "cpp",
41
+ "optional": "cpp",
42
+ "random": "cpp",
43
+ "ratio": "cpp",
44
+ "string_view": "cpp",
45
+ "system_error": "cpp",
46
+ "tuple": "cpp",
47
+ "type_traits": "cpp",
48
+ "utility": "cpp",
49
+ "fstream": "cpp",
50
+ "initializer_list": "cpp",
51
+ "iomanip": "cpp",
52
+ "iosfwd": "cpp",
53
+ "iostream": "cpp",
54
+ "istream": "cpp",
55
+ "limits": "cpp",
56
+ "mutex": "cpp",
57
+ "new": "cpp",
58
+ "numbers": "cpp",
59
+ "ostream": "cpp",
60
+ "semaphore": "cpp",
61
+ "sstream": "cpp",
62
+ "stdexcept": "cpp",
63
+ "stop_token": "cpp",
64
+ "streambuf": "cpp",
65
+ "thread": "cpp",
66
+ "cinttypes": "cpp",
67
+ "typeindex": "cpp",
68
+ "typeinfo": "cpp",
69
+ "valarray": "cpp",
70
+ "variant": "cpp",
71
+ "ranges": "cpp"
72
+ },
73
+ "autopep8.args": [
74
+ "--max-line-length=90"
75
+ ],
76
+ "C_Cpp.vcFormat.newLine.beforeOpenBrace.block": "sameLine"
77
+ }
odrpack-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 HugoMVale
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
odrpack-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,108 @@
1
+ Metadata-Version: 2.1
2
+ Name: odrpack
3
+ Version: 0.1.0
4
+ Summary: Package for weighted orthogonal distance regression (ODR).
5
+ Keywords: regression,statistics,mathematics
6
+ Author-Email: Hugo Vale <57530119+HugoMVale@users.noreply.github.com>
7
+ License: MIT License
8
+
9
+ Copyright (c) 2025 HugoMVale
10
+
11
+ Permission is hereby granted, free of charge, to any person obtaining a copy
12
+ of this software and associated documentation files (the "Software"), to deal
13
+ in the Software without restriction, including without limitation the rights
14
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
+ copies of the Software, and to permit persons to whom the Software is
16
+ furnished to do so, subject to the following conditions:
17
+
18
+ The above copyright notice and this permission notice shall be included in all
19
+ copies or substantial portions of the Software.
20
+
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
+ SOFTWARE.
28
+
29
+ Classifier: Development Status :: 1 - Planning
30
+ Classifier: Intended Audience :: Science/Research
31
+ Classifier: Operating System :: Microsoft :: Windows
32
+ Classifier: Operating System :: POSIX :: Linux
33
+ Classifier: Operating System :: MacOS
34
+ Classifier: License :: OSI Approved :: MIT License
35
+ Classifier: Programming Language :: Python
36
+ Classifier: Programming Language :: Python :: 3
37
+ Classifier: Programming Language :: Python :: 3.10
38
+ Classifier: Programming Language :: Python :: 3.11
39
+ Classifier: Programming Language :: Python :: 3.12
40
+ Classifier: Programming Language :: Python :: 3.13
41
+ Classifier: Topic :: Scientific/Engineering
42
+ Project-URL: Repository, https://github.com/HugoMVale/odrpack-python
43
+ Requires-Python: >=3.10
44
+ Requires-Dist: numpy
45
+ Provides-Extra: test
46
+ Requires-Dist: pytest; extra == "test"
47
+ Requires-Dist: pytest-cov; extra == "test"
48
+ Description-Content-Type: text/markdown
49
+
50
+ # odrpack (-python)
51
+
52
+ [![Test-Linux](https://github.com/HugoMVale/odrpack-python/actions/workflows/test-linux.yml/badge.svg)](https://github.com/HugoMVale/odrpack-python/actions)
53
+ [![codecov](https://codecov.io/gh/HugoMVale/odrpack-python/graph/badge.svg?token=B9sFyJiweC)](https://codecov.io/gh/HugoMVale/odrpack-python)
54
+ [![Latest Commit](https://img.shields.io/github/last-commit/HugoMVale/odrpack-python)](https://img.shields.io/github/last-commit/HugoMVale/odrpack-python)
55
+
56
+ ## Description
57
+
58
+ This Python package provides bindings for the well-known weighted orthogonal distance regression
59
+ (ODR) solver [odrpack95]. This design ensures that users benefit from the performance and reliability
60
+ of the original Fortran implementation, while working within the modern Python ecosystem.
61
+
62
+ ODR, also known as [errors-in-variables regression], is designed primarily for instances when both
63
+ the explanatory and response variables have significant errors.
64
+
65
+ <p align="center">
66
+ <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/Total_least_squares.svg/220px-Total_least_squares.svg.png" width="200" alt="Deming regression; special case of ODR.">
67
+ </p>
68
+
69
+ [errors-in-variables regression]: https://en.wikipedia.org/wiki/Errors-in-variables_models
70
+ [odrpack95]: https://github.com/HugoMVale/odrpack95
71
+
72
+
73
+ ## Installation
74
+
75
+ You can install the package via pip:
76
+
77
+ ```bash
78
+ pip install odrpack
79
+ ```
80
+
81
+ ## Usage
82
+
83
+ ```py
84
+ from odrpack import odr
85
+ import numpy as np
86
+
87
+ beta0 = np.array([2., 0.5])
88
+ lower = np.array([0., 0.])
89
+ upper = np.array([10., 0.9])
90
+ x = np.array([0.982, 1.998, 4.978, 6.01])
91
+ y = np.array([2.7, 7.4, 148.0, 403.0])
92
+
93
+
94
+ def f(beta: np.ndarray, x: np.ndarray) -> np.ndarray:
95
+ "Model function."
96
+ return beta[0] * np.exp(beta[1]*x)
97
+
98
+
99
+ sol = odr(f, beta0, y, x, lower=lower, upper=upper, iprint=1001)
100
+
101
+ print("\n beta:", sol.beta)
102
+ print("\n delta:", sol.delta)
103
+ ```
104
+
105
+ ```sh
106
+ beta: [1.63337057 0.9 ]
107
+ delta: [-0.36885787 -0.31272733 0.02928942 0.11031791]
108
+ ```
@@ -0,0 +1,59 @@
1
+ # odrpack (-python)
2
+
3
+ [![Test-Linux](https://github.com/HugoMVale/odrpack-python/actions/workflows/test-linux.yml/badge.svg)](https://github.com/HugoMVale/odrpack-python/actions)
4
+ [![codecov](https://codecov.io/gh/HugoMVale/odrpack-python/graph/badge.svg?token=B9sFyJiweC)](https://codecov.io/gh/HugoMVale/odrpack-python)
5
+ [![Latest Commit](https://img.shields.io/github/last-commit/HugoMVale/odrpack-python)](https://img.shields.io/github/last-commit/HugoMVale/odrpack-python)
6
+
7
+ ## Description
8
+
9
+ This Python package provides bindings for the well-known weighted orthogonal distance regression
10
+ (ODR) solver [odrpack95]. This design ensures that users benefit from the performance and reliability
11
+ of the original Fortran implementation, while working within the modern Python ecosystem.
12
+
13
+ ODR, also known as [errors-in-variables regression], is designed primarily for instances when both
14
+ the explanatory and response variables have significant errors.
15
+
16
+ <p align="center">
17
+ <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/Total_least_squares.svg/220px-Total_least_squares.svg.png" width="200" alt="Deming regression; special case of ODR.">
18
+ </p>
19
+
20
+ [errors-in-variables regression]: https://en.wikipedia.org/wiki/Errors-in-variables_models
21
+ [odrpack95]: https://github.com/HugoMVale/odrpack95
22
+
23
+
24
+ ## Installation
25
+
26
+ You can install the package via pip:
27
+
28
+ ```bash
29
+ pip install odrpack
30
+ ```
31
+
32
+ ## Usage
33
+
34
+ ```py
35
+ from odrpack import odr
36
+ import numpy as np
37
+
38
+ beta0 = np.array([2., 0.5])
39
+ lower = np.array([0., 0.])
40
+ upper = np.array([10., 0.9])
41
+ x = np.array([0.982, 1.998, 4.978, 6.01])
42
+ y = np.array([2.7, 7.4, 148.0, 403.0])
43
+
44
+
45
+ def f(beta: np.ndarray, x: np.ndarray) -> np.ndarray:
46
+ "Model function."
47
+ return beta[0] * np.exp(beta[1]*x)
48
+
49
+
50
+ sol = odr(f, beta0, y, x, lower=lower, upper=upper, iprint=1001)
51
+
52
+ print("\n beta:", sol.beta)
53
+ print("\n delta:", sol.delta)
54
+ ```
55
+
56
+ ```sh
57
+ beta: [1.63337057 0.9 ]
58
+ delta: [-0.36885787 -0.31272733 0.02928942 0.11031791]
59
+ ```