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,161 @@
1
+ /*
2
+ [begin_description]
3
+ Modification of the implicit Euler method, works with the MTL4 matrix library only.
4
+ [end_description]
5
+
6
+ Copyright 2012-2013 Andreas Angelopoulos
7
+ Copyright 2012-2013 Karsten Ahnert
8
+ Copyright 2012-2013 Mario Mulansky
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
+
16
+ #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_IMPLICIT_EULER_MTL4_HPP_INCLUDED
17
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_IMPLICIT_EULER_MTL4_HPP_INCLUDED
18
+
19
+
20
+ #include <utility>
21
+
22
+ #include <boost/numeric/odeint/util/bind.hpp>
23
+ #include <boost/numeric/odeint/util/unwrap_reference.hpp>
24
+ #include <boost/numeric/odeint/stepper/stepper_categories.hpp>
25
+
26
+ #include <boost/numeric/odeint/external/mtl4/mtl4_resize.hpp>
27
+
28
+ #include <boost/numeric/mtl/mtl.hpp>
29
+ #include <boost/numeric/itl/itl.hpp>
30
+
31
+
32
+
33
+
34
+ namespace boost {
35
+ namespace numeric {
36
+ namespace odeint {
37
+
38
+
39
+ template< class ValueType , class Resizer = initially_resizer >
40
+ class implicit_euler_mtl4
41
+ {
42
+
43
+ public:
44
+
45
+ typedef ValueType value_type;
46
+ typedef value_type time_type;
47
+ typedef mtl::dense_vector<value_type> state_type;
48
+
49
+ typedef state_wrapper< state_type > wrapped_state_type;
50
+ typedef state_type deriv_type;
51
+ typedef state_wrapper< deriv_type > wrapped_deriv_type;
52
+ typedef mtl::compressed2D< value_type > matrix_type;
53
+ typedef state_wrapper< matrix_type > wrapped_matrix_type;
54
+
55
+ typedef Resizer resizer_type;
56
+ typedef stepper_tag stepper_category;
57
+
58
+ typedef implicit_euler_mtl4< ValueType , Resizer > stepper_type;
59
+
60
+
61
+ implicit_euler_mtl4( const value_type epsilon = 1E-6 )
62
+ : m_epsilon( epsilon ) , m_resizer() ,
63
+ m_dxdt() , m_x() ,
64
+ m_identity() , m_jacobi()
65
+ { }
66
+
67
+
68
+ template< class System >
69
+ void do_step( System system , state_type &x , time_type t , time_type dt )
70
+ {
71
+ typedef typename odeint::unwrap_reference< System >::type system_type;
72
+ typedef typename odeint::unwrap_reference< typename system_type::first_type >::type deriv_func_type;
73
+ typedef typename odeint::unwrap_reference< typename system_type::second_type >::type jacobi_func_type;
74
+ system_type &sys = system;
75
+ deriv_func_type &deriv_func = sys.first;
76
+ jacobi_func_type &jacobi_func = sys.second;
77
+
78
+ m_resizer.adjust_size(x, [this](auto&& arg) { return this->resize_impl<StateIn>(std::forward<decltype(arg)>(arg)); });
79
+
80
+ m_identity.m_v = 1;
81
+
82
+ t += dt;
83
+ m_x.m_v = x;
84
+
85
+ deriv_func( x , m_dxdt.m_v , t );
86
+ jacobi_func( x , m_jacobi.m_v , t );
87
+
88
+
89
+ m_dxdt.m_v *= -dt;
90
+
91
+ m_jacobi.m_v *= dt;
92
+ m_jacobi.m_v -= m_identity.m_v ;
93
+
94
+
95
+
96
+ // using ilu_0 preconditioning -incomplete LU factorisation
97
+ // itl::pc::diagonal<matrix_type,double> L(m_jacobi.m_v);
98
+ itl::pc::ilu_0<matrix_type> L( m_jacobi.m_v );
99
+
100
+ solve( m_jacobi.m_v , m_x.m_v , m_dxdt.m_v , L );
101
+ x+= m_x.m_v;
102
+
103
+
104
+ }
105
+
106
+
107
+ template< class StateType >
108
+ void adjust_size( const StateType &x )
109
+ {
110
+ resize_impl( x );
111
+ }
112
+
113
+
114
+ private:
115
+
116
+
117
+ /*
118
+ Applying approximate iterative linear solvers
119
+ default solver is Biconjugate gradient stabilized method
120
+ itl::bicgstab(A, x, b, L, iter);
121
+ */
122
+ template < class LinearOperator, class HilbertSpaceX, class HilbertSpaceB, class Preconditioner>
123
+ void solve(const LinearOperator& A, HilbertSpaceX& x, const HilbertSpaceB& b,
124
+ const Preconditioner& L, int max_iteractions =500)
125
+ {
126
+ // Termination criterion: r < 1e-6 * b or N iterations
127
+ itl::basic_iteration< double > iter( b , max_iteractions , 1e-6 );
128
+ itl::bicgstab( A , x , b , L , iter );
129
+
130
+ }
131
+
132
+
133
+ template< class StateIn >
134
+ bool resize_impl( const StateIn &x )
135
+ {
136
+ bool resized = false;
137
+ resized |= adjust_size_by_resizeability( m_dxdt , x , typename is_resizeable<deriv_type>::type() );
138
+ resized |= adjust_size_by_resizeability( m_x , x , typename is_resizeable<state_type>::type() );
139
+ resized |= adjust_size_by_resizeability( m_identity , x , typename is_resizeable<matrix_type>::type() );
140
+ resized |= adjust_size_by_resizeability( m_jacobi , x , typename is_resizeable<matrix_type>::type() );
141
+ return resized;
142
+ }
143
+
144
+
145
+ private:
146
+
147
+ value_type m_epsilon;
148
+ resizer_type m_resizer;
149
+ wrapped_deriv_type m_dxdt;
150
+ wrapped_state_type m_x;
151
+ wrapped_matrix_type m_identity;
152
+ wrapped_matrix_type m_jacobi;
153
+ };
154
+
155
+
156
+ } // odeint
157
+ } // numeric
158
+ } // boost
159
+
160
+
161
+ #endif // BOOST_NUMERIC_ODEINT_EXTERNAL_IMPLICIT_EULER_MTL4_HPP_INCLUDED
@@ -0,0 +1,23 @@
1
+ /*
2
+ [auto_generated]
3
+ /boost/numeric/odeint/external/mtl4/mtl4.hpp
4
+
5
+ [begin_description]
6
+ includes all headers required for using mtl4 with odeint
7
+ [end_description]
8
+
9
+ Copyright 2013 Karsten Ahnert
10
+ Copyright 2013 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
+ #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_MTL4_MTL4_HPP_INCLUDED
18
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_MTL4_MTL4_HPP_INCLUDED
19
+
20
+ #include <boost/numeric/odeint/external/mtl4/mtl4_algebra_dispatcher.hpp>
21
+ #include <boost/numeric/odeint/external/mtl4/mtl4_resize.hpp>
22
+
23
+ #endif // BOOST_NUMERIC_ODEINT_EXTERNAL_MTL4_MTL4_INCLUDED
@@ -0,0 +1,99 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/external/mtl4/mtl4_algebra_dispatcher.hpp
4
+
5
+ [begin_description]
6
+ specialization of the algebra dispatcher for mtl4
7
+ [end_description]
8
+
9
+ Copyright 2013 Karsten Ahnert
10
+ Copyright 2013 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
+ #ifndef BOOST_NUMERIC_ODEINT_MTL4_MTL4_ALGEBRA_DISPATCHER_HPP_INCLUDED
18
+ #define BOOST_NUMERIC_ODEINT_MTL4_MTL4_ALGEBRA_DISPATCHER_HPP_INCLUDED
19
+
20
+ #include <boost/numeric/mtl/mtl.hpp>
21
+
22
+ #include <boost/numeric/odeint/algebra/vector_space_algebra.hpp>
23
+ #include <boost/numeric/odeint/algebra/algebra_dispatcher.hpp>
24
+
25
+ namespace boost {
26
+ namespace numeric {
27
+ namespace odeint {
28
+
29
+ template<typename Value, typename Parameters>
30
+ struct algebra_dispatcher< mtl::dense_vector< Value , Parameters > >
31
+ {
32
+ typedef vector_space_algebra algebra_type;
33
+ };
34
+
35
+ template<typename Value, typename Parameters>
36
+ struct algebra_dispatcher< mtl::dense2D< Value , Parameters > >
37
+ {
38
+ typedef vector_space_algebra algebra_type;
39
+ };
40
+
41
+ template<typename Value , size_t BitMask , typename Parameters>
42
+ struct algebra_dispatcher< mtl::morton_dense< Value , BitMask, Parameters > >
43
+ {
44
+ typedef vector_space_algebra algebra_type;
45
+ };
46
+
47
+ template<typename Value, typename Parameters>
48
+ struct algebra_dispatcher< mtl::compressed2D< Value , Parameters > >
49
+ {
50
+ typedef vector_space_algebra algebra_type;
51
+ };
52
+
53
+ // specialization of infinity norm calculation
54
+
55
+ template<typename Value, typename Parameters>
56
+ struct vector_space_norm_inf< mtl::dense_vector< Value , Parameters > >
57
+ {
58
+ typedef Value result_type;
59
+ Value operator()( const mtl::dense_vector< Value , Parameters > &x ) const
60
+ {
61
+ return mtl::infinity_norm(x);
62
+ }
63
+ };
64
+
65
+ template<typename Value, typename Parameters>
66
+ struct vector_space_norm_inf< mtl::dense2D< Value , Parameters > >
67
+ {
68
+ typedef Value result_type;
69
+ Value operator()( const mtl::dense2D< Value , Parameters > &x ) const
70
+ {
71
+ return mtl::infinity_norm(x);
72
+ }
73
+ };
74
+
75
+ template<typename Value , size_t BitMask , typename Parameters>
76
+ struct vector_space_norm_inf< mtl::morton_dense< Value , BitMask , Parameters > >
77
+ {
78
+ typedef Value result_type;
79
+ Value operator()( const mtl::morton_dense< Value , BitMask , Parameters > &x ) const
80
+ {
81
+ return mtl::infinity_norm(x);
82
+ }
83
+ };
84
+
85
+ template<typename Value, typename Parameters>
86
+ struct vector_space_norm_inf< mtl::compressed2D< Value , Parameters > >
87
+ {
88
+ typedef Value result_type;
89
+ Value operator()( const mtl::compressed2D< Value , Parameters > &x ) const
90
+ {
91
+ return mtl::infinity_norm(x);
92
+ }
93
+ };
94
+
95
+ }
96
+ }
97
+ }
98
+
99
+ #endif // BOOST_NUMERIC_ODEINT_MTL4_MTL4_ALGEBRA_DISPATCHER_INCLUDED
@@ -0,0 +1,134 @@
1
+ /*
2
+ [begin_description]
3
+ Modification of the implicit Euler method, works with the MTL4 matrix library only.
4
+ [end_description]
5
+
6
+ Copyright 2012-2013 Andreas Angelopoulos
7
+ Copyright 2012-2013 Karsten Ahnert
8
+ Copyright 2012-2013 Mario Mulansky
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
+
16
+ #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_MTL4_RESIZE_HPP_INCLUDED
17
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_MTL4_RESIZE_HPP_INCLUDED
18
+
19
+ #include <boost/numeric/odeint/util/is_resizeable.hpp>
20
+ #include <boost/numeric/odeint/util/resize.hpp>
21
+ #include <boost/numeric/odeint/util/same_size.hpp>
22
+
23
+ #include <boost/numeric/mtl/vector/dense_vector.hpp>
24
+ #include <boost/numeric/mtl/matrix/dense2D.hpp>
25
+ #include <boost/numeric/mtl/matrix/compressed2D.hpp>
26
+
27
+ #include <type_traits>
28
+
29
+ namespace boost {
30
+ namespace numeric {
31
+ namespace odeint {
32
+
33
+
34
+ template< class Value , class Parameters >
35
+ struct is_resizeable< mtl::dense_vector< Value , Parameters > >
36
+ {
37
+ typedef std::true_type type;
38
+ const static bool value = type::value;
39
+ };
40
+
41
+ template< class Value , class Parameters >
42
+ struct is_resizeable< mtl::dense2D< Value , Parameters > >
43
+ {
44
+ typedef std::true_type type;
45
+ const static bool value = type::value;
46
+ };
47
+
48
+ template< class Value , class Parameters >
49
+ struct is_resizeable< mtl::compressed2D< Value , Parameters > >
50
+ {
51
+ typedef std::true_type type;
52
+ const static bool value = type::value;
53
+ };
54
+
55
+
56
+
57
+
58
+ template< class Value , class Parameters >
59
+ struct same_size_impl< mtl::dense_vector< Value , Parameters > , mtl::dense_vector< Value , Parameters > >
60
+ {
61
+ static bool same_size( const mtl::dense_vector< Value , Parameters > &v1 ,
62
+ const mtl::dense_vector< Value , Parameters > &v2 )
63
+ {
64
+ return mtl::size( v1 ) == mtl::size( v2 );
65
+ }
66
+ };
67
+
68
+ template< class Value , class Parameters >
69
+ struct resize_impl< mtl::dense_vector< Value , Parameters > , mtl::dense_vector< Value , Parameters > >
70
+ {
71
+ static void resize( mtl::dense_vector< Value , Parameters > &v1 ,
72
+ const mtl::dense_vector< Value , Parameters > &v2 )
73
+ {
74
+ v1.change_dim( mtl::size( v2 ) );
75
+ }
76
+ };
77
+
78
+
79
+
80
+ template< class Value , class MatrixParameters , class VectorParameters >
81
+ struct same_size_impl< mtl::dense2D< Value , MatrixParameters > , mtl::dense_vector< Value , VectorParameters > >
82
+ {
83
+ static bool same_size( const mtl::dense2D< Value , MatrixParameters > &m ,
84
+ const mtl::dense_vector< Value , VectorParameters > &v )
85
+ {
86
+ return ( ( mtl::size( v ) == m.num_cols() ) && ( mtl::size( v ) == m.num_rows() ) );
87
+ }
88
+ };
89
+
90
+ template< class Value , class MatrixParameters , class VectorParameters >
91
+ struct resize_impl< mtl::dense2D< Value , MatrixParameters > , mtl::dense_vector< Value , VectorParameters > >
92
+ {
93
+ static void resize( mtl::dense2D< Value , MatrixParameters > &m ,
94
+ const mtl::dense_vector< Value , VectorParameters > &v )
95
+ {
96
+ m.change_dim( mtl::size( v ) , mtl::size( v ) , false );
97
+ }
98
+ };
99
+
100
+
101
+
102
+
103
+ template< class Value , class MatrixParameters , class VectorParameters >
104
+ struct same_size_impl< mtl::compressed2D< Value , MatrixParameters > , mtl::dense_vector< Value , VectorParameters > >
105
+ {
106
+ static bool same_size( const mtl::compressed2D< Value , MatrixParameters > &m ,
107
+ const mtl::dense_vector< Value , VectorParameters > &v )
108
+ {
109
+ return ( ( mtl::size( v ) == m.num_cols() ) && ( mtl::size( v ) == m.num_rows() ) );
110
+ }
111
+ };
112
+
113
+ template< class Value , class MatrixParameters , class VectorParameters >
114
+ struct resize_impl< mtl::compressed2D< Value , MatrixParameters > , mtl::dense_vector< Value , VectorParameters > >
115
+ {
116
+ static void resize( mtl::compressed2D< Value , MatrixParameters > &m ,
117
+ const mtl::dense_vector< Value , VectorParameters > &v )
118
+ {
119
+ m.change_dim( mtl::size( v ) , mtl::size( v ) );
120
+ }
121
+ };
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+ } // namespace odeint
131
+ } // namespace numeric
132
+ } // namespace boost
133
+
134
+ #endif // BOOST_NUMERIC_ODEINT_EXTERNAL_MTL4_RESIZE_HPP_INCLUDED
@@ -0,0 +1,25 @@
1
+ //==============================================================================
2
+ // Copyright 2014 LRI UMR 8623 CNRS/Univ Paris Sud XI
3
+ // Copyright 2014 NumScale SAS
4
+ //
5
+ // Distributed under the Boost Software License, Version 1.0.
6
+ // See accompanying file LICENSE.txt or copy at
7
+ // http://www.boost.org/LICENSE_1_0.txt
8
+ //==============================================================================
9
+ #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_ALGEBRA_DISPATCHER_HPP_INCLUDED
10
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_ALGEBRA_DISPATCHER_HPP_INCLUDED
11
+
12
+ #include <nt2/core/container/table/table.hpp>
13
+
14
+ #include <boost/numeric/odeint/algebra/vector_space_algebra.hpp>
15
+ #include <boost/numeric/odeint/algebra/algebra_dispatcher.hpp>
16
+
17
+ namespace boost { namespace numeric { namespace odeint {
18
+ template<typename T, typename S>
19
+ struct algebra_dispatcher<nt2::container::table<T,S> >
20
+ {
21
+ typedef vector_space_algebra algebra_type;
22
+ };
23
+ } } }
24
+
25
+ #endif
@@ -0,0 +1,33 @@
1
+ //==============================================================================
2
+ // Copyright 2014 LASMEA UMR 6602 CNRS/Univ. Clermont II
3
+ // Copyright 2014 LRI UMR 8623 CNRS/Univ Paris Sud XI
4
+ // Copyright 2014 MetaScale SAS
5
+ //
6
+ // Distributed under the Boost Software License, Version 1.0.
7
+ // See accompanying file LICENSE.txt or copy at
8
+ // http://www.boost.org/LICENSE_1_0.txt
9
+ //==============================================================================
10
+ #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_COPY_HPP_INCLUDED
11
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_COPY_HPP_INCLUDED
12
+
13
+ #include <nt2/core/container/table/table.hpp>
14
+
15
+ #include <boost/numeric/odeint/util/copy.hpp>
16
+
17
+ namespace boost { namespace numeric { namespace odeint {
18
+
19
+ template<typename T, typename S>
20
+ struct copy_impl< nt2::container::table<T,S>
21
+ , nt2::container::table<T,S>
22
+ >
23
+ {
24
+ static void copy ( const nt2::container::table<T,S> &v1
25
+ , nt2::container::table<T,S> &v2
26
+ )
27
+ {
28
+ v2 = v1;
29
+ }
30
+ };
31
+ } } }
32
+
33
+ #endif
@@ -0,0 +1,31 @@
1
+ //==============================================================================
2
+ // Copyright 2014 LRI UMR 8623 CNRS/Univ Paris Sud XI
3
+ // Copyright 2014 NumScale SAS
4
+ //
5
+ // Distributed under the Boost Software License, Version 1.0.
6
+ // See accompanying file LICENSE.txt or copy at
7
+ // http://www.boost.org/LICENSE_1_0.txt
8
+ //==============================================================================
9
+ #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_NORM_INF_HPP_INCLUDED
10
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_NORM_INF_HPP_INCLUDED
11
+
12
+ #include <nt2/core/container/table/table.hpp>
13
+ #include <nt2/include/functions/globalmax.hpp>
14
+ #include <nt2/include/functions/abs.hpp>
15
+
16
+ #include <boost/numeric/odeint/algebra/vector_space_algebra.hpp>
17
+
18
+ namespace boost { namespace numeric { namespace odeint
19
+ {
20
+ template<typename T, typename S>
21
+ struct vector_space_norm_inf<nt2::container::table<T,S> >
22
+ {
23
+ typedef T result_type;
24
+ result_type operator()(const nt2::container::table<T,S> &v1) const
25
+ {
26
+ return nt2::globalmax(nt2::abs(v1));
27
+ }
28
+ };
29
+ } } }
30
+
31
+ #endif
@@ -0,0 +1,54 @@
1
+ //==============================================================================
2
+ // Copyright 2014 LRI UMR 8623 CNRS/Univ Paris Sud XI
3
+ // Copyright 2014 NumScale SAS
4
+ //
5
+ // Distributed under the Boost Software License, Version 1.0.
6
+ // See accompanying file LICENSE.txt or copy at
7
+ // http://www.boost.org/LICENSE_1_0.txt
8
+ //==============================================================================
9
+ #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_RESIZE_HPP_INCLUDED
10
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_RESIZE_HPP_INCLUDED
11
+
12
+ #include <nt2/core/container/table/table.hpp>
13
+
14
+ #include <boost/numeric/odeint/util/same_size.hpp>
15
+
16
+ #include <type_traits>
17
+
18
+ namespace boost { namespace numeric { namespace odeint {
19
+
20
+ template<typename T, typename S>
21
+ struct is_resizeable< nt2::container::table<T,S> >
22
+ {
23
+ typedef std::true_type type;
24
+ static const bool value = type::value;
25
+ };
26
+
27
+ template<typename T, typename S>
28
+ struct same_size_impl< nt2::container::table<T,S>
29
+ , nt2::container::table<T,S>
30
+ >
31
+ {
32
+ static bool same_size ( const nt2::container::table<T,S> &v1
33
+ , const nt2::container::table<T,S> &v2
34
+ )
35
+ {
36
+ return v1.extent() == v2.extent();
37
+ }
38
+ };
39
+
40
+ template<typename T, typename S>
41
+ struct resize_impl< nt2::container::table<T,S>
42
+ , nt2::container::table<T,S>
43
+ >
44
+ {
45
+ static void resize ( nt2::container::table<T,S> &v1
46
+ , const nt2::container::table<T,S> &v2
47
+ )
48
+ {
49
+ v1.resize( v2.extent() );
50
+ }
51
+ };
52
+ } } }
53
+
54
+ #endif
@@ -0,0 +1,31 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/external/openmp/openmp.hpp
4
+
5
+ [begin_description]
6
+ Wrappers for OpenMP.
7
+ [end_description]
8
+
9
+ Copyright 2013 Karsten Ahnert
10
+ Copyright 2013 Mario Mulansky
11
+ Copyright 2013 Pascal Germroth
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_EXTERNAL_OPENMP_OPENMP_HPP_INCLUDED
20
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_OPENMP_OPENMP_HPP_INCLUDED
21
+
22
+ // level 1: parallel iteration over random access container
23
+ #include <boost/numeric/odeint/external/openmp/openmp_range_algebra.hpp>
24
+
25
+ // level 2: split range state
26
+ #include <boost/numeric/odeint/external/openmp/openmp_state.hpp>
27
+
28
+ // level 3: process a random access container of sub-states in parallel
29
+ #include <boost/numeric/odeint/external/openmp/openmp_nested_algebra.hpp>
30
+
31
+ #endif