boost.cxx 0.0.2 → 1.90.1

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 (327) hide show
  1. package/README.md +29 -2
  2. package/boost/cast.hpp +20 -0
  3. package/boost/numeric/conversion/bounds.hpp +24 -0
  4. package/boost/numeric/conversion/cast.hpp +61 -0
  5. package/boost/numeric/conversion/conversion_traits.hpp +32 -0
  6. package/boost/numeric/conversion/converter.hpp +68 -0
  7. package/boost/numeric/conversion/converter_policies.hpp +194 -0
  8. package/boost/numeric/conversion/detail/bounds.hpp +58 -0
  9. package/boost/numeric/conversion/detail/conversion_traits.hpp +97 -0
  10. package/boost/numeric/conversion/detail/converter.hpp +593 -0
  11. package/boost/numeric/conversion/detail/int_float_mixture.hpp +72 -0
  12. package/boost/numeric/conversion/detail/is_subranged.hpp +234 -0
  13. package/boost/numeric/conversion/detail/meta.hpp +120 -0
  14. package/boost/numeric/conversion/detail/numeric_cast_traits.hpp +138 -0
  15. package/boost/numeric/conversion/detail/old_numeric_cast.hpp +308 -0
  16. package/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp +1741 -0
  17. package/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp +347 -0
  18. package/boost/numeric/conversion/detail/sign_mixture.hpp +72 -0
  19. package/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +69 -0
  20. package/boost/numeric/conversion/int_float_mixture.hpp +30 -0
  21. package/boost/numeric/conversion/int_float_mixture_enum.hpp +29 -0
  22. package/boost/numeric/conversion/is_subranged.hpp +27 -0
  23. package/boost/numeric/conversion/numeric_cast_traits.hpp +31 -0
  24. package/boost/numeric/conversion/sign_mixture.hpp +30 -0
  25. package/boost/numeric/conversion/sign_mixture_enum.hpp +29 -0
  26. package/boost/numeric/conversion/udt_builtin_mixture.hpp +28 -0
  27. package/boost/numeric/conversion/udt_builtin_mixture_enum.hpp +26 -0
  28. package/boost/numeric/interval/arith.hpp +305 -0
  29. package/boost/numeric/interval/arith2.hpp +304 -0
  30. package/boost/numeric/interval/arith3.hpp +69 -0
  31. package/boost/numeric/interval/checking.hpp +130 -0
  32. package/boost/numeric/interval/compare/certain.hpp +113 -0
  33. package/boost/numeric/interval/compare/explicit.hpp +248 -0
  34. package/boost/numeric/interval/compare/lexicographic.hpp +122 -0
  35. package/boost/numeric/interval/compare/possible.hpp +113 -0
  36. package/boost/numeric/interval/compare/set.hpp +101 -0
  37. package/boost/numeric/interval/compare/tribool.hpp +138 -0
  38. package/boost/numeric/interval/compare.hpp +19 -0
  39. package/boost/numeric/interval/constants.hpp +85 -0
  40. package/boost/numeric/interval/detail/alpha_rounding_control.hpp +113 -0
  41. package/boost/numeric/interval/detail/bcc_rounding_control.hpp +57 -0
  42. package/boost/numeric/interval/detail/bugs.hpp +48 -0
  43. package/boost/numeric/interval/detail/c99_rounding_control.hpp +50 -0
  44. package/boost/numeric/interval/detail/c99sub_rounding_control.hpp +43 -0
  45. package/boost/numeric/interval/detail/division.hpp +194 -0
  46. package/boost/numeric/interval/detail/ia64_rounding_control.hpp +83 -0
  47. package/boost/numeric/interval/detail/interval_prototype.hpp +41 -0
  48. package/boost/numeric/interval/detail/msvc_rounding_control.hpp +113 -0
  49. package/boost/numeric/interval/detail/ppc_rounding_control.hpp +99 -0
  50. package/boost/numeric/interval/detail/sparc_rounding_control.hpp +112 -0
  51. package/boost/numeric/interval/detail/test_input.hpp +76 -0
  52. package/boost/numeric/interval/detail/x86_rounding_control.hpp +108 -0
  53. package/boost/numeric/interval/detail/x86gcc_rounding_control.hpp +51 -0
  54. package/boost/numeric/interval/ext/integer.hpp +70 -0
  55. package/boost/numeric/interval/ext/x86_fast_rounding_control.hpp +70 -0
  56. package/boost/numeric/interval/hw_rounding.hpp +73 -0
  57. package/boost/numeric/interval/interval.hpp +450 -0
  58. package/boost/numeric/interval/io.hpp +41 -0
  59. package/boost/numeric/interval/limits.hpp +49 -0
  60. package/boost/numeric/interval/policies.hpp +75 -0
  61. package/boost/numeric/interval/rounded_arith.hpp +120 -0
  62. package/boost/numeric/interval/rounded_transc.hpp +140 -0
  63. package/boost/numeric/interval/rounding.hpp +101 -0
  64. package/boost/numeric/interval/transc.hpp +232 -0
  65. package/boost/numeric/interval/utility.hpp +335 -0
  66. package/boost/numeric/interval/utility_fwd.hpp +172 -0
  67. package/boost/numeric/interval.hpp +32 -0
  68. package/boost/numeric/odeint/algebra/algebra_dispatcher.hpp +86 -0
  69. package/boost/numeric/odeint/algebra/array_algebra.hpp +293 -0
  70. package/boost/numeric/odeint/algebra/default_operations.hpp +599 -0
  71. package/boost/numeric/odeint/algebra/detail/extract_value_type.hpp +51 -0
  72. package/boost/numeric/odeint/algebra/detail/for_each.hpp +165 -0
  73. package/boost/numeric/odeint/algebra/detail/macros.hpp +35 -0
  74. package/boost/numeric/odeint/algebra/detail/norm_inf.hpp +46 -0
  75. package/boost/numeric/odeint/algebra/fusion_algebra.hpp +216 -0
  76. package/boost/numeric/odeint/algebra/fusion_algebra_dispatcher.hpp +48 -0
  77. package/boost/numeric/odeint/algebra/multi_array_algebra.hpp +146 -0
  78. package/boost/numeric/odeint/algebra/norm_result_type.hpp +33 -0
  79. package/boost/numeric/odeint/algebra/operations_dispatcher.hpp +41 -0
  80. package/boost/numeric/odeint/algebra/range_algebra.hpp +142 -0
  81. package/boost/numeric/odeint/algebra/vector_space_algebra.hpp +175 -0
  82. package/boost/numeric/odeint/config.hpp +53 -0
  83. package/boost/numeric/odeint/external/blaze/blaze_algebra_dispatcher.hpp +55 -0
  84. package/boost/numeric/odeint/external/blaze/blaze_resize.hpp +64 -0
  85. package/boost/numeric/odeint/external/compute/compute.hpp +27 -0
  86. package/boost/numeric/odeint/external/compute/compute_algebra.hpp +65 -0
  87. package/boost/numeric/odeint/external/compute/compute_algebra_dispatcher.hpp +41 -0
  88. package/boost/numeric/odeint/external/compute/compute_operations.hpp +198 -0
  89. package/boost/numeric/odeint/external/compute/compute_operations_dispatcher.hpp +44 -0
  90. package/boost/numeric/odeint/external/compute/compute_resize.hpp +92 -0
  91. package/boost/numeric/odeint/external/eigen/eigen.hpp +27 -0
  92. package/boost/numeric/odeint/external/eigen/eigen_algebra.hpp +98 -0
  93. package/boost/numeric/odeint/external/eigen/eigen_algebra_dispatcher.hpp +49 -0
  94. package/boost/numeric/odeint/external/eigen/eigen_resize.hpp +103 -0
  95. package/boost/numeric/odeint/external/gsl/gsl_wrapper.hpp +228 -0
  96. package/boost/numeric/odeint/external/mkl/mkl_operations.hpp +181 -0
  97. package/boost/numeric/odeint/external/mpi/mpi.hpp +25 -0
  98. package/boost/numeric/odeint/external/mpi/mpi_nested_algebra.hpp +62 -0
  99. package/boost/numeric/odeint/external/mpi/mpi_state.hpp +113 -0
  100. package/boost/numeric/odeint/external/mpi/mpi_vector_state.hpp +95 -0
  101. package/boost/numeric/odeint/external/mtl4/implicit_euler_mtl4.hpp +161 -0
  102. package/boost/numeric/odeint/external/mtl4/mtl4.hpp +23 -0
  103. package/boost/numeric/odeint/external/mtl4/mtl4_algebra_dispatcher.hpp +99 -0
  104. package/boost/numeric/odeint/external/mtl4/mtl4_resize.hpp +134 -0
  105. package/boost/numeric/odeint/external/nt2/nt2_algebra_dispatcher.hpp +25 -0
  106. package/boost/numeric/odeint/external/nt2/nt2_copy.hpp +33 -0
  107. package/boost/numeric/odeint/external/nt2/nt2_norm_inf.hpp +31 -0
  108. package/boost/numeric/odeint/external/nt2/nt2_resize.hpp +54 -0
  109. package/boost/numeric/odeint/external/openmp/openmp.hpp +31 -0
  110. package/boost/numeric/odeint/external/openmp/openmp_nested_algebra.hpp +281 -0
  111. package/boost/numeric/odeint/external/openmp/openmp_range_algebra.hpp +276 -0
  112. package/boost/numeric/odeint/external/openmp/openmp_state.hpp +172 -0
  113. package/boost/numeric/odeint/external/thrust/thrust.hpp +27 -0
  114. package/boost/numeric/odeint/external/thrust/thrust_algebra.hpp +217 -0
  115. package/boost/numeric/odeint/external/thrust/thrust_algebra_dispatcher.hpp +118 -0
  116. package/boost/numeric/odeint/external/thrust/thrust_operations.hpp +233 -0
  117. package/boost/numeric/odeint/external/thrust/thrust_operations_dispatcher.hpp +118 -0
  118. package/boost/numeric/odeint/external/thrust/thrust_resize.hpp +197 -0
  119. package/boost/numeric/odeint/external/vexcl/vexcl.hpp +28 -0
  120. package/boost/numeric/odeint/external/vexcl/vexcl_abs.hpp +61 -0
  121. package/boost/numeric/odeint/external/vexcl/vexcl_algebra_dispatcher.hpp +51 -0
  122. package/boost/numeric/odeint/external/vexcl/vexcl_copy.hpp +55 -0
  123. package/boost/numeric/odeint/external/vexcl/vexcl_norm_inf.hpp +68 -0
  124. package/boost/numeric/odeint/external/vexcl/vexcl_resize.hpp +96 -0
  125. package/boost/numeric/odeint/external/vexcl/vexcl_same_instance.hpp +58 -0
  126. package/boost/numeric/odeint/external/viennacl/viennacl_operations.hpp +226 -0
  127. package/boost/numeric/odeint/external/viennacl/viennacl_resize.hpp +68 -0
  128. package/boost/numeric/odeint/integrate/check_adapter.hpp +222 -0
  129. package/boost/numeric/odeint/integrate/detail/functors.hpp +70 -0
  130. package/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp +161 -0
  131. package/boost/numeric/odeint/integrate/detail/integrate_const.hpp +167 -0
  132. package/boost/numeric/odeint/integrate/detail/integrate_n_steps.hpp +161 -0
  133. package/boost/numeric/odeint/integrate/detail/integrate_times.hpp +179 -0
  134. package/boost/numeric/odeint/integrate/integrate.hpp +133 -0
  135. package/boost/numeric/odeint/integrate/integrate_adaptive.hpp +127 -0
  136. package/boost/numeric/odeint/integrate/integrate_const.hpp +195 -0
  137. package/boost/numeric/odeint/integrate/integrate_n_steps.hpp +178 -0
  138. package/boost/numeric/odeint/integrate/integrate_times.hpp +220 -0
  139. package/boost/numeric/odeint/integrate/max_step_checker.hpp +114 -0
  140. package/boost/numeric/odeint/integrate/null_observer.hpp +38 -0
  141. package/boost/numeric/odeint/integrate/observer_collection.hpp +55 -0
  142. package/boost/numeric/odeint/iterator/adaptive_iterator.hpp +183 -0
  143. package/boost/numeric/odeint/iterator/adaptive_time_iterator.hpp +175 -0
  144. package/boost/numeric/odeint/iterator/const_step_iterator.hpp +180 -0
  145. package/boost/numeric/odeint/iterator/const_step_time_iterator.hpp +173 -0
  146. package/boost/numeric/odeint/iterator/detail/ode_iterator_base.hpp +199 -0
  147. package/boost/numeric/odeint/iterator/impl/adaptive_iterator_impl.hpp +251 -0
  148. package/boost/numeric/odeint/iterator/impl/const_step_iterator_impl.hpp +228 -0
  149. package/boost/numeric/odeint/iterator/impl/n_step_iterator_impl.hpp +239 -0
  150. package/boost/numeric/odeint/iterator/impl/times_iterator_impl.hpp +369 -0
  151. package/boost/numeric/odeint/iterator/integrate/detail/functors.hpp +70 -0
  152. package/boost/numeric/odeint/iterator/integrate/detail/integrate_adaptive.hpp +121 -0
  153. package/boost/numeric/odeint/iterator/integrate/detail/integrate_const.hpp +111 -0
  154. package/boost/numeric/odeint/iterator/integrate/detail/integrate_n_steps.hpp +107 -0
  155. package/boost/numeric/odeint/iterator/integrate/detail/integrate_times.hpp +67 -0
  156. package/boost/numeric/odeint/iterator/integrate/integrate.hpp +111 -0
  157. package/boost/numeric/odeint/iterator/integrate/integrate_adaptive.hpp +127 -0
  158. package/boost/numeric/odeint/iterator/integrate/integrate_const.hpp +158 -0
  159. package/boost/numeric/odeint/iterator/integrate/integrate_n_steps.hpp +123 -0
  160. package/boost/numeric/odeint/iterator/integrate/integrate_times.hpp +131 -0
  161. package/boost/numeric/odeint/iterator/integrate/null_observer.hpp +38 -0
  162. package/boost/numeric/odeint/iterator/integrate/observer_collection.hpp +55 -0
  163. package/boost/numeric/odeint/iterator/n_step_iterator.hpp +168 -0
  164. package/boost/numeric/odeint/iterator/n_step_time_iterator.hpp +169 -0
  165. package/boost/numeric/odeint/iterator/times_iterator.hpp +189 -0
  166. package/boost/numeric/odeint/iterator/times_time_iterator.hpp +193 -0
  167. package/boost/numeric/odeint/stepper/adams_bashforth.hpp +418 -0
  168. package/boost/numeric/odeint/stepper/adams_bashforth_moulton.hpp +313 -0
  169. package/boost/numeric/odeint/stepper/adams_moulton.hpp +201 -0
  170. package/boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp +237 -0
  171. package/boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp +91 -0
  172. package/boost/numeric/odeint/stepper/base/explicit_error_stepper_base.hpp +588 -0
  173. package/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base.hpp +677 -0
  174. package/boost/numeric/odeint/stepper/base/explicit_stepper_base.hpp +415 -0
  175. package/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base.hpp +431 -0
  176. package/boost/numeric/odeint/stepper/bulirsch_stoer.hpp +642 -0
  177. package/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out.hpp +838 -0
  178. package/boost/numeric/odeint/stepper/controlled_adams_bashforth_moulton.hpp +322 -0
  179. package/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp +1018 -0
  180. package/boost/numeric/odeint/stepper/controlled_step_result.hpp +42 -0
  181. package/boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp +476 -0
  182. package/boost/numeric/odeint/stepper/detail/adams_bashforth_call_algebra.hpp +148 -0
  183. package/boost/numeric/odeint/stepper/detail/adams_bashforth_coefficients.hpp +168 -0
  184. package/boost/numeric/odeint/stepper/detail/adams_moulton_call_algebra.hpp +148 -0
  185. package/boost/numeric/odeint/stepper/detail/adams_moulton_coefficients.hpp +168 -0
  186. package/boost/numeric/odeint/stepper/detail/adaptive_adams_coefficients.hpp +207 -0
  187. package/boost/numeric/odeint/stepper/detail/generic_rk_algorithm.hpp +247 -0
  188. package/boost/numeric/odeint/stepper/detail/generic_rk_call_algebra.hpp +263 -0
  189. package/boost/numeric/odeint/stepper/detail/generic_rk_operations.hpp +252 -0
  190. package/boost/numeric/odeint/stepper/detail/pid_step_adjuster.hpp +199 -0
  191. package/boost/numeric/odeint/stepper/detail/pid_step_adjuster_coefficients.hpp +180 -0
  192. package/boost/numeric/odeint/stepper/detail/rotating_buffer.hpp +84 -0
  193. package/boost/numeric/odeint/stepper/euler.hpp +166 -0
  194. package/boost/numeric/odeint/stepper/explicit_error_generic_rk.hpp +255 -0
  195. package/boost/numeric/odeint/stepper/explicit_generic_rk.hpp +246 -0
  196. package/boost/numeric/odeint/stepper/extrapolation_stepper.hpp +288 -0
  197. package/boost/numeric/odeint/stepper/generation/generation_controlled_adams_bashforth_moulton.hpp +59 -0
  198. package/boost/numeric/odeint/stepper/generation/generation_controlled_runge_kutta.hpp +61 -0
  199. package/boost/numeric/odeint/stepper/generation/generation_dense_output_runge_kutta.hpp +65 -0
  200. package/boost/numeric/odeint/stepper/generation/generation_rosenbrock4.hpp +79 -0
  201. package/boost/numeric/odeint/stepper/generation/generation_runge_kutta_cash_karp54.hpp +47 -0
  202. package/boost/numeric/odeint/stepper/generation/generation_runge_kutta_cash_karp54_classic.hpp +48 -0
  203. package/boost/numeric/odeint/stepper/generation/generation_runge_kutta_dopri5.hpp +56 -0
  204. package/boost/numeric/odeint/stepper/generation/generation_runge_kutta_fehlberg78.hpp +46 -0
  205. package/boost/numeric/odeint/stepper/generation/make_controlled.hpp +103 -0
  206. package/boost/numeric/odeint/stepper/generation/make_dense_output.hpp +100 -0
  207. package/boost/numeric/odeint/stepper/generation.hpp +37 -0
  208. package/boost/numeric/odeint/stepper/implicit_euler.hpp +170 -0
  209. package/boost/numeric/odeint/stepper/modified_midpoint.hpp +315 -0
  210. package/boost/numeric/odeint/stepper/rosenbrock4.hpp +346 -0
  211. package/boost/numeric/odeint/stepper/rosenbrock4_controller.hpp +240 -0
  212. package/boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp +204 -0
  213. package/boost/numeric/odeint/stepper/runge_kutta4.hpp +181 -0
  214. package/boost/numeric/odeint/stepper/runge_kutta4_classic.hpp +232 -0
  215. package/boost/numeric/odeint/stepper/runge_kutta_cash_karp54.hpp +231 -0
  216. package/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic.hpp +289 -0
  217. package/boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp +403 -0
  218. package/boost/numeric/odeint/stepper/runge_kutta_fehlberg78.hpp +374 -0
  219. package/boost/numeric/odeint/stepper/stepper_categories.hpp +66 -0
  220. package/boost/numeric/odeint/stepper/symplectic_euler.hpp +136 -0
  221. package/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan.hpp +160 -0
  222. package/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan.hpp +162 -0
  223. package/boost/numeric/odeint/stepper/velocity_verlet.hpp +375 -0
  224. package/boost/numeric/odeint/tools/assert.hpp +30 -0
  225. package/boost/numeric/odeint/tools/is_standalone.hpp +21 -0
  226. package/boost/numeric/odeint/tools/traits.hpp +39 -0
  227. package/boost/numeric/odeint/util/bind.hpp +35 -0
  228. package/boost/numeric/odeint/util/copy.hpp +88 -0
  229. package/boost/numeric/odeint/util/detail/is_range.hpp +127 -0
  230. package/boost/numeric/odeint/util/detail/less_with_sign.hpp +78 -0
  231. package/boost/numeric/odeint/util/is_pair.hpp +42 -0
  232. package/boost/numeric/odeint/util/is_resizeable.hpp +84 -0
  233. package/boost/numeric/odeint/util/multi_array_adaption.hpp +131 -0
  234. package/boost/numeric/odeint/util/n_ary_helper.hpp +96 -0
  235. package/boost/numeric/odeint/util/odeint_error.hpp +77 -0
  236. package/boost/numeric/odeint/util/resize.hpp +120 -0
  237. package/boost/numeric/odeint/util/resizer.hpp +94 -0
  238. package/boost/numeric/odeint/util/same_instance.hpp +56 -0
  239. package/boost/numeric/odeint/util/same_size.hpp +117 -0
  240. package/boost/numeric/odeint/util/split.hpp +64 -0
  241. package/boost/numeric/odeint/util/split_adaptor.hpp +103 -0
  242. package/boost/numeric/odeint/util/state_wrapper.hpp +50 -0
  243. package/boost/numeric/odeint/util/stepper_traits.hpp +63 -0
  244. package/boost/numeric/odeint/util/ublas_matrix_expression.patch +6 -0
  245. package/boost/numeric/odeint/util/ublas_wrapper.hpp +297 -0
  246. package/boost/numeric/odeint/util/unit_helper.hpp +151 -0
  247. package/boost/numeric/odeint/util/unwrap_reference.hpp +141 -0
  248. package/boost/numeric/odeint/version.hpp +55 -0
  249. package/boost/numeric/odeint.hpp +87 -0
  250. package/boost/numeric/ublas/assignment.hpp +1288 -0
  251. package/boost/numeric/ublas/banded.hpp +2372 -0
  252. package/boost/numeric/ublas/blas.hpp +499 -0
  253. package/boost/numeric/ublas/detail/concepts.hpp +1465 -0
  254. package/boost/numeric/ublas/detail/config.hpp +304 -0
  255. package/boost/numeric/ublas/detail/definitions.hpp +212 -0
  256. package/boost/numeric/ublas/detail/documentation.hpp +33 -0
  257. package/boost/numeric/ublas/detail/duff.hpp +56 -0
  258. package/boost/numeric/ublas/detail/iterator.hpp +1448 -0
  259. package/boost/numeric/ublas/detail/matrix_assign.hpp +1785 -0
  260. package/boost/numeric/ublas/detail/raw.hpp +878 -0
  261. package/boost/numeric/ublas/detail/returntype_deduction.hpp +174 -0
  262. package/boost/numeric/ublas/detail/temporary.hpp +33 -0
  263. package/boost/numeric/ublas/detail/vector_assign.hpp +609 -0
  264. package/boost/numeric/ublas/doxydoc.hpp +58 -0
  265. package/boost/numeric/ublas/exception.hpp +297 -0
  266. package/boost/numeric/ublas/experimental/sparse_view.hpp +317 -0
  267. package/boost/numeric/ublas/expression_types.hpp +506 -0
  268. package/boost/numeric/ublas/functional.hpp +2112 -0
  269. package/boost/numeric/ublas/fwd.hpp +229 -0
  270. package/boost/numeric/ublas/hermitian.hpp +2633 -0
  271. package/boost/numeric/ublas/io.hpp +355 -0
  272. package/boost/numeric/ublas/lu.hpp +350 -0
  273. package/boost/numeric/ublas/matrix.hpp +6013 -0
  274. package/boost/numeric/ublas/matrix_expression.hpp +5693 -0
  275. package/boost/numeric/ublas/matrix_proxy.hpp +5457 -0
  276. package/boost/numeric/ublas/matrix_sparse.hpp +5773 -0
  277. package/boost/numeric/ublas/matrix_vector.hpp +406 -0
  278. package/boost/numeric/ublas/opencl/elementwise.hpp +508 -0
  279. package/boost/numeric/ublas/opencl/library.hpp +38 -0
  280. package/boost/numeric/ublas/opencl/matrix.hpp +123 -0
  281. package/boost/numeric/ublas/opencl/misc.hpp +182 -0
  282. package/boost/numeric/ublas/opencl/operations.hpp +18 -0
  283. package/boost/numeric/ublas/opencl/prod.hpp +364 -0
  284. package/boost/numeric/ublas/opencl/transpose.hpp +142 -0
  285. package/boost/numeric/ublas/opencl/vector.hpp +90 -0
  286. package/boost/numeric/ublas/opencl.hpp +16 -0
  287. package/boost/numeric/ublas/operation/begin.hpp +318 -0
  288. package/boost/numeric/ublas/operation/c_array.hpp +41 -0
  289. package/boost/numeric/ublas/operation/end.hpp +318 -0
  290. package/boost/numeric/ublas/operation/num_columns.hpp +45 -0
  291. package/boost/numeric/ublas/operation/num_rows.hpp +44 -0
  292. package/boost/numeric/ublas/operation/size.hpp +350 -0
  293. package/boost/numeric/ublas/operation.hpp +830 -0
  294. package/boost/numeric/ublas/operation_blocked.hpp +266 -0
  295. package/boost/numeric/ublas/operation_sparse.hpp +198 -0
  296. package/boost/numeric/ublas/operations.hpp +26 -0
  297. package/boost/numeric/ublas/storage.hpp +2131 -0
  298. package/boost/numeric/ublas/storage_sparse.hpp +578 -0
  299. package/boost/numeric/ublas/symmetric.hpp +2309 -0
  300. package/boost/numeric/ublas/tags.hpp +37 -0
  301. package/boost/numeric/ublas/tensor/algorithms.hpp +345 -0
  302. package/boost/numeric/ublas/tensor/expression.hpp +181 -0
  303. package/boost/numeric/ublas/tensor/expression_evaluation.hpp +288 -0
  304. package/boost/numeric/ublas/tensor/extents.hpp +335 -0
  305. package/boost/numeric/ublas/tensor/functions.hpp +558 -0
  306. package/boost/numeric/ublas/tensor/index.hpp +89 -0
  307. package/boost/numeric/ublas/tensor/multi_index.hpp +110 -0
  308. package/boost/numeric/ublas/tensor/multi_index_utility.hpp +364 -0
  309. package/boost/numeric/ublas/tensor/multiplication.hpp +945 -0
  310. package/boost/numeric/ublas/tensor/operators_arithmetic.hpp +244 -0
  311. package/boost/numeric/ublas/tensor/operators_comparison.hpp +175 -0
  312. package/boost/numeric/ublas/tensor/ostream.hpp +122 -0
  313. package/boost/numeric/ublas/tensor/storage_traits.hpp +84 -0
  314. package/boost/numeric/ublas/tensor/strides.hpp +251 -0
  315. package/boost/numeric/ublas/tensor/tensor.hpp +734 -0
  316. package/boost/numeric/ublas/tensor.hpp +26 -0
  317. package/boost/numeric/ublas/traits/c_array.hpp +110 -0
  318. package/boost/numeric/ublas/traits/const_iterator_type.hpp +127 -0
  319. package/boost/numeric/ublas/traits/iterator_type.hpp +126 -0
  320. package/boost/numeric/ublas/traits.hpp +753 -0
  321. package/boost/numeric/ublas/triangular.hpp +2775 -0
  322. package/boost/numeric/ublas/vector.hpp +2947 -0
  323. package/boost/numeric/ublas/vector_expression.hpp +1762 -0
  324. package/boost/numeric/ublas/vector_of_vector.hpp +1347 -0
  325. package/boost/numeric/ublas/vector_proxy.hpp +1697 -0
  326. package/boost/numeric/ublas/vector_sparse.hpp +2246 -0
  327. package/package.json +3 -7
