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,41 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/external/compute/compute_algebra_dispatcher.hpp
4
+
5
+ [begin_description]
6
+ algebra_dispatcher specialization for Boost.Compute
7
+ [end_description]
8
+
9
+ Copyright 2009-2013 Karsten Ahnert
10
+ Copyright 2009-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
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_ALGEBRA_DISPATCHER_HPP_DEFINED
19
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_ALGEBRA_DISPATCHER_HPP_DEFINED
20
+
21
+ #include <boost/compute/container/vector.hpp>
22
+
23
+ #include <boost/numeric/odeint/external/compute/compute_algebra.hpp>
24
+ #include <boost/numeric/odeint/algebra/algebra_dispatcher.hpp>
25
+
26
+ namespace boost {
27
+ namespace numeric {
28
+ namespace odeint {
29
+
30
+ // specialization for Boost.Compute vector
31
+ template< class T , class A >
32
+ struct algebra_dispatcher< boost::compute::vector< T , A > >
33
+ {
34
+ typedef compute_algebra algebra_type;
35
+ };
36
+
37
+ } // namespace odeint
38
+ } // namespace numeric
39
+ } // namespace boost
40
+
41
+ #endif // BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_ALGEBRA_DISPATCHER_HPP_DEFINED
@@ -0,0 +1,198 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/external/compute/compute_operations.hpp
4
+
5
+ [begin_description]
6
+ Operations of Boost.Compute zipped iterators. Is the counterpart of the compute_algebra.
7
+ [end_description]
8
+
9
+ Copyright 2009-2011 Karsten Ahnert
10
+ Copyright 2009-2011 Mario Mulansky
11
+
12
+ Distributed under the Boost Software License, Version 1.0.
13
+ (See accompanying file LICENSE_1_0.txt or
14
+ copy at http://www.boost.org/LICENSE_1_0.txt)
15
+ */
16
+
17
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_OPERATIONS_HPP_DEFINED
19
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_OPERATIONS_HPP_DEFINED
20
+
21
+ #include <boost/preprocessor/repetition.hpp>
22
+ #include <boost/compute.hpp>
23
+
24
+ namespace boost {
25
+ namespace numeric {
26
+ namespace odeint {
27
+
28
+ struct compute_operations {
29
+
30
+ #define BOOST_ODEINT_COMPUTE_TEMPL_FAC(z, n, unused) \
31
+ , class Fac ## n = BOOST_PP_CAT(Fac, BOOST_PP_DEC(n))
32
+
33
+ #define BOOST_ODEINT_COMPUTE_MEMB_FAC(z, n, unused) \
34
+ const Fac ## n m_alpha ## n;
35
+
36
+ #define BOOST_ODEINT_COMPUTE_PRM_FAC(z, n, unused) \
37
+ BOOST_PP_COMMA_IF(n) const Fac ## n alpha ## n
38
+
39
+ #define BOOST_ODEINT_COMPUTE_INIT_FAC(z, n, unused) \
40
+ BOOST_PP_COMMA_IF(n) m_alpha ## n (alpha ## n)
41
+
42
+ #define BOOST_ODEINT_COMPUTE_PRM_STATE(z, n, unused) \
43
+ BOOST_PP_COMMA_IF(n) StateType ## n &s ## n
44
+
45
+ #define BOOST_ODEINT_COMPUTE_BEGIN_STATE(z, n, unused) \
46
+ BOOST_PP_COMMA_IF( BOOST_PP_DEC(n) ) s ## n.begin()
47
+
48
+ #define BOOST_ODEINT_COMPUTE_END_STATE(z, n, unused) \
49
+ BOOST_PP_COMMA_IF( BOOST_PP_DEC(n) ) s ## n.end()
50
+
51
+ #define BOOST_ODEINT_COMPUTE_LAMBDA(z, n, unused) \
52
+ BOOST_PP_EXPR_IF(n, +) m_alpha ## n * bc::lambda::get< n >(bc::_1)
53
+
54
+ #define BOOST_ODEINT_COMPUTE_OPERATIONS(z, n, unused) \
55
+ template< \
56
+ class Fac0 = double \
57
+ BOOST_PP_REPEAT_FROM_TO(1, n, BOOST_ODEINT_COMPUTE_TEMPL_FAC, ~) \
58
+ > \
59
+ struct scale_sum ## n { \
60
+ BOOST_PP_REPEAT(n, BOOST_ODEINT_COMPUTE_MEMB_FAC, ~) \
61
+ scale_sum ## n( \
62
+ BOOST_PP_REPEAT(n, BOOST_ODEINT_COMPUTE_PRM_FAC, ~) \
63
+ ) \
64
+ : BOOST_PP_REPEAT(n, BOOST_ODEINT_COMPUTE_INIT_FAC, ~) \
65
+ { } \
66
+ template< BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(n), class StateType) > \
67
+ void operator()( \
68
+ BOOST_PP_REPEAT( \
69
+ BOOST_PP_INC(n), \
70
+ BOOST_ODEINT_COMPUTE_PRM_STATE, ~) \
71
+ ) const \
72
+ { \
73
+ namespace bc = boost::compute; \
74
+ bc::transform( \
75
+ bc::make_zip_iterator( \
76
+ boost::make_tuple( \
77
+ BOOST_PP_REPEAT_FROM_TO( \
78
+ 1, BOOST_PP_INC(n), \
79
+ BOOST_ODEINT_COMPUTE_BEGIN_STATE, ~) \
80
+ ) \
81
+ ), \
82
+ bc::make_zip_iterator( \
83
+ boost::make_tuple( \
84
+ BOOST_PP_REPEAT_FROM_TO( \
85
+ 1, BOOST_PP_INC(n), \
86
+ BOOST_ODEINT_COMPUTE_END_STATE, ~) \
87
+ ) \
88
+ ), \
89
+ s0.begin(), \
90
+ BOOST_PP_REPEAT(n, BOOST_ODEINT_COMPUTE_LAMBDA, ~) \
91
+ ); \
92
+ } \
93
+ };
94
+
95
+ BOOST_PP_REPEAT_FROM_TO(2, 8, BOOST_ODEINT_COMPUTE_OPERATIONS, ~)
96
+
97
+ #undef BOOST_ODEINT_COMPUTE_TEMPL_FAC
98
+ #undef BOOST_ODEINT_COMPUTE_MEMB_FAC
99
+ #undef BOOST_ODEINT_COMPUTE_PRM_FAC
100
+ #undef BOOST_ODEINT_COMPUTE_INIT_FAC
101
+ #undef BOOST_ODEINT_COMPUTE_PRM_STATE
102
+ #undef BOOST_ODEINT_COMPUTE_BEGIN_STATE
103
+ #undef BOOST_ODEINT_COMPUTE_END_STATE
104
+ #undef BOOST_ODEINT_COMPUTE_LAMBDA
105
+ #undef BOOST_ODEINT_COMPUTE_OPERATIONS
106
+
107
+ template<class Fac1 = double, class Fac2 = Fac1>
108
+ struct scale_sum_swap2 {
109
+ const Fac1 m_alpha1;
110
+ const Fac2 m_alpha2;
111
+
112
+ scale_sum_swap2(const Fac1 alpha1, const Fac2 alpha2)
113
+ : m_alpha1(alpha1), m_alpha2(alpha2) { }
114
+
115
+ template<class State0, class State1, class State2>
116
+ void operator()(State0 &s0, State1 &s1, State2 &s2) const {
117
+ namespace bc = boost::compute;
118
+
119
+ bc::command_queue &queue = bc::system::default_queue();
120
+ const bc::context &context = queue.get_context();
121
+
122
+ const char source[] = BOOST_COMPUTE_STRINGIZE_SOURCE(
123
+ kernel void scale_sum_swap2(
124
+ F1 a1, F2 a2,
125
+ global T0 *x0, global T1 *x1, global T2 *x2,
126
+ )
127
+ {
128
+ uint i = get_global_id(0);
129
+ T0 tmp = x0[i];
130
+ x0[i] = a1 * x1[i] + a2 * x2[i];
131
+ x1[i] = tmp;
132
+ }
133
+ );
134
+
135
+ std::stringstream options;
136
+ options
137
+ << " -DT0=" << bc::type_name<typename State0::value_type>()
138
+ << " -DT1=" << bc::type_name<typename State1::value_type>()
139
+ << " -DT2=" << bc::type_name<typename State2::value_type>()
140
+ << " -DF1=" << bc::type_name<Fac1>()
141
+ << " -DF2=" << bc::type_name<Fac2>();
142
+
143
+ bc::program program =
144
+ bc::program::build_with_source(source, context, options.str());
145
+
146
+ bc::kernel kernel(program, "scale_sum_swap2");
147
+ kernel.set_arg(0, m_alpha1);
148
+ kernel.set_arg(1, m_alpha2);
149
+ kernel.set_arg(2, s0.get_buffer());
150
+ kernel.set_arg(3, s1.get_buffer());
151
+ kernel.set_arg(4, s2.get_buffer());
152
+
153
+ queue.enqueue_1d_range_kernel(kernel, 0, s0.size());
154
+
155
+ }
156
+ };
157
+
158
+ template<class Fac1 = double>
159
+ struct rel_error {
160
+ const Fac1 m_eps_abs, m_eps_rel, m_a_x, m_a_dxdt;
161
+
162
+ rel_error(const Fac1 eps_abs, const Fac1 eps_rel, const Fac1 a_x, const Fac1 a_dxdt)
163
+ : m_eps_abs(eps_abs), m_eps_rel(eps_rel), m_a_x(a_x), m_a_dxdt(a_dxdt) { }
164
+
165
+
166
+ template <class State0, class State1, class State2>
167
+ void operator()(State0 &s0, State1 &s1, State2 &s2) const {
168
+ namespace bc = boost::compute;
169
+ using bc::_1;
170
+ using bc::lambda::get;
171
+
172
+ bc::for_each(
173
+ bc::make_zip_iterator(
174
+ boost::make_tuple(
175
+ s0.begin(),
176
+ s1.begin(),
177
+ s2.begin()
178
+ )
179
+ ),
180
+ bc::make_zip_iterator(
181
+ boost::make_tuple(
182
+ s0.end(),
183
+ s1.end(),
184
+ s2.end()
185
+ )
186
+ ),
187
+ get<0>(_1) = abs( get<0>(_1) ) /
188
+ (m_eps_abs + m_eps_rel * (m_a_x * abs(get<1>(_1) + m_a_dxdt * abs(get<2>(_1)))))
189
+ );
190
+ }
191
+ };
192
+ };
193
+
194
+ } // odeint
195
+ } // numeric
196
+ } // boost
197
+
198
+ #endif // BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_OPERATIONS_HPP_DEFINED
@@ -0,0 +1,44 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/external/compute/compute_operations_dispatcher.hpp
4
+
5
+ [begin_description]
6
+ operations_dispatcher specialization for Boost.Compute
7
+ [end_description]
8
+
9
+ Copyright 2009-2013 Karsten Ahnert
10
+ Copyright 2009-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
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_OPERATIONS_DISPATCHER_HPP_DEFINED
19
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_OPERATIONS_DISPATCHER_HPP_DEFINED
20
+
21
+ #include <boost/compute/container/vector.hpp>
22
+
23
+ #include <boost/numeric/odeint/external/compute/compute_operations.hpp>
24
+ #include <boost/numeric/odeint/algebra/operations_dispatcher.hpp>
25
+
26
+ namespace boost {
27
+ namespace numeric {
28
+ namespace odeint {
29
+
30
+ // specialization for Boost.Compute vector
31
+ template< class T , class A >
32
+ struct operations_dispatcher< boost::compute::vector< T , A > >
33
+ {
34
+ typedef compute_operations operations_type;
35
+ };
36
+
37
+ } // namespace odeint
38
+ } // namespace numeric
39
+ } // namespace boost
40
+
41
+
42
+
43
+
44
+ #endif // BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_OPERATIONS_DISPATCHER_HPP_DEFINED
@@ -0,0 +1,92 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/external/compute/compute_resize.hpp
4
+
5
+ [begin_description]
6
+ Enable resizing for Boost.Compute vector
7
+ [end_description]
8
+
9
+ Copyright 2009-2011 Karsten Ahnert
10
+ Copyright 2009-2011 Mario Mulansky
11
+
12
+ Distributed under the Boost Software License, Version 1.0.
13
+ (See accompanying file LICENSE_1_0.txt or
14
+ copy at http://www.boost.org/LICENSE_1_0.txt)
15
+ */
16
+
17
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_RESIZE_HPP_DEFINED
19
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_RESIZE_HPP_DEFINED
20
+
21
+ #include <boost/compute/container/vector.hpp>
22
+
23
+ #include <boost/numeric/odeint/util/copy.hpp>
24
+
25
+ #include <type_traits>
26
+
27
+ namespace boost {
28
+ namespace numeric {
29
+ namespace odeint {
30
+
31
+ template< class T, class A >
32
+ struct is_resizeable< boost::compute::vector< T , A > >
33
+ {
34
+ struct type : public std::true_type { };
35
+ const static bool value = type::value;
36
+ };
37
+
38
+ template< class T, class A >
39
+ struct same_size_impl< boost::compute::vector< T, A > , boost::compute::vector< T, A > >
40
+ {
41
+ static bool same_size( const boost::compute::vector< T, A > &x , const boost::compute::vector< T, A > &y )
42
+ {
43
+ return x.size() == y.size();
44
+ }
45
+ };
46
+
47
+ template< class T, class A >
48
+ struct resize_impl< boost::compute::vector< T, A > , boost::compute::vector< T, A > >
49
+ {
50
+ static void resize( boost::compute::vector< T, A > &x , const boost::compute::vector< T, A > &y )
51
+ {
52
+ x.resize( y.size() );
53
+ }
54
+ };
55
+
56
+
57
+ template< class Container1, class T, class A >
58
+ struct copy_impl< Container1 , boost::compute::vector< T, A > >
59
+ {
60
+ static void copy( const Container1 &from , boost::compute::vector< T, A > &to )
61
+ {
62
+ boost::compute::copy( boost::begin( from ) , boost::end( from ) , boost::begin( to ) );
63
+ }
64
+ };
65
+
66
+ template< class T, class A, class Container2 >
67
+ struct copy_impl< boost::compute::vector< T, A > , Container2 >
68
+ {
69
+ static void copy( const boost::compute::vector< T, A > &from , Container2 &to )
70
+ {
71
+ boost::compute::copy( boost::begin( from ) , boost::end( from ) , boost::begin( to ) );
72
+ }
73
+ };
74
+
75
+ template< class T, class A >
76
+ struct copy_impl< boost::compute::vector< T, A > , boost::compute::vector< T, A > >
77
+ {
78
+ static void copy( const boost::compute::vector< T, A > &from , boost::compute::vector< T, A > &to )
79
+ {
80
+ boost::compute::copy( boost::begin( from ) , boost::end( from ) , boost::begin( to ) );
81
+ }
82
+ };
83
+
84
+
85
+
86
+
87
+ } // odeint
88
+ } // numeric
89
+ } // boost
90
+
91
+
92
+ #endif // BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_RESIZE_HPP_DEFINED
@@ -0,0 +1,27 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/external/eigen/eigen.hpp
4
+
5
+ [begin_description]
6
+ tba.
7
+ [end_description]
8
+
9
+ Copyright 2009-2012 Karsten Ahnert
10
+ Copyright 2009-2012 Mario Mulansky
11
+
12
+ Distributed under the Boost Software License, Version 1.0.
13
+ (See accompanying file LICENSE_1_0.txt or
14
+ copy at http://www.boost.org/LICENSE_1_0.txt)
15
+ */
16
+
17
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_HPP_INCLUDED
19
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_HPP_INCLUDED
20
+
21
+
22
+ #include <boost/numeric/odeint/external/eigen/eigen_algebra.hpp>
23
+ #include <boost/numeric/odeint/external/eigen/eigen_algebra_dispatcher.hpp>
24
+ #include <boost/numeric/odeint/external/eigen/eigen_resize.hpp>
25
+
26
+
27
+ #endif // BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_HPP_INCLUDED
@@ -0,0 +1,98 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/external/eigen/eigen_algebra.hpp
4
+
5
+ [begin_description]
6
+ tba.
7
+ [end_description]
8
+
9
+ Copyright 2013 Christian Shelton
10
+ Copyright 2013 Karsten Ahnert
11
+
12
+ Distributed under the Boost Software License, Version 1.0.
13
+ (See accompanying file LICENSE_1_0.txt or
14
+ copy at http://www.boost.org/LICENSE_1_0.txt)
15
+ */
16
+
17
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_ALGEBRA_HPP_INCLUDED
19
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_ALGEBRA_HPP_INCLUDED
20
+
21
+ #include <Eigen/Dense>
22
+ #include <boost/numeric/odeint/algebra/vector_space_algebra.hpp>
23
+
24
+ // Necessary routines for Eigen matrices to work with vector_space_algebra
25
+ // from odeint
26
+ // (that is, it lets odeint treat the eigen matrices correctly, knowing
27
+ // how to add, multiply, compute the norm, etc)
28
+ namespace Eigen {
29
+
30
+ template<typename D>
31
+ inline const
32
+ typename Eigen::CwiseBinaryOp<
33
+ internal::scalar_sum_op<typename internal::traits<D>::Scalar>,
34
+ typename DenseBase<D>::ConstantReturnType,
35
+ const D>
36
+ operator+(const typename Eigen::MatrixBase<D> &m,
37
+ const typename Eigen::internal::traits<D>::Scalar &s) {
38
+ return CwiseBinaryOp<
39
+ internal::scalar_sum_op<typename internal::traits<D>::Scalar>,
40
+ typename DenseBase<D>::ConstantReturnType,
41
+ const D>(DenseBase<D>::Constant(m.rows(), m.cols(), s), m.derived());
42
+ }
43
+
44
+ template<typename D>
45
+ inline const
46
+ typename Eigen::CwiseBinaryOp<
47
+ internal::scalar_sum_op<typename internal::traits<D>::Scalar>,
48
+ typename DenseBase<D>::ConstantReturnType,
49
+ const D>
50
+ operator+(const typename Eigen::internal::traits<D>::Scalar &s,
51
+ const typename Eigen::MatrixBase<D> &m) {
52
+ return CwiseBinaryOp<
53
+ internal::scalar_sum_op<typename internal::traits<D>::Scalar>,
54
+ typename DenseBase<D>::ConstantReturnType,
55
+ const D>(DenseBase<D>::Constant(m.rows(), m.cols(), s), m.derived());
56
+ }
57
+
58
+ template<typename D1,typename D2>
59
+ inline const
60
+ typename Eigen::CwiseBinaryOp<
61
+ typename Eigen::internal::scalar_quotient_op<
62
+ typename Eigen::internal::traits<D1>::Scalar>,
63
+ const D1, const D2>
64
+ operator/(const Eigen::MatrixBase<D1> &x1, const Eigen::MatrixBase<D2> &x2) {
65
+ return x1.cwiseQuotient(x2);
66
+ }
67
+
68
+
69
+ template< typename D >
70
+ inline const
71
+ typename Eigen::CwiseUnaryOp<
72
+ typename Eigen::internal::scalar_abs_op<
73
+ typename Eigen::internal::traits< D >::Scalar > ,
74
+ const D >
75
+ abs( const Eigen::MatrixBase< D > &m ) {
76
+ return m.cwiseAbs();
77
+ }
78
+
79
+ } // end Eigen namespace
80
+
81
+
82
+ namespace boost {
83
+ namespace numeric {
84
+ namespace odeint {
85
+
86
+ template<typename B,int S1,int S2,int O, int M1, int M2>
87
+ struct vector_space_norm_inf< Eigen::Matrix<B,S1,S2,O,M1,M2> >
88
+ {
89
+ typedef B result_type;
90
+ result_type operator()( const Eigen::Matrix<B,S1,S2,O,M1,M2> &m ) const
91
+ {
92
+ return m.template lpNorm<Eigen::Infinity>();
93
+ }
94
+ };
95
+
96
+ } } } // end boost::numeric::odeint namespace
97
+
98
+ #endif // BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_ALGEBRA_HPP_INCLUDED
@@ -0,0 +1,49 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/external/eigen/eigen_algebra_dispatcher.hpp
4
+
5
+ [begin_description]
6
+ tba.
7
+ [end_description]
8
+
9
+ Copyright 2009-2012 Karsten Ahnert
10
+ Copyright 2009-2012 Mario Mulansky
11
+
12
+ Distributed under the Boost Software License, Version 1.0.
13
+ (See accompanying file LICENSE_1_0.txt or
14
+ copy at http://www.boost.org/LICENSE_1_0.txt)
15
+ */
16
+
17
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_ALGEBRA_DISPATCHER_HPP_INCLUDED
19
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_ALGEBRA_DISPATCHER_HPP_INCLUDED
20
+
21
+
22
+ namespace boost {
23
+ namespace numeric {
24
+ namespace odeint {
25
+
26
+
27
+ template< class Derived >
28
+ struct algebra_dispatcher_sfinae< Derived ,
29
+ typename boost::enable_if< typename boost::is_base_of< Eigen::MatrixBase< Derived > , Derived >::type >::type >
30
+ {
31
+ typedef vector_space_algebra algebra_type;
32
+ };
33
+
34
+
35
+ template < class Derived >
36
+ struct algebra_dispatcher_sfinae< Derived ,
37
+ typename boost::enable_if< typename boost::is_base_of< Eigen::ArrayBase< Derived > , Derived >::type >::type >
38
+ {
39
+ typedef vector_space_algebra algebra_type;
40
+ };
41
+
42
+
43
+
44
+ } // namespace odeint
45
+ } // namespace numeric
46
+ } // namespace boost
47
+
48
+
49
+ #endif // BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_ALGEBRA_DISPATCHER_HPP_INCLUDED
@@ -0,0 +1,103 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/external/eigen/eigen_resize.hpp
4
+
5
+ [begin_description]
6
+ tba.
7
+ [end_description]
8
+
9
+ Copyright 2013 Ankur Sinha
10
+ Copyright 2013 Karsten Ahnert
11
+
12
+ Distributed under the Boost Software License, Version 1.0.
13
+ (See accompanying file LICENSE_1_0.txt or
14
+ copy at http://www.boost.org/LICENSE_1_0.txt)
15
+ */
16
+
17
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_RESIZE_HPP_DEFINED
19
+ #define BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_RESIZE_HPP_DEFINED
20
+
21
+ #include <type_traits>
22
+
23
+ #include <boost/numeric/odeint/util/is_resizeable.hpp>
24
+ #include <boost/numeric/odeint/util/resize.hpp>
25
+ #include <boost/numeric/odeint/util/same_size.hpp>
26
+
27
+ #include <Eigen/Dense>
28
+
29
+ namespace boost {
30
+ namespace numeric {
31
+ namespace odeint {
32
+
33
+ template< class Derived >
34
+ struct is_resizeable_sfinae< Derived ,
35
+ typename std::enable_if< std::is_base_of< Eigen::MatrixBase< Derived > , Derived >::value >::type >
36
+ {
37
+ typedef std::integral_constant<bool, true> type;
38
+ const static bool value = type::value;
39
+ };
40
+
41
+
42
+ template < class Derived >
43
+ struct is_resizeable_sfinae< Derived ,
44
+ typename std::enable_if< std::is_base_of< Eigen::ArrayBase< Derived > , Derived >::value >::type >
45
+ {
46
+ typedef std::integral_constant<bool, true> type;
47
+ const static bool value = type::value;
48
+ };
49
+
50
+
51
+
52
+ template< class Derived >
53
+ struct same_size_impl_sfinae< Derived , Derived ,
54
+ typename std::enable_if< std::is_base_of< Eigen::MatrixBase< Derived > , Derived >::value >::type >
55
+ {
56
+ static bool same_size( const Eigen::MatrixBase< Derived > &m1 , const Eigen::MatrixBase< Derived > &m2 )
57
+
58
+ {
59
+ return ( ( m1.innerSize () == m2.innerSize () ) && ( m1.outerSize() == m2.outerSize() ) );
60
+ }
61
+ };
62
+
63
+ template< class Derived >
64
+ struct same_size_impl_sfinae< Derived , Derived ,
65
+ typename std::enable_if< std::is_base_of< Eigen::ArrayBase< Derived > , Derived >::value >::type >
66
+ {
67
+ static bool same_size( const Eigen::ArrayBase< Derived > &v1 , const Eigen::ArrayBase< Derived > &v2 )
68
+ {
69
+ return ( ( v1.innerSize () == v2.innerSize () ) && ( v1.outerSize() == v2.outerSize() ) );
70
+ }
71
+ };
72
+
73
+
74
+
75
+
76
+ template< class Derived >
77
+ struct resize_impl_sfinae< Derived , Derived ,
78
+ typename std::enable_if< std::is_base_of< Eigen::MatrixBase< Derived > , Derived >::value >::type >
79
+ {
80
+ static void resize( Eigen::MatrixBase< Derived > &m1 , const Eigen::MatrixBase< Derived > &m2 )
81
+ {
82
+ m1.derived().resizeLike(m2);
83
+ }
84
+ };
85
+
86
+ template< class Derived >
87
+ struct resize_impl_sfinae< Derived , Derived ,
88
+ typename std::enable_if< std::is_base_of< Eigen::ArrayBase< Derived > , Derived >::value >::type >
89
+ {
90
+ static void resize( Eigen::ArrayBase< Derived > &v1 , const Eigen::ArrayBase< Derived > &v2 )
91
+ {
92
+ v1.derived().resizeLike(v2);
93
+ }
94
+ };
95
+
96
+
97
+
98
+ } // namespace odeint
99
+ } // namespace numeric
100
+ } // namespace boost
101
+
102
+
103
+ #endif // BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_RESIZE_HPP_DEFINED