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,415 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/stepper/base/explicit_stepper_base.hpp
4
+
5
+ [begin_description]
6
+ Base class for all explicit Runge Kutta steppers.
7
+ [end_description]
8
+
9
+ Copyright 2010-2013 Karsten Ahnert
10
+ Copyright 2010-2012 Mario Mulansky
11
+ Copyright 2012 Christoph Koke
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_BASE_EXPLICIT_STEPPER_BASE_HPP_INCLUDED
20
+ #define BOOST_NUMERIC_ODEINT_STEPPER_BASE_EXPLICIT_STEPPER_BASE_HPP_INCLUDED
21
+
22
+
23
+ #include <boost/utility/enable_if.hpp>
24
+ #include <boost/type_traits/is_same.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/util/state_wrapper.hpp>
30
+ #include <boost/numeric/odeint/util/resizer.hpp>
31
+ #include <boost/numeric/odeint/util/is_resizeable.hpp>
32
+
33
+ #include <boost/numeric/odeint/stepper/stepper_categories.hpp>
34
+
35
+ #include <boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp>
36
+
37
+ namespace boost {
38
+ namespace numeric {
39
+ namespace odeint {
40
+
41
+ /*
42
+ * base class for explicit steppers
43
+ * models the stepper concept
44
+ *
45
+ * this class provides the following overloads
46
+ * do_step( sys , x , t , dt )
47
+ * do_step( sys , in , t , out , dt )
48
+ * do_step( sys , x , dxdt_in , t , dt )
49
+ * do_step( sys , in , dxdt_in , t , out , dt )
50
+ */
51
+
52
+ template<
53
+ class Stepper ,
54
+ unsigned short Order ,
55
+ class State ,
56
+ class Value ,
57
+ class Deriv ,
58
+ class Time ,
59
+ class Algebra ,
60
+ class Operations ,
61
+ class Resizer
62
+ >
63
+ class explicit_stepper_base : public algebra_stepper_base< Algebra , Operations >
64
+ {
65
+ public:
66
+
67
+ #ifndef DOXYGEN_SKIP
68
+ typedef explicit_stepper_base< Stepper , Order , State , Value , Deriv , Time , Algebra , Operations , Resizer > internal_stepper_base_type;
69
+ #endif // DOXYGEN_SKIP
70
+
71
+
72
+ typedef State state_type;
73
+ typedef Value value_type;
74
+ typedef Deriv deriv_type;
75
+ typedef Time time_type;
76
+ typedef Resizer resizer_type;
77
+ typedef Stepper stepper_type;
78
+ typedef stepper_tag stepper_category;
79
+ typedef algebra_stepper_base< Algebra , Operations > algebra_stepper_base_type;
80
+ typedef typename algebra_stepper_base_type::algebra_type algebra_type;
81
+ typedef typename algebra_stepper_base_type::operations_type operations_type;
82
+ typedef unsigned short order_type;
83
+
84
+ #ifndef DOXYGEN_SKIP
85
+ typedef state_wrapper< state_type > wrapped_state_type;
86
+ typedef state_wrapper< deriv_type > wrapped_deriv_type;
87
+ #endif // DOXYGEN_SKIP
88
+
89
+
90
+ static const order_type order_value = Order;
91
+
92
+
93
+ explicit_stepper_base( const algebra_type &algebra = algebra_type() )
94
+ : algebra_stepper_base_type( algebra )
95
+ { }
96
+
97
+ /**
98
+ * \return Returns the order of the stepper.
99
+ */
100
+ order_type order( void ) const
101
+ {
102
+ return order_value;
103
+ }
104
+
105
+
106
+ /*
107
+ * Version 1 : do_step( sys , x , t , dt )
108
+ *
109
+ * the two overloads are needed in order to solve the forwarding problem
110
+ */
111
+ template< class System , class StateInOut >
112
+ void do_step( System system , StateInOut &x , time_type t , time_type dt )
113
+ {
114
+ do_step_v1( system , x , t , dt );
115
+ }
116
+
117
+ /**
118
+ * \brief Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut.
119
+ */
120
+ template< class System , class StateInOut >
121
+ void do_step( System system , const StateInOut &x , time_type t , time_type dt )
122
+ {
123
+ do_step_v1( system , x , t , dt );
124
+ }
125
+
126
+ /*
127
+ * Version 2 : do_step( sys , x , dxdt , t , dt )
128
+ *
129
+ * this version does not solve the forwarding problem, boost.range can not be used
130
+ *
131
+ * the disable is needed to avoid ambiguous overloads if state_type = time_type
132
+ */
133
+ template< class System , class StateInOut , class DerivIn >
134
+ typename boost::disable_if< boost::is_same< DerivIn , time_type > , void >::type
135
+ do_step( System system , StateInOut &x , const DerivIn &dxdt , time_type t , time_type dt )
136
+ {
137
+ this->stepper().do_step_impl( system , x , dxdt , t , x , dt );
138
+ }
139
+
140
+
141
+ /*
142
+ * named Version 2: do_step_dxdt_impl( sys , in , dxdt , t , dt )
143
+ *
144
+ * this version is needed when this stepper is used for initializing
145
+ * multistep stepper like adams-bashforth. Hence we provide an explicitely
146
+ * named version that is not disabled. Meant for internal use only.
147
+ */
148
+ template < class System, class StateInOut, class DerivIn >
149
+ void do_step_dxdt_impl( System system, StateInOut &x, const DerivIn &dxdt,
150
+ time_type t, time_type dt )
151
+ {
152
+ this->stepper().do_step_impl( system , x , dxdt , t , x , dt );
153
+ }
154
+
155
+
156
+ /*
157
+ * Version 3 : do_step( sys , in , t , out , dt )
158
+ *
159
+ * this version does not solve the forwarding problem, boost.range can not be used
160
+ */
161
+ template< class System , class StateIn , class StateOut >
162
+ void do_step( System system , const StateIn &in , time_type t , StateOut &out , time_type dt )
163
+ {
164
+ typename odeint::unwrap_reference< System >::type &sys = system;
165
+ m_resizer.adjust_size(in, [this](auto&& arg) { return this->resize_impl<StateIn>(std::forward<decltype(arg)>(arg)); });
166
+ sys( in , m_dxdt.m_v ,t );
167
+ this->stepper().do_step_impl( system , in , m_dxdt.m_v , t , out , dt );
168
+ }
169
+
170
+
171
+ /*
172
+ * Version 4 : do_step( sys , in , dxdt , t , out , dt )
173
+ *
174
+ * this version does not solve the forwarding problem, boost.range can not be used
175
+ */
176
+ template< class System , class StateIn , class DerivIn , class StateOut >
177
+ void do_step( System system , const StateIn &in , const DerivIn &dxdt , time_type t , StateOut &out , time_type dt )
178
+ {
179
+ this->stepper().do_step_impl( system , in , dxdt , t , out , dt );
180
+ }
181
+
182
+
183
+ /*
184
+ * named Version 4: do_step_dxdt_impl( sys , in , dxdt , t , out, dt )
185
+ *
186
+ * this version is needed when this stepper is used for initializing
187
+ * multistep stepper like adams-bashforth. Hence we provide an explicitely
188
+ * named version. Meant for internal use only.
189
+ */
190
+ template < class System, class StateIn, class DerivIn, class StateOut >
191
+ void do_step_dxdt_impl( System system, const StateIn &in,
192
+ const DerivIn &dxdt, time_type t, StateOut &out,
193
+ time_type dt )
194
+ {
195
+ this->stepper().do_step_impl( system , in , dxdt , t , out , dt );
196
+ }
197
+
198
+ template< class StateIn >
199
+ void adjust_size( const StateIn &x )
200
+ {
201
+ resize_impl( x );
202
+ }
203
+
204
+ private:
205
+
206
+ stepper_type& stepper( void )
207
+ {
208
+ return *static_cast< stepper_type* >( this );
209
+ }
210
+
211
+ const stepper_type& stepper( void ) const
212
+ {
213
+ return *static_cast< const stepper_type* >( this );
214
+ }
215
+
216
+
217
+ template< class StateIn >
218
+ bool resize_impl( const StateIn &x )
219
+ {
220
+ return adjust_size_by_resizeability( m_dxdt , x , typename is_resizeable<deriv_type>::type() );
221
+ }
222
+
223
+
224
+ template< class System , class StateInOut >
225
+ void do_step_v1( System system , StateInOut &x , time_type t , time_type dt )
226
+ {
227
+ typename odeint::unwrap_reference< System >::type &sys = system;
228
+ m_resizer.adjust_size(x, [this](auto&& arg) { return this->resize_impl<StateInOut>(std::forward<decltype(arg)>(arg)); });
229
+ sys( x , m_dxdt.m_v ,t );
230
+ this->stepper().do_step_impl( system , x , m_dxdt.m_v , t , x , dt );
231
+ }
232
+
233
+
234
+ resizer_type m_resizer;
235
+
236
+ protected:
237
+
238
+ wrapped_deriv_type m_dxdt;
239
+ };
240
+
241
+
242
+ /******* DOXYGEN *********/
243
+
244
+ /**
245
+ * \class explicit_stepper_base
246
+ * \brief Base class for explicit steppers without step size control and without dense output.
247
+ *
248
+ * This class serves as the base class for all explicit steppers with algebra and operations.
249
+ * Step size control and error estimation as well as dense output are not provided. explicit_stepper_base
250
+ * is used as the interface in a CRTP (currently recurring template pattern). In order to work
251
+ * correctly the parent class needs to have a method `do_step_impl( system , in , dxdt_in , t , out , dt )`.
252
+ * This is method is used by explicit_stepper_base. explicit_stepper_base derives from
253
+ * algebra_stepper_base. An example how this class can be used is
254
+ *
255
+ * \code
256
+ * template< class State , class Value , class Deriv , class Time , class Algebra , class Operations , class Resizer >
257
+ * class custom_euler : public explicit_stepper_base< 1 , State , Value , Deriv , Time , Algebra , Operations , Resizer >
258
+ * {
259
+ * public:
260
+ *
261
+ * typedef explicit_stepper_base< 1 , State , Value , Deriv , Time , Algebra , Operations , Resizer > base_type;
262
+ *
263
+ * custom_euler( const Algebra &algebra = Algebra() ) { }
264
+ *
265
+ * template< class Sys , class StateIn , class DerivIn , class StateOut >
266
+ * void do_step_impl( Sys sys , const StateIn &in , const DerivIn &dxdt , Time t , StateOut &out , Time dt )
267
+ * {
268
+ * m_algebra.for_each3( out , in , dxdt , Operations::scale_sum2< Value , Time >( 1.0 , dt );
269
+ * }
270
+ *
271
+ * template< class State >
272
+ * void adjust_size( const State &x )
273
+ * {
274
+ * base_type::adjust_size( x );
275
+ * }
276
+ * };
277
+ * \endcode
278
+ *
279
+ * For the Stepper concept only the `do_step( sys , x , t , dt )` needs to be implemented. But this class
280
+ * provides additional `do_step` variants since the stepper is explicit. These methods can be used to increase
281
+ * the performance in some situation, for example if one needs to analyze `dxdt` during each step. In this case
282
+ * one can use
283
+ *
284
+ * \code
285
+ * sys( x , dxdt , t );
286
+ * stepper.do_step( sys , x , dxdt , t , dt ); // the value of dxdt is used here
287
+ * t += dt;
288
+ * \endcode
289
+ *
290
+ * In detail explicit_stepper_base provides the following `do_step` variants
291
+ * - `do_step( sys , x , t , dt )` - The classical `do_step` method needed to fulfill the Stepper concept. The state is updated in-place.
292
+ * A type modelling a Boost.Range can be used for x.
293
+ * - `do_step( sys , in , t , out , dt )` - This method updates the state out-of-place, hence the result of the step is stored in `out`.
294
+ * - `do_step( sys , x , dxdt , t , dt )` - This method updates the state in-place, but the derivative at the point `t` must be
295
+ * explicitly passed in `dxdt`. For an example see the code snippet above.
296
+ * - `do_step( sys , in , dxdt , t , out , dt )` - This method update the state out-of-place and expects that the derivative at the point
297
+ * `t` is explicitly passed in `dxdt`. It is a combination of the two `do_step` methods above.
298
+ *
299
+ * \note The system is always passed as value, which might result in poor performance if it contains data. In this case it can be used with `boost::ref`
300
+ * or `std::ref`, for example `stepper.do_step( boost::ref( sys ) , x , t , dt );`
301
+ *
302
+ * \note The time `t` is not advanced by the stepper. This has to done manually, or by the appropriate `integrate` routines or `iterator`s.
303
+ *
304
+ * \tparam Stepper The stepper on which this class should work. It is used via CRTP, hence explicit_stepper_base
305
+ * provides the interface for the Stepper.
306
+ * \tparam Order The order of the stepper.
307
+ * \tparam State The state type for the stepper.
308
+ * \tparam Value The value type for the stepper. This should be a floating point type, like float,
309
+ * double, or a multiprecision type. It must not necessary be the value_type of the State. For example
310
+ * the State can be a `vector< complex< double > >` in this case the Value must be double.
311
+ * The default value is double.
312
+ * \tparam Deriv The type representing time derivatives of the state type. It is usually the same type as the
313
+ * state type, only if used with Boost.Units both types differ.
314
+ * \tparam Time The type representing the time. Usually the same type as the value type. When Boost.Units is
315
+ * used, this type has usually a unit.
316
+ * \tparam Algebra The algebra type which must fulfill the Algebra Concept.
317
+ * \tparam Operations The type for the operations which must fulfill the Operations Concept.
318
+ * \tparam Resizer The resizer policy class.
319
+ */
320
+
321
+
322
+ /**
323
+ * \fn explicit_stepper_base::explicit_stepper_base( const algebra_type &algebra )
324
+ * \brief Constructs a explicit_stepper_base class. This constructor can be used as a default
325
+ * constructor if the algebra has a default constructor.
326
+ * \param algebra A copy of algebra is made and stored inside explicit_stepper_base.
327
+ */
328
+
329
+ /**
330
+ * \fn explicit_stepper_base::order_type order( void ) const
331
+ * \return Returns the order of the stepper.
332
+ */
333
+
334
+ /**
335
+ * \fn explicit_stepper_base::do_step( System system , StateInOut &x , time_type t , time_type dt )
336
+ * \brief This method performs one step. It transforms the result in-place.
337
+ *
338
+ * \param system The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the
339
+ * Simple System concept.
340
+ * \param x The state of the ODE which should be solved. After calling do_step the result is updated in x.
341
+ * \param t The value of the time, at which the step should be performed.
342
+ * \param dt The step size.
343
+ */
344
+
345
+
346
+ /**
347
+ * \fn explicit_stepper_base::do_step( System system , StateInOut &x , const DerivIn &dxdt , time_type t , time_type dt )
348
+
349
+ * \brief The method performs one step. Additionally to the other method
350
+ * the derivative of x is also passed to this method. It is supposed to be used in the following way:
351
+ *
352
+ * \code
353
+ * sys( x , dxdt , t );
354
+ * stepper.do_step( sys , x , dxdt , t , dt );
355
+ * \endcode
356
+ *
357
+ * The result is updated in place in x. This method is disabled if Time and Deriv are of the same type. In this
358
+ * case the method could not be distinguished from other `do_step` versions.
359
+ *
360
+ * \note This method does not solve the forwarding problem.
361
+ *
362
+ * \param system The system function to solve, hence the r.h.s. of the ODE. It must fulfill the
363
+ * Simple System concept.
364
+ * \param x The state of the ODE which should be solved. After calling do_step the result is updated in x.
365
+ * \param dxdt The derivative of x at t.
366
+ * \param t The value of the time, at which the step should be performed.
367
+ * \param dt The step size.
368
+ */
369
+
370
+ /**
371
+ * \fn void explicit_stepper_base::do_step( System system , const StateIn &in , time_type t , StateOut &out , time_type dt )
372
+ * \brief The method performs one step. The state of the ODE is updated out-of-place.
373
+ * \note This method does not solve the forwarding problem.
374
+ *
375
+ * \param system The system function to solve, hence the r.h.s. of the ODE. It must fulfill the
376
+ * Simple System concept.
377
+ * \param in The state of the ODE which should be solved. in is not modified in this method
378
+ * \param t The value of the time, at which the step should be performed.
379
+ * \param out The result of the step is written in out.
380
+ * \param dt The step size.
381
+ */
382
+
383
+ /**
384
+ * \fn void explicit_stepper_base::do_step( System system , const StateIn &in , const DerivIn &dxdt , time_type t , StateOut &out , time_type dt )
385
+ * \brief The method performs one step. The state of the ODE is updated out-of-place.
386
+ * Furthermore, the derivative of x at t is passed to the stepper.
387
+ * It is supposed to be used in the following way:
388
+ *
389
+ * \code
390
+ * sys( in , dxdt , t );
391
+ * stepper.do_step( sys , in , dxdt , t , out , dt );
392
+ * \endcode
393
+ *
394
+ * \note This method does not solve the forwarding problem.
395
+ *
396
+ * \param system The system function to solve, hence the r.h.s. of the ODE. It must fulfill the
397
+ * Simple System concept.
398
+ * \param in The state of the ODE which should be solved. in is not modified in this method
399
+ * \param dxdt The derivative of x at t.
400
+ * \param t The value of the time, at which the step should be performed.
401
+ * \param out The result of the step is written in out.
402
+ * \param dt The step size.
403
+ */
404
+
405
+ /**
406
+ * \fn void explicit_stepper_base::adjust_size( const StateIn &x )
407
+ * \brief Adjust the size of all temporaries in the stepper manually.
408
+ * \param x A state from which the size of the temporaries to be resized is deduced.
409
+ */
410
+
411
+ } // odeint
412
+ } // numeric
413
+ } // boost
414
+
415
+ #endif // BOOST_NUMERIC_ODEINT_STEPPER_BASE_EXPLICIT_STEPPER_BASE_HPP_INCLUDED