@@ -0,0 +1,288 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/stepper/extrapolation_stepper.hpp
4
+
5
+ [begin_description]
6
+ extrapolation stepper
7
+ [end_description]
8
+
9
+ Copyright 2009-2015 Mario Mulansky
10
+
11
+ Distributed under the Boost Software License, Version 1.0.
12
+ (See accompanying file LICENSE_1_0.txt or
13
+ copy at http://www.boost.org/LICENSE_1_0.txt)
14
+ */
15
+
16
+ #ifndef BOOST_NUMERIC_ODEINT_STEPPER_EXTRAPOLATION_STEPPER_HPP_INCLUDED
17
+ #define BOOST_NUMERIC_ODEINT_STEPPER_EXTRAPOLATION_STEPPER_HPP_INCLUDED
18
+
19
+ #include <iostream>
20
+
21
+ #include <algorithm>
22
+
23
+ #include <boost/config.hpp> // for min/max guidelines
24
+ #include <boost/static_assert.hpp>
25
+
26
+ #include <boost/numeric/odeint/util/bind.hpp>
27
+ #include <boost/numeric/odeint/util/unwrap_reference.hpp>
28
+
29
+ #include <boost/numeric/odeint/stepper/base/explicit_error_stepper_base.hpp>
30
+ #include <boost/numeric/odeint/stepper/modified_midpoint.hpp>
31
+ #include <boost/numeric/odeint/stepper/controlled_step_result.hpp>
32
+ #include <boost/numeric/odeint/algebra/range_algebra.hpp>
33
+ #include <boost/numeric/odeint/algebra/default_operations.hpp>
34
+ #include <boost/numeric/odeint/algebra/algebra_dispatcher.hpp>
35
+ #include <boost/numeric/odeint/algebra/operations_dispatcher.hpp>
36
+
37
+ #include <boost/numeric/odeint/util/state_wrapper.hpp>
38
+ #include <boost/numeric/odeint/util/is_resizeable.hpp>
39
+ #include <boost/numeric/odeint/util/resizer.hpp>
40
+ #include <boost/numeric/odeint/util/unit_helper.hpp>
41
+ #include <boost/numeric/odeint/util/detail/less_with_sign.hpp>
42
+
43
+ namespace boost
44
+ {
45
+ namespace numeric
46
+ {
47
+ namespace odeint
48
+ {
49
+
50
+ template < unsigned short Order, class State, class Value = double,
51
+ class Deriv = State, class Time = Value,
52
+ class Algebra = typename algebra_dispatcher< State >::algebra_type,
53
+ class Operations =
54
+ typename operations_dispatcher< State >::operations_type,
55
+ class Resizer = initially_resizer >
56
+ #ifndef DOXYGEN_SKIP
57
+ class extrapolation_stepper
58
+ : public explicit_error_stepper_base<
59
+ extrapolation_stepper< Order, State, Value, Deriv, Time, Algebra,
60
+ Operations, Resizer >,
61
+ Order, Order, Order - 2, State, Value, Deriv, Time, Algebra,
62
+ Operations, Resizer >
63
+ #else
64
+ class extrapolation_stepper : public explicit_error_stepper_base
65
+ #endif
66
+ {
67
+
68
+ private:
69
+ // check for Order being odd
70
+ static_assert(
71
+ ( ( Order % 2 ) == 0 ) && ( Order > 2 ),
72
+ "extrapolation_stepper requires even Order larger than 2" );
73
+
74
+ public:
75
+ #ifndef DOXYGEN_SKIP
76
+ typedef explicit_error_stepper_base<
77
+ extrapolation_stepper< Order, State, Value, Deriv, Time, Algebra,
78
+ Operations, Resizer >,
79
+ Order, Order, Order - 2, State, Value, Deriv, Time, Algebra, Operations,
80
+ Resizer > stepper_base_type;
81
+ #else
82
+ typedef explicit_error_stepper_base< extrapolation_stepper< ... >, ... >
83
+ stepper_base_type;
84
+ #endif
85
+
86
+ typedef typename stepper_base_type::state_type state_type;
87
+ typedef typename stepper_base_type::value_type value_type;
88
+ typedef typename stepper_base_type::deriv_type deriv_type;
89
+ typedef typename stepper_base_type::time_type time_type;
90
+ typedef typename stepper_base_type::algebra_type algebra_type;
91
+ typedef typename stepper_base_type::operations_type operations_type;
92
+ typedef typename stepper_base_type::resizer_type resizer_type;
93
+
94
+ #ifndef DOXYGEN_SKIP
95
+ typedef typename stepper_base_type::stepper_type stepper_type;
96
+ typedef typename stepper_base_type::wrapped_state_type wrapped_state_type;
97
+ typedef typename stepper_base_type::wrapped_deriv_type wrapped_deriv_type;
98
+
99
+ typedef std::vector< value_type > value_vector;
100
+ typedef std::vector< value_vector > value_matrix;
101
+ typedef std::vector< size_t > int_vector;
102
+ typedef std::vector< wrapped_state_type > state_table_type;
103
+ typedef modified_midpoint< state_type, value_type, deriv_type, time_type,
104
+ algebra_type, operations_type,
105
+ resizer_type > midpoint_stepper_type;
106
+
107
+ #endif // DOXYGEN_SKIP
108
+
109
+ typedef unsigned short order_type;
110
+ static const order_type order_value = stepper_base_type::order_value;
111
+ static const order_type stepper_order_value =
112
+ stepper_base_type::stepper_order_value;
113
+ static const order_type error_order_value =
114
+ stepper_base_type::error_order_value;
115
+
116
+ const static size_t m_k_max = ( order_value - 2 ) / 2;
117
+
118
+ extrapolation_stepper( const algebra_type &algebra = algebra_type() )
119
+ : stepper_base_type( algebra ), m_interval_sequence( m_k_max + 1 ),
120
+ m_coeff( m_k_max + 1 ), m_table( m_k_max )
121
+ {
122
+ for ( unsigned short i = 0; i < m_k_max + 1; i++ )
123
+ {
124
+ m_interval_sequence[i] = 2 * ( i + 1 );
125
+ m_coeff[i].resize( i );
126
+ for ( size_t k = 0; k < i; ++k )
127
+ {
128
+ const value_type r =
129
+ static_cast< value_type >( m_interval_sequence[i] ) /
130
+ static_cast< value_type >( m_interval_sequence[k] );
131
+ m_coeff[i][k] =
132
+ static_cast< value_type >( 1 ) /
133
+ ( r * r - static_cast< value_type >(
134
+ 1 ) ); // coefficients for extrapolation
135
+ }
136
+ }
137
+ }
138
+
139
+ template < class System, class StateIn, class DerivIn, class StateOut,
140
+ class Err >
141
+ void do_step_impl( System system, const StateIn &in, const DerivIn &dxdt,
142
+ time_type t, StateOut &out, time_type dt, Err &xerr )
143
+ {
144
+ // std::cout << "dt: " << dt << std::endl;
145
+ // normal step
146
+ do_step_impl( system, in, dxdt, t, out, dt );
147
+
148
+ static const value_type val1( 1.0 );
149
+ // additionally, perform the error calculation
150
+ stepper_base_type::m_algebra.for_each3(
151
+ xerr, out, m_table[0].m_v,
152
+ typename operations_type::template scale_sum2<
153
+ value_type, value_type >( val1, -val1 ) );
154
+ }
155
+
156
+ template < class System, class StateInOut, class DerivIn, class Err >
157
+ void do_step_impl_io( System system, StateInOut &inout, const DerivIn &dxdt,
158
+ time_type t, time_type dt, Err &xerr )
159
+ {
160
+ // normal step
161
+ do_step_impl_io( system, inout, dxdt, t, dt );
162
+
163
+ static const value_type val1( 1.0 );
164
+ // additionally, perform the error calculation
165
+ stepper_base_type::m_algebra.for_each3(
166
+ xerr, inout, m_table[0].m_v,
167
+ typename operations_type::template scale_sum2<
168
+ value_type, value_type >( val1, -val1 ) );
169
+ }
170
+
171
+ template < class System, class StateIn, class DerivIn, class StateOut >
172
+ void do_step_impl( System system, const StateIn &in, const DerivIn &dxdt,
173
+ time_type t, StateOut &out, time_type dt )
174
+ {
175
+ m_resizer.adjust_size(in, [this](auto&& arg) { return this->resize_impl<StateIn>(std::forward<decltype(arg)>(arg)); });
176
+ size_t k = 0;
177
+ m_midpoint.set_steps( m_interval_sequence[k] );
178
+ m_midpoint.do_step( system, in, dxdt, t, out, dt );
179
+ for ( k = 1; k <= m_k_max; ++k )
180
+ {
181
+ m_midpoint.set_steps( m_interval_sequence[k] );
182
+ m_midpoint.do_step( system, in, dxdt, t, m_table[k - 1].m_v, dt );
183
+ extrapolate( k, m_table, m_coeff, out );
184
+ }
185
+ }
186
+
187
+ template < class System, class StateInOut, class DerivIn >
188
+ void do_step_impl_io( System system, StateInOut &inout, const DerivIn &dxdt,
189
+ time_type t, time_type dt )
190
+ {
191
+ // special care for inout
192
+ m_xout_resizer.adjust_size(inout, [this](auto&& arg) { return this->resize_m_xout<StateInOut>(std::forward<decltype(arg)>(arg)); });
193
+ do_step_impl( system, inout, dxdt, t, m_xout.m_v, dt );
194
+ boost::numeric::odeint::copy( m_xout.m_v, inout );
195
+ }
196
+
197
+ template < class System, class StateInOut, class DerivIn >
198
+ void do_step_dxdt_impl( System system, StateInOut &x, const DerivIn &dxdt,
199
+ time_type t, time_type dt )
200
+ {
201
+ do_step_impl_io( system , x , dxdt , t , dt );
202
+ }
203
+
204
+ template < class System, class StateIn, class DerivIn, class StateOut >
205
+ void do_step_dxdt_impl( System system, const StateIn &in,
206
+ const DerivIn &dxdt, time_type t, StateOut &out,
207
+ time_type dt )
208
+ {
209
+ do_step_impl( system , in , dxdt , t , out , dt );
210
+ }
211
+
212
+
213
+ template < class StateIn > void adjust_size( const StateIn &x )
214
+ {
215
+ resize_impl( x );
216
+ m_midpoint.adjust_size( x );
217
+ }
218
+
219
+ private:
220
+ template < class StateIn > bool resize_impl( const StateIn &x )
221
+ {
222
+ bool resized( false );
223
+ for ( size_t i = 0; i < m_k_max; ++i )
224
+ resized |= adjust_size_by_resizeability(
225
+ m_table[i], x, typename is_resizeable< state_type >::type() );
226
+ return resized;
227
+ }
228
+
229
+ template < class StateIn > bool resize_m_xout( const StateIn &x )
230
+ {
231
+ return adjust_size_by_resizeability(
232
+ m_xout, x, typename is_resizeable< state_type >::type() );
233
+ }
234
+
235
+ template < class StateInOut >
236
+ void extrapolate( size_t k, state_table_type &table,
237
+ const value_matrix &coeff, StateInOut &xest )
238
+ /* polynomial extrapolation, see http://www.nr.com/webnotes/nr3web21.pdf
239
+ uses the obtained intermediate results to extrapolate to dt->0
240
+ */
241
+ {
242
+ static const value_type val1 = static_cast< value_type >( 1.0 );
243
+
244
+ for ( int j = k - 1; j > 0; --j )
245
+ {
246
+ stepper_base_type::m_algebra.for_each3(
247
+ table[j - 1].m_v, table[j].m_v, table[j - 1].m_v,
248
+ typename operations_type::template scale_sum2<
249
+ value_type, value_type >( val1 + coeff[k][j],
250
+ -coeff[k][j] ) );
251
+ }
252
+ stepper_base_type::m_algebra.for_each3(
253
+ xest, table[0].m_v, xest,
254
+ typename operations_type::template scale_sum2<
255
+ value_type, value_type >( val1 + coeff[k][0], -coeff[k][0] ) );
256
+ }
257
+
258
+ private:
259
+ midpoint_stepper_type m_midpoint;
260
+
261
+ resizer_type m_resizer;
262
+ resizer_type m_xout_resizer;
263
+
264
+ int_vector m_interval_sequence; // stores the successive interval counts
265
+ value_matrix m_coeff;
266
+
267
+ wrapped_state_type m_xout;
268
+ state_table_type m_table; // sequence of states for extrapolation
269
+ };
270
+
271
+ /******** DOXYGEN *******/
272
+
273
+ /**
274
+ * \class extrapolation_stepper
275
+ * \brief Extrapolation stepper with configurable order, and error estimation.
276
+ *
277
+ * The extrapolation stepper is a stepper with error estimation and configurable
278
+ * order. The order is given as template parameter and needs to be an _odd_
279
+ * number. The stepper is based on several executions of the modified midpoint
280
+ * method and a Richardson extrapolation. This is essentially the same technique
281
+ * as for bulirsch_stoer, but without the variable order.
282
+ *
283
+ * \note The Order parameter has to be an even number greater 2.
284
+ */
285
+ }
286
+ }
287
+ }
288
+ #endif
@@ -0,0 +1,59 @@
1
+ /*
2
+ boost/numeric/odeint/stepper/detail/generation_controlled_adams_bashforth_moulton.hpp
3
+
4
+ [begin_description]
5
+ Spezialization of the generation functions for creation of the controlled adams bashforth moulton stepper.
6
+ [end_description]
7
+
8
+ Copyright 2017 Valentin Noah Hartmann
9
+
10
+ Distributed under the Boost Software License, Version 1.0.
11
+ (See accompanying file LICENSE_1_0.txt or
12
+ copy at http://www.boost.org/LICENSE_1_0.txt)
13
+ */
14
+
15
+ #ifndef GENERATION_CONTROLLED_ADAMS_BASHFORTH_MOULTON_HPP_INCLUDED
16
+ #define GENERATION_CONTROLLED_ADAMS_BASHFORTH_MOULTON_HPP_INCLUDED
17
+
18
+ #include <boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp>
19
+ #include <boost/numeric/odeint/stepper/controlled_adams_bashforth_moulton.hpp>
20
+ #include <boost/numeric/odeint/stepper/generation/make_controlled.hpp>
21
+
22
+ namespace boost {
23
+ namespace numeric {
24
+ namespace odeint {
25
+
26
+ template< size_t Steps, class State , class Value , class Deriv , class Time , class Algebra , class Operations , class Resizer >
27
+ struct get_controller< adaptive_adams_bashforth_moulton< Steps, State , Value , Deriv , Time , Algebra , Operations , Resizer > >
28
+ {
29
+ typedef adaptive_adams_bashforth_moulton<Steps, State, Value, Deriv, Time, Algebra, Operations, Resizer> stepper_type;
30
+ typedef controlled_adams_bashforth_moulton< stepper_type > type;
31
+ };
32
+
33
+ // controller factory for controlled_adams_bashforth_moulton
34
+ template< class Stepper >
35
+ struct controller_factory< Stepper , controlled_adams_bashforth_moulton< Stepper > >
36
+ {
37
+ typedef Stepper stepper_type;
38
+ typedef controlled_adams_bashforth_moulton< stepper_type > controller_type;
39
+ typedef typename controller_type::step_adjuster_type step_adjuster_type;
40
+ typedef typename stepper_type::value_type value_type;
41
+ typedef typename stepper_type::value_type time_type;
42
+
43
+ controller_type operator()( value_type abs_error , value_type rel_error , const stepper_type &stepper )
44
+ {
45
+ return controller_type(step_adjuster_type(abs_error, rel_error));
46
+ }
47
+
48
+ controller_type operator()( value_type abs_error , value_type rel_error ,
49
+ time_type max_dt, const stepper_type &stepper )
50
+ {
51
+ return controller_type( step_adjuster_type(abs_error, rel_error, max_dt));
52
+ }
53
+ };
54
+
55
+ }
56
+ }
57
+ }
58
+
59
+ #endif
@@ -0,0 +1,61 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/stepper/generation/generation_controlled_runge_kutta.hpp
4
+
5
+ [begin_description]
6
+ Specialization of the controller factory for the controlled_runge_kutta class.
7
+ [end_description]
8
+
9
+ Copyright 2011-2012 Karsten Ahnert
10
+ Copyright 2011-2012 Mario Mulansky
11
+
12
+ Distributed under the Boost Software License, Version 1.0.
13
+ (See accompanying file LICENSE_1_0.txt or
14
+ copy at http://www.boost.org/LICENSE_1_0.txt)
15
+ */
16
+
17
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_CONTROLLED_RUNGE_KUTTA_HPP_INCLUDED
19
+ #define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_CONTROLLED_RUNGE_KUTTA_HPP_INCLUDED
20
+
21
+ #include <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>
22
+ #include <boost/numeric/odeint/stepper/generation/make_controlled.hpp>
23
+
24
+
25
+ namespace boost {
26
+ namespace numeric {
27
+ namespace odeint {
28
+
29
+
30
+ // controller factory for controlled_runge_kutta
31
+ template< class Stepper >
32
+ struct controller_factory< Stepper , controlled_runge_kutta< Stepper > >
33
+ {
34
+ typedef Stepper stepper_type;
35
+ typedef controlled_runge_kutta< stepper_type > controller_type;
36
+ typedef typename controller_type::error_checker_type error_checker_type;
37
+ typedef typename controller_type::step_adjuster_type step_adjuster_type;
38
+ typedef typename stepper_type::value_type value_type;
39
+ typedef typename stepper_type::value_type time_type;
40
+
41
+ controller_type operator()( value_type abs_error , value_type rel_error , const stepper_type &stepper )
42
+ {
43
+ return controller_type( error_checker_type( abs_error , rel_error ) ,
44
+ step_adjuster_type() , stepper );
45
+ }
46
+
47
+ controller_type operator()( value_type abs_error , value_type rel_error ,
48
+ time_type max_dt, const stepper_type &stepper )
49
+ {
50
+ return controller_type( error_checker_type( abs_error , rel_error ) ,
51
+ step_adjuster_type(max_dt) , stepper );
52
+ }
53
+ };
54
+
55
+
56
+ } // odeint
57
+ } // numeric
58
+ } // boost
59
+
60
+
61
+ #endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_CONTROLLED_RUNGE_KUTTA_HPP_INCLUDED
@@ -0,0 +1,65 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/stepper/generation/generation_dense_output_runge_kutta.hpp
4
+
5
+ [begin_description]
6
+ Specialization of the controller factory for the dense_output_runge_kutta class.
7
+ [end_description]
8
+
9
+ Copyright 2011-2012 Karsten Ahnert
10
+ Copyright 2011-2012 Mario Mulansky
11
+
12
+ Distributed under the Boost Software License, Version 1.0.
13
+ (See accompanying file LICENSE_1_0.txt or
14
+ copy at http://www.boost.org/LICENSE_1_0.txt)
15
+ */
16
+
17
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_DENSE_OUTPUT_RUNGE_KUTTA_HPP_INCLUDED
19
+ #define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_DENSE_OUTPUT_RUNGE_KUTTA_HPP_INCLUDED
20
+
21
+ #include <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>
22
+ #include <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp>
23
+ #include <boost/numeric/odeint/stepper/generation/make_dense_output.hpp>
24
+
25
+ namespace boost {
26
+ namespace numeric {
27
+ namespace odeint {
28
+
29
+ // controller factory for controlled_runge_kutta
30
+ template< class Stepper >
31
+ struct dense_output_factory< Stepper , dense_output_runge_kutta< controlled_runge_kutta< Stepper > > >
32
+ {
33
+ typedef Stepper stepper_type;
34
+ typedef controlled_runge_kutta< stepper_type > controller_type;
35
+ typedef typename controller_type::error_checker_type error_checker_type;
36
+ typedef typename controller_type::step_adjuster_type step_adjuster_type;
37
+ typedef typename stepper_type::value_type value_type;
38
+ typedef typename stepper_type::time_type time_type;
39
+ typedef dense_output_runge_kutta< controller_type > dense_output_type;
40
+
41
+ dense_output_type operator()( value_type abs_error , value_type rel_error , const stepper_type &stepper )
42
+ {
43
+ return dense_output_type( controller_type( error_checker_type( abs_error , rel_error ) ,
44
+ step_adjuster_type() , stepper ) );
45
+ }
46
+
47
+ dense_output_type operator()( value_type abs_error , value_type rel_error ,
48
+ time_type max_dt , const stepper_type &stepper )
49
+ {
50
+ return dense_output_type(
51
+ controller_type( error_checker_type( abs_error , rel_error) ,
52
+ step_adjuster_type( max_dt ) , stepper ) );
53
+ }
54
+ };
55
+
56
+
57
+
58
+
59
+
60
+ } // odeint
61
+ } // numeric
62
+ } // boost
63
+
64
+
65
+ #endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_DENSE_OUTPUT_RUNGE_KUTTA_HPP_INCLUDED
@@ -0,0 +1,79 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/stepper/generation/generation_rosenbrock4.hpp
4
+
5
+ [begin_description]
6
+ Enable the factory functions for the controller and the dense output of the Rosenbrock4 method.
7
+ [end_description]
8
+
9
+ Copyright 2011-2012 Karsten Ahnert
10
+ Copyright 2011-2012 Mario Mulansky
11
+
12
+ Distributed under the Boost Software License, Version 1.0.
13
+ (See accompanying file LICENSE_1_0.txt or
14
+ copy at http://www.boost.org/LICENSE_1_0.txt)
15
+ */
16
+
17
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_ROSENBROCK4_HPP_INCLUDED
19
+ #define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_ROSENBROCK4_HPP_INCLUDED
20
+
21
+ #include <boost/numeric/odeint/stepper/rosenbrock4.hpp>
22
+ #include <boost/numeric/odeint/stepper/rosenbrock4_controller.hpp>
23
+ #include <boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp>
24
+
25
+
26
+ namespace boost {
27
+ namespace numeric {
28
+ namespace odeint {
29
+
30
+
31
+ template< class Value , class Coefficients , class Resize >
32
+ struct get_controller< rosenbrock4< Value , Coefficients , Resize > >
33
+ {
34
+ typedef rosenbrock4< Value , Coefficients , Resize > stepper_type;
35
+ typedef rosenbrock4_controller< stepper_type > type;
36
+ };
37
+
38
+
39
+
40
+ template< class Value , class Coefficients , class Resize >
41
+ struct get_dense_output< rosenbrock4< Value , Coefficients , Resize > >
42
+ {
43
+ typedef rosenbrock4< Value , Coefficients , Resize > stepper_type;
44
+ typedef rosenbrock4_controller< stepper_type > controller_type;
45
+ typedef rosenbrock4_dense_output< controller_type > type;
46
+ };
47
+
48
+
49
+
50
+ // controller factory for controlled_runge_kutta
51
+ template< class Stepper >
52
+ struct dense_output_factory< Stepper , rosenbrock4_dense_output< rosenbrock4_controller< Stepper > > >
53
+ {
54
+ typedef Stepper stepper_type;
55
+ typedef rosenbrock4_controller< stepper_type > controller_type;
56
+ typedef typename stepper_type::value_type value_type;
57
+ typedef typename stepper_type::time_type time_type;
58
+ typedef rosenbrock4_dense_output< controller_type > dense_output_type;
59
+
60
+ dense_output_type operator()( value_type abs_error , value_type rel_error , const stepper_type &stepper )
61
+ {
62
+ return dense_output_type( controller_type( abs_error , rel_error , stepper ) );
63
+ }
64
+
65
+ dense_output_type operator()( value_type abs_error , value_type rel_error ,
66
+ time_type max_dt, const stepper_type &stepper )
67
+ {
68
+ return dense_output_type( controller_type( abs_error , rel_error , max_dt , stepper ) );
69
+ }
70
+ };
71
+
72
+
73
+
74
+ } // odeint
75
+ } // numeric
76
+ } // boost
77
+
78
+
79
+ #endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_ROSENBROCK4_HPP_INCLUDED
@@ -0,0 +1,47 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/stepper/generation/generation_runge_kutta_cash_karp54.hpp
4
+
5
+ [begin_description]
6
+ Enable the factory functions for the controller and the dense output of the Runge-Kutta-Cash-Karp 54 method.
7
+ [end_description]
8
+
9
+ Copyright 2011 Karsten Ahnert
10
+ Copyright 2011 Mario Mulansky
11
+
12
+ Distributed under the Boost Software License, Version 1.0.
13
+ (See accompanying file LICENSE_1_0.txt or
14
+ copy at http://www.boost.org/LICENSE_1_0.txt)
15
+ */
16
+
17
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_CASH_KARP54_HPP_INCLUDED
19
+ #define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_CASH_KARP54_HPP_INCLUDED
20
+
21
+ #include <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>
22
+ #include <boost/numeric/odeint/stepper/runge_kutta_cash_karp54.hpp>
23
+ #include <boost/numeric/odeint/stepper/generation/make_controlled.hpp>
24
+
25
+
26
+ namespace boost {
27
+ namespace numeric {
28
+ namespace odeint {
29
+
30
+ // Specializations for runge_kutta_cash_karp54
31
+ template< class State , class Value , class Deriv , class Time , class Algebra , class Operations , class Resize >
32
+ struct get_controller< runge_kutta_cash_karp54< State , Value , Deriv , Time , Algebra , Operations , Resize > >
33
+ {
34
+ typedef runge_kutta_cash_karp54< State , Value , Deriv , Time , Algebra , Operations , Resize > stepper_type;
35
+ typedef controlled_runge_kutta< stepper_type > type;
36
+ };
37
+
38
+
39
+
40
+
41
+
42
+ } // odeint
43
+ } // numeric
44
+ } // boost
45
+
46
+
47
+ #endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_CASH_KARP54_HPP_INCLUDED
@@ -0,0 +1,48 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/stepper/generation/generation_runge_kutta_cash_karp54_classic.hpp
4
+
5
+ [begin_description]
6
+ Enable the factory functions for the controller and the dense output of the
7
+ Runge-Kutta-Cash-Karp 54 method with the classical implementation.
8
+ [end_description]
9
+
10
+ Copyright 2011 Karsten Ahnert
11
+ Copyright 2011 Mario Mulansky
12
+
13
+ Distributed under the Boost Software License, Version 1.0.
14
+ (See accompanying file LICENSE_1_0.txt or
15
+ copy at http://www.boost.org/LICENSE_1_0.txt)
16
+ */
17
+
18
+
19
+ #ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_CASH_KARP54_CLASSIC_HPP_INCLUDED
20
+ #define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_CASH_KARP54_CLASSIC_HPP_INCLUDED
21
+
22
+ #include <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>
23
+ #include <boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic.hpp>
24
+ #include <boost/numeric/odeint/stepper/generation/make_controlled.hpp>
25
+
26
+
27
+ namespace boost {
28
+ namespace numeric {
29
+ namespace odeint {
30
+
31
+
32
+ // Specializations for runge_kutta_cash_karp54
33
+ template< class State , class Value , class Deriv , class Time , class Algebra , class Operations , class Resize >
34
+ struct get_controller< runge_kutta_cash_karp54_classic< State , Value , Deriv , Time , Algebra , Operations , Resize > >
35
+ {
36
+ typedef runge_kutta_cash_karp54_classic< State , Value , Deriv , Time , Algebra , Operations , Resize > stepper_type;
37
+ typedef controlled_runge_kutta< stepper_type > type;
38
+ };
39
+
40
+
41
+
42
+
43
+ } // odeint
44
+ } // numeric
45
+ } // boost
46
+
47
+
48
+ #endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_CASH_KARP54_CLASSIC_HPP_INCLUDED