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,169 @@
1
+
2
+ /*
3
+ [auto_generated]
4
+ boost/numeric/odeint/iterator/n_step_time_iterator.hpp
5
+
6
+ [begin_description]
7
+ Iterator for iterating through the solution of an ODE with constant step size performing exactly n steps.
8
+ The dereferenced type contains also the time.
9
+ [end_description]
10
+
11
+ Copyright 2009-2013 Karsten Ahnert
12
+ Copyright 2009-2013 Mario Mulansky
13
+
14
+ Distributed under the Boost Software License, Version 1.0.
15
+ (See accompanying file LICENSE_1_0.txt or
16
+ copy at http://www.boost.org/LICENSE_1_0.txt)
17
+ */
18
+
19
+
20
+ #ifndef BOOST_NUMERIC_ODEINT_ITERATOR_N_STEP_TIME_ITERATOR_HPP_INCLUDED
21
+ #define BOOST_NUMERIC_ODEINT_ITERATOR_N_STEP_TIME_ITERATOR_HPP_INCLUDED
22
+
23
+
24
+ #include <boost/numeric/odeint/util/stepper_traits.hpp>
25
+ #include <boost/numeric/odeint/stepper/stepper_categories.hpp>
26
+ #include <boost/numeric/odeint/iterator/detail/ode_iterator_base.hpp>
27
+ #include <boost/numeric/odeint/iterator/impl/n_step_iterator_impl.hpp>
28
+
29
+
30
+ namespace boost {
31
+ namespace numeric {
32
+ namespace odeint {
33
+
34
+
35
+ /* use the n_step_iterator_impl with the right tags */
36
+ template< class Stepper , class System , class State
37
+ #ifndef DOXYGEN_SKIP
38
+ , class StepperTag = typename base_tag< typename traits::stepper_category< Stepper >::type >::type
39
+ #endif
40
+ >
41
+ class n_step_time_iterator : public n_step_iterator_impl<
42
+ n_step_time_iterator< Stepper , System , State , StepperTag > ,
43
+ Stepper , System , State , detail::ode_state_time_iterator_tag , StepperTag
44
+ >
45
+ {
46
+ typedef typename traits::time_type< Stepper >::type time_type;
47
+ typedef n_step_time_iterator< Stepper , System , State , StepperTag > iterator_type;
48
+
49
+ public:
50
+ n_step_time_iterator( Stepper stepper , System sys , State &s , time_type t , time_type dt , size_t num_of_steps )
51
+ : n_step_iterator_impl< iterator_type , Stepper , System , State , detail::ode_state_time_iterator_tag , StepperTag >( stepper , sys , s , t , dt , num_of_steps )
52
+ {}
53
+
54
+ n_step_time_iterator( Stepper stepper , System sys , State &s )
55
+ : n_step_iterator_impl< iterator_type , Stepper , System , State , detail::ode_state_time_iterator_tag , StepperTag >( stepper , sys , s )
56
+ {}
57
+ };
58
+
59
+ /* make functions */
60
+
61
+ template< class Stepper , class System , class State >
62
+ n_step_time_iterator< Stepper , System, State > make_n_step_time_iterator_begin(
63
+ Stepper stepper ,
64
+ System system ,
65
+ State &x ,
66
+ typename traits::time_type< Stepper >::type t ,
67
+ typename traits::time_type< Stepper >::type dt ,
68
+ size_t num_of_steps )
69
+ {
70
+ return n_step_time_iterator< Stepper , System , State >( stepper , system , x , t , dt , num_of_steps );
71
+ }
72
+
73
+ template< class Stepper , class System , class State >
74
+ n_step_time_iterator< Stepper , System , State > make_n_step_time_iterator_end(
75
+ Stepper stepper ,
76
+ System system ,
77
+ State &x )
78
+ {
79
+ return n_step_time_iterator< Stepper , System , State >( stepper , system , x );
80
+ }
81
+
82
+ template< class Stepper , class System , class State >
83
+ std::pair< n_step_time_iterator< Stepper , System , State > , n_step_time_iterator< Stepper , System , State > >
84
+ make_n_step_time_range(
85
+ Stepper stepper ,
86
+ System system ,
87
+ State &x ,
88
+ typename traits::time_type< Stepper >::type t ,
89
+ typename traits::time_type< Stepper >::type dt ,
90
+ size_t num_of_steps )
91
+ {
92
+ return std::make_pair(
93
+ n_step_time_iterator< Stepper , System , State >( stepper , system , x , t , dt , num_of_steps ) ,
94
+ n_step_time_iterator< Stepper , System , State >( stepper , system , x )
95
+ );
96
+ }
97
+
98
+
99
+ /**
100
+ * \class n_step_time_iterator
101
+ *
102
+ * \brief ODE Iterator with constant step size. The value type of this iterator is a std::pair containing state and time.
103
+ *
104
+ * Implements an iterator representing the solution of an ODE starting from t
105
+ * with n steps and a constant step size dt.
106
+ * After each iteration the iterator dereferences to a pair of state and time at the next
107
+ * time t+dt.
108
+ * This iterator can be used with Steppers and
109
+ * DenseOutputSteppers and it always makes use of the all the given steppers
110
+ * capabilities. A for_each over such an iterator range behaves similar to
111
+ * the integrate_n_steps routine.
112
+ *
113
+ * n_step_time_iterator is a model of single-pass iterator.
114
+ *
115
+ * The value type of this iterator is pair of state and time.
116
+ *
117
+ * \tparam Stepper The stepper type which should be used during the iteration.
118
+ * \tparam System The type of the system function (ODE) which should be solved.
119
+ * \tparam State The state type of the ODE.
120
+ */
121
+
122
+
123
+ /**
124
+ * \fn make_n_step_time_iterator_begin( Stepper stepper , System system , State &x , typename traits::time_type< Stepper >::type t , typename traits::time_type< Stepper >::type dt , size_t num_of_steps )
125
+ *
126
+ * \brief Factory function for n_step_time_iterator. Constructs a begin iterator.
127
+ *
128
+ * \param stepper The stepper to use during the iteration.
129
+ * \param system The system function (ODE) to solve.
130
+ * \param x The initial state. const_step_iterator stores a reference of s and changes its value during the iteration.
131
+ * \param t The initial time.
132
+ * \param dt The initial time step.
133
+ * \param num_of_steps The number of steps to be executed.
134
+ * \returns The n-step iterator.
135
+ */
136
+
137
+
138
+ /**
139
+ * \fn make_n_step_time_iterator_end( Stepper stepper , System system , State &x )
140
+ * \brief Factory function for n_step_time_iterator. Constructs an end iterator.
141
+ *
142
+ * \param stepper The stepper to use during the iteration.
143
+ * \param system The system function (ODE) to solve.
144
+ * \param x The initial state. const_step_iterator stores a reference of s and changes its value during the iteration.
145
+ * \returns The const_step_iterator.
146
+ */
147
+
148
+
149
+ /**
150
+ * \fn make_n_step_time_range( Stepper stepper , System system , State &x , typename traits::time_type< Stepper >::type t , typename traits::time_type< Stepper >::type dt , size_t num_of_steps )
151
+ *
152
+ * \brief Factory function to construct a single pass range of n-step iterators. A range is here a pair
153
+ * of n_step_time_iterator.
154
+ *
155
+ * \param stepper The stepper to use during the iteration.
156
+ * \param system The system function (ODE) to solve.
157
+ * \param x The initial state. const_step_iterator store a reference of s and changes its value during the iteration.
158
+ * \param t The initial time.
159
+ * \param dt The initial time step.
160
+ * \param num_of_steps The number of steps to be executed.
161
+ * \returns The n-step range.
162
+ */
163
+
164
+
165
+ } // namespace odeint
166
+ } // namespace numeric
167
+ } // namespace boost
168
+
169
+ #endif // BOOST_NUMERIC_ODEINT_ITERATOR_CONST_N_STEP_TIME_ITERATOR_HPP_INCLUDED
@@ -0,0 +1,189 @@
1
+
2
+ /*
3
+ [auto_generated]
4
+ boost/numeric/odeint/iterator/times_iterator.hpp
5
+
6
+ [begin_description]
7
+ Iterator for iterating through the solution of an ODE with oscillator calls at times from a given sequence.
8
+ [end_description]
9
+
10
+ Copyright 2009-2013 Karsten Ahnert
11
+ Copyright 2009-2013 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_ITERATOR_TIMES_ITERATOR_HPP_INCLUDED
20
+ #define BOOST_NUMERIC_ODEINT_ITERATOR_TIMES_ITERATOR_HPP_INCLUDED
21
+
22
+
23
+ #include <boost/numeric/odeint/util/stepper_traits.hpp>
24
+ #include <boost/numeric/odeint/stepper/stepper_categories.hpp>
25
+ #include <boost/numeric/odeint/iterator/detail/ode_iterator_base.hpp>
26
+ #include <boost/numeric/odeint/iterator/impl/times_iterator_impl.hpp>
27
+
28
+
29
+ namespace boost {
30
+ namespace numeric {
31
+ namespace odeint {
32
+
33
+
34
+ /* use the times_iterator_impl with the right tags */
35
+ template< class Stepper , class System , class State , class TimeIterator
36
+ #ifndef DOXYGEN_SKIP
37
+ , class StepperTag = typename base_tag< typename traits::stepper_category< Stepper >::type >::type
38
+ #endif
39
+ >
40
+ class times_iterator : public times_iterator_impl<
41
+ times_iterator< Stepper , System , State , TimeIterator , StepperTag > ,
42
+ Stepper , System , State , TimeIterator , detail::ode_state_iterator_tag , StepperTag
43
+ >
44
+ {
45
+ typedef typename traits::time_type< Stepper >::type time_type;
46
+ typedef times_iterator< Stepper , System , State , TimeIterator , StepperTag > iterator_type;
47
+
48
+ public:
49
+ times_iterator( Stepper stepper , System sys , State &s ,
50
+ TimeIterator t_start , TimeIterator t_end , time_type dt )
51
+ : times_iterator_impl< iterator_type , Stepper , System , State , TimeIterator, detail::ode_state_iterator_tag , StepperTag >( stepper , sys , s , t_start , t_end , dt )
52
+ {}
53
+
54
+ times_iterator( Stepper stepper , System sys , State &s )
55
+ : times_iterator_impl< iterator_type , Stepper , System , State , TimeIterator , detail::ode_state_iterator_tag , StepperTag >( stepper , sys , s )
56
+ {}
57
+ };
58
+
59
+ /* make functions */
60
+
61
+ template< class Stepper , class System , class State , class TimeIterator >
62
+ times_iterator< Stepper , System, State , TimeIterator > make_times_iterator_begin(
63
+ Stepper stepper ,
64
+ System system ,
65
+ State &x ,
66
+ TimeIterator t_start ,
67
+ TimeIterator t_end ,
68
+ typename traits::time_type< Stepper >::type dt )
69
+ {
70
+ return times_iterator< Stepper , System , State , TimeIterator >( stepper , system , x , t_start , t_end , dt );
71
+ }
72
+
73
+ // ToDo: requires to specifically provide the TimeIterator template parameter, can this be improved?
74
+ template< class TimeIterator , class Stepper , class System , class State >
75
+ times_iterator< Stepper , System , State , TimeIterator > make_times_iterator_end(
76
+ Stepper stepper ,
77
+ System system ,
78
+ State &x )
79
+ //TimeIterator t_end )
80
+ {
81
+ return times_iterator< Stepper , System , State , TimeIterator >( stepper , system , x );
82
+ }
83
+
84
+ template< class Stepper , class System , class State , class TimeIterator >
85
+ std::pair< times_iterator< Stepper , System , State , TimeIterator > ,
86
+ times_iterator< Stepper , System , State , TimeIterator > >
87
+ make_times_range(
88
+ Stepper stepper ,
89
+ System system ,
90
+ State &x ,
91
+ TimeIterator t_start ,
92
+ TimeIterator t_end ,
93
+ typename traits::time_type< Stepper >::type dt )
94
+ {
95
+ return std::make_pair(
96
+ times_iterator< Stepper , System , State , TimeIterator >( stepper , system , x , t_start , t_end , dt ) ,
97
+ times_iterator< Stepper , System , State , TimeIterator >( stepper , system , x )
98
+ );
99
+ }
100
+
101
+
102
+ /**
103
+ * \class times_iterator
104
+ *
105
+ * \brief ODE Iterator with given evaluation points. The value type of this iterator is the state type of the stepper.
106
+ *
107
+ * Implements an iterator representing the solution of an ODE from *t_start
108
+ * to *t_end evaluated at time points given by the sequence t_start to t_end.
109
+ * t_start and t_end are iterators representing a sequence of time points
110
+ * where the solution of the ODE should be evaluated.
111
+ * After each iteration the iterator dereferences to the state x at the next
112
+ * time *t_start++ until t_end is reached.
113
+ * This iterator can be used with Steppers, ControlledSteppers and
114
+ * DenseOutputSteppers and it always makes use of the all the given steppers
115
+ * capabilities. A for_each over such an iterator range behaves similar to
116
+ * the integrate_times routine.
117
+ *
118
+ * times_iterator is a model of single-pass iterator.
119
+ *
120
+ * The value type of this iterator is the state type of the stepper. Hence one can only access the state and not the current time.
121
+ *
122
+ * \tparam Stepper The stepper type which should be used during the iteration.
123
+ * \tparam System The type of the system function (ODE) which should be solved.
124
+ * \tparam State The state type of the ODE.
125
+ * \tparam TimeIterator The iterator type for the sequence of time points.
126
+ */
127
+
128
+
129
+
130
+ /**
131
+ * \fn make_times_iterator_begin( Stepper stepper ,
132
+ System system ,
133
+ State &x ,
134
+ TimeIterator t_start ,
135
+ TimeIterator t_end ,
136
+ typename traits::time_type< Stepper >::type dt )
137
+ *
138
+ * \brief Factory function for times_iterator. Constructs a begin iterator.
139
+ *
140
+ * \param stepper The stepper to use during the iteration.
141
+ * \param system The system function (ODE) to solve.
142
+ * \param x The initial state. const_step_iterator stores a reference of s and changes its value during the iteration.
143
+ * \param t_start Begin iterator of the sequence of evaluation time points.
144
+ * \param t_end End iterator of the sequence of evaluation time points.
145
+ * \param dt The initial time step.
146
+ * \returns The times iterator.
147
+ */
148
+
149
+
150
+ /**
151
+ * \fn make_times_iterator_end( Stepper stepper , System system , State &x )
152
+ * \brief Factory function for times_iterator. Constructs an end iterator.
153
+ *
154
+ * \tparam TimesIterator The iterator type of the time sequence, must be specifically provided.
155
+ *
156
+ * \param stepper The stepper to use during the iteration.
157
+ * \param system The system function (ODE) to solve.
158
+ * \param x The initial state. const_step_iterator stores a reference of s and changes its value during the iteration.
159
+ * \returns The times iterator.
160
+ *
161
+ * This function needs the TimeIterator type specifically defined as a
162
+ * template parameter.
163
+ */
164
+
165
+
166
+ /**
167
+ * \fn make_times_range( Stepper stepper , System system , State &x ,
168
+ TimeIterator t_start ,
169
+ TimeIterator t_end ,
170
+ typename traits::time_type< Stepper >::type dt )
171
+ *
172
+ * \brief Factory function to construct a single pass range of times iterators. A range is here a pair
173
+ * of times_iterator.
174
+ *
175
+ * \param stepper The stepper to use during the iteration.
176
+ * \param system The system function (ODE) to solve.
177
+ * \param x The initial state. const_step_iterator store a reference of s and changes its value during the iteration.
178
+ * \param t_start Begin iterator of the sequence of evaluation time points.
179
+ * \param t_end End iterator of the sequence of evaluation time points.
180
+ * \param dt The initial time step.
181
+ * \returns The times iterator range.
182
+ */
183
+
184
+
185
+ } // namespace odeint
186
+ } // namespace numeric
187
+ } // namespace boost
188
+
189
+ #endif // BOOST_NUMERIC_ODEINT_ITERATOR_TIMES_ITERATOR_HPP_INCLUDED
@@ -0,0 +1,193 @@
1
+
2
+ /*
3
+ [auto_generated]
4
+ boost/numeric/odeint/iterator/times_time_iterator.hpp
5
+
6
+ [begin_description]
7
+ Iterator for iterating through the solution of an ODE with oscillator calls at times from a given sequence.
8
+ The dereferenced type contains also the time.
9
+ [end_description]
10
+
11
+ Copyright 2009-2013 Karsten Ahnert
12
+ Copyright 2009-2013 Mario Mulansky
13
+
14
+ Distributed under the Boost Software License, Version 1.0.
15
+ (See accompanying file LICENSE_1_0.txt or
16
+ copy at http://www.boost.org/LICENSE_1_0.txt)
17
+ */
18
+
19
+
20
+ #ifndef BOOST_NUMERIC_ODEINT_ITERATOR_TIMES_TIME_ITERATOR_HPP_INCLUDED
21
+ #define BOOST_NUMERIC_ODEINT_ITERATOR_TIMES_TIME_ITERATOR_HPP_INCLUDED
22
+
23
+
24
+ #include <boost/numeric/odeint/util/stepper_traits.hpp>
25
+ #include <boost/numeric/odeint/stepper/stepper_categories.hpp>
26
+ #include <boost/numeric/odeint/iterator/detail/ode_iterator_base.hpp>
27
+ #include <boost/numeric/odeint/iterator/impl/times_iterator_impl.hpp>
28
+
29
+
30
+ namespace boost {
31
+ namespace numeric {
32
+ namespace odeint {
33
+
34
+
35
+ /* use the times_iterator_impl with the right tags */
36
+ template< class Stepper , class System , class State , class TimeIterator
37
+ #ifndef DOXYGEN_SKIP
38
+ , class StepperTag = typename base_tag< typename traits::stepper_category< Stepper >::type >::type
39
+ #endif
40
+ >
41
+ class times_time_iterator : public times_iterator_impl<
42
+ times_time_iterator< Stepper , System , State , TimeIterator , StepperTag > ,
43
+ Stepper , System , State , TimeIterator , detail::ode_state_time_iterator_tag , StepperTag
44
+ >
45
+ {
46
+ typedef typename traits::time_type< Stepper >::type time_type;
47
+ typedef times_time_iterator< Stepper , System , State , TimeIterator , StepperTag > iterator_type;
48
+
49
+ public:
50
+ times_time_iterator( Stepper stepper , System sys , State &s ,
51
+ TimeIterator t_start , TimeIterator t_end , time_type dt )
52
+ : times_iterator_impl< iterator_type , Stepper , System , State , TimeIterator, detail::ode_state_time_iterator_tag , StepperTag >( stepper , sys , s , t_start , t_end , dt )
53
+ {}
54
+
55
+ times_time_iterator( Stepper stepper , System sys , State &s )
56
+ : times_iterator_impl< iterator_type , Stepper , System , State , TimeIterator , detail::ode_state_time_iterator_tag , StepperTag >( stepper , sys , s )
57
+ {}
58
+ };
59
+
60
+ /* make functions */
61
+
62
+ template< class Stepper , class System , class State , class TimeIterator >
63
+ times_time_iterator< Stepper , System, State , TimeIterator > make_times_time_iterator_begin(
64
+ Stepper stepper ,
65
+ System system ,
66
+ State &x ,
67
+ TimeIterator t_start ,
68
+ TimeIterator t_end ,
69
+ typename traits::time_type< Stepper >::type dt )
70
+ {
71
+ return times_time_iterator< Stepper , System , State , TimeIterator >( stepper , system , x , t_start , t_end , dt );
72
+ }
73
+
74
+ // ToDo: requires to specifically provide the TimeIterator template parameter, can this be improved?
75
+ template< class TimeIterator , class Stepper , class System , class State >
76
+ times_time_iterator< Stepper , System , State , TimeIterator > make_times_time_iterator_end(
77
+ Stepper stepper ,
78
+ System system ,
79
+ State &x )
80
+ //TimeIterator t_end )
81
+ {
82
+ return times_time_iterator< Stepper , System , State , TimeIterator >( stepper , system , x );
83
+ }
84
+
85
+ template< class Stepper , class System , class State , class TimeIterator >
86
+ std::pair< times_time_iterator< Stepper , System , State , TimeIterator > ,
87
+ times_time_iterator< Stepper , System , State , TimeIterator > >
88
+ make_times_time_range(
89
+ Stepper stepper ,
90
+ System system ,
91
+ State &x ,
92
+ TimeIterator t_start ,
93
+ TimeIterator t_end ,
94
+ typename traits::time_type< Stepper >::type dt )
95
+ {
96
+ return std::make_pair(
97
+ times_time_iterator< Stepper , System , State , TimeIterator >( stepper , system , x , t_start , t_end , dt ) ,
98
+ times_time_iterator< Stepper , System , State , TimeIterator >( stepper , system , x )
99
+ );
100
+ }
101
+
102
+
103
+
104
+
105
+
106
+ /**
107
+ * \class times_time_iterator
108
+ *
109
+ * \brief ODE Iterator with given evaluation points. The value type of this iterator is a std::pair containing state and time.
110
+ *
111
+ * Implements an iterator representing the solution of an ODE from *t_start
112
+ * to *t_end evaluated at time points given by the sequence t_start to t_end.
113
+ * t_start and t_end are iterators representing a sequence of time points
114
+ * where the solution of the ODE should be evaluated.
115
+ * After each iteration the iterator dereferences to a pair with the state
116
+ * and the time at the next evaluation point *t_start++ until t_end is reached.
117
+ * This iterator can be used with Steppers, ControlledSteppers and
118
+ * DenseOutputSteppers and it always makes use of the all the given steppers
119
+ * capabilities. A for_each over such an iterator range behaves similar to
120
+ * the integrate_times routine.
121
+ *
122
+ * times_time_iterator is a model of single-pass iterator.
123
+ *
124
+ * The value type of this iterator is a pair of state and time type.
125
+ *
126
+ * \tparam Stepper The stepper type which should be used during the iteration.
127
+ * \tparam System The type of the system function (ODE) which should be solved.
128
+ * \tparam State The state type of the ODE.
129
+ * \tparam TimeIterator The iterator type for the sequence of time points.
130
+ */
131
+
132
+
133
+
134
+ /**
135
+ * \fn make_times_time_iterator_begin( Stepper stepper ,
136
+ System system ,
137
+ State &x ,
138
+ TimeIterator t_start ,
139
+ TimeIterator t_end ,
140
+ typename traits::time_type< Stepper >::type dt )
141
+ *
142
+ * \brief Factory function for times_time_iterator. Constructs a begin iterator.
143
+ *
144
+ * \param stepper The stepper to use during the iteration.
145
+ * \param system The system function (ODE) to solve.
146
+ * \param x The initial state. const_step_iterator stores a reference of s and changes its value during the iteration.
147
+ * \param t_start Begin iterator of the sequence of evaluation time points.
148
+ * \param t_end End iterator of the sequence of evaluation time points.
149
+ * \param dt The initial time step.
150
+ * \returns The times_time iterator.
151
+ */
152
+
153
+
154
+ /**
155
+ * \fn make_times_time_iterator_end( Stepper stepper , System system , State &x )
156
+ * \brief Factory function for times_time_iterator. Constructs an end iterator.
157
+ *
158
+ * \tparam TimesIterator The iterator type of the time sequence, must be specifically provided.
159
+ *
160
+ * \param stepper The stepper to use during the iteration.
161
+ * \param system The system function (ODE) to solve.
162
+ * \param x The initial state. const_step_iterator stores a reference of s and changes its value during the iteration.
163
+ * \returns The times_time iterator.
164
+ *
165
+ * This function needs the TimeIterator type specifically defined as a
166
+ * template parameter.
167
+ */
168
+
169
+
170
+ /**
171
+ * \fn make_times_time_range( Stepper stepper , System system , State &x ,
172
+ TimeIterator t_start ,
173
+ TimeIterator t_end ,
174
+ typename traits::time_type< Stepper >::type dt )
175
+ *
176
+ * \brief Factory function to construct a single pass range of times_time iterators. A range is here a pair
177
+ * of times_iterator.
178
+ *
179
+ * \param stepper The stepper to use during the iteration.
180
+ * \param system The system function (ODE) to solve.
181
+ * \param x The initial state. const_step_iterator store a reference of s and changes its value during the iteration.
182
+ * \param t_start Begin iterator of the sequence of evaluation time points.
183
+ * \param t_end End iterator of the sequence of evaluation time points.
184
+ * \param dt The initial time step.
185
+ * \returns The times_time iterator range.
186
+ */
187
+
188
+
189
+ } // namespace odeint
190
+ } // namespace numeric
191
+ } // namespace boost
192
+
193
+ #endif // BOOST_NUMERIC_ODEINT_ITERATOR_TIMES_TIME_ITERATOR_HPP_INCLUDED