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,56 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/stepper/generation/generation_runge_kutta_dopri5.hpp
4
+
5
+ [begin_description]
6
+ Enable the factory functions for the controller and the dense output of the Runge-Kutta-Dormand-Prince5 method.
7
+ [end_description]
8
+
9
+ Copyright 2011 Karsten Ahnert
10
+ Copyright 2011 Mario Mulansky
11
+
12
+ Distributed under the Boost Software License, Version 1.0.
13
+ (See accompanying file LICENSE_1_0.txt or
14
+ copy at http://www.boost.org/LICENSE_1_0.txt)
15
+ */
16
+
17
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_DOPRI5_HPP_INCLUDED
19
+ #define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_DOPRI5_HPP_INCLUDED
20
+
21
+ #include <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>
22
+ #include <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp>
23
+ #include <boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp>
24
+ #include <boost/numeric/odeint/stepper/generation/make_controlled.hpp>
25
+ #include <boost/numeric/odeint/stepper/generation/make_dense_output.hpp>
26
+
27
+ namespace boost {
28
+ namespace numeric {
29
+ namespace odeint {
30
+
31
+
32
+ template< class State , class Value , class Deriv , class Time , class Algebra , class Operations , class Resize >
33
+ struct get_controller< runge_kutta_dopri5< State , Value , Deriv , Time , Algebra , Operations , Resize > >
34
+ {
35
+ typedef runge_kutta_dopri5< State , Value , Deriv , Time , Algebra , Operations , Resize > stepper_type;
36
+ typedef controlled_runge_kutta< stepper_type > type;
37
+ };
38
+
39
+
40
+ template< class State , class Value , class Deriv , class Time , class Algebra , class Operations , class Resize >
41
+ struct get_dense_output< runge_kutta_dopri5< State , Value , Deriv , Time , Algebra , Operations , Resize > >
42
+ {
43
+ typedef runge_kutta_dopri5< State , Value , Deriv , Time , Algebra , Operations , Resize > stepper_type;
44
+ typedef controlled_runge_kutta< stepper_type > controller_type;
45
+ typedef dense_output_runge_kutta< controller_type > type;
46
+ };
47
+
48
+
49
+
50
+
51
+ } // odeint
52
+ } // numeric
53
+ } // boost
54
+
55
+
56
+ #endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_DOPRI5_HPP_INCLUDED
@@ -0,0 +1,46 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/stepper/generation/generation_runge_kutta_fehlberg78.hpp
4
+
5
+ [begin_description]
6
+ Enable the factory functions for the controller and the dense output of the Runge-Kutta-Fehlberg 78 method.
7
+ [end_description]
8
+
9
+ Copyright 2011 Karsten Ahnert
10
+ Copyright 2011 Mario Mulansky
11
+
12
+ Distributed under the Boost Software License, Version 1.0.
13
+ (See accompanying file LICENSE_1_0.txt or
14
+ copy at http://www.boost.org/LICENSE_1_0.txt)
15
+ */
16
+
17
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_FEHLBERG78_HPP_INCLUDED
19
+ #define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_FEHLBERG78_HPP_INCLUDED
20
+
21
+ #include <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>
22
+ #include <boost/numeric/odeint/stepper/runge_kutta_fehlberg78.hpp>
23
+ #include <boost/numeric/odeint/stepper/generation/make_controlled.hpp>
24
+
25
+ namespace boost {
26
+ namespace numeric {
27
+ namespace odeint {
28
+
29
+
30
+ template< class State , class Value , class Deriv , class Time , class Algebra , class Operations , class Resize >
31
+ struct get_controller< runge_kutta_fehlberg78< State , Value , Deriv , Time , Algebra , Operations , Resize > >
32
+ {
33
+ typedef runge_kutta_fehlberg78< State , Value , Deriv , Time , Algebra , Operations , Resize > stepper_type;
34
+ typedef controlled_runge_kutta< stepper_type > type;
35
+ };
36
+
37
+
38
+
39
+
40
+
41
+ } // odeint
42
+ } // numeric
43
+ } // boost
44
+
45
+
46
+ #endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_FEHLBERG78_HPP_INCLUDED
@@ -0,0 +1,103 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/stepper/generation/make_controlled.hpp
4
+
5
+ [begin_description]
6
+ Factory function to simplify the creation of controlled steppers from error steppers.
7
+ [end_description]
8
+
9
+ Copyright 2011-2012 Karsten Ahnert
10
+ Copyright 2011-2012 Mario Mulansky
11
+
12
+ Distributed under the Boost Software License, Version 1.0.
13
+ (See accompanying file LICENSE_1_0.txt or
14
+ copy at http://www.boost.org/LICENSE_1_0.txt)
15
+ */
16
+
17
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_MAKE_CONTROLLED_HPP_INCLUDED
19
+ #define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_MAKE_CONTROLLED_HPP_INCLUDED
20
+
21
+
22
+
23
+
24
+ namespace boost {
25
+ namespace numeric {
26
+ namespace odeint {
27
+
28
+
29
+
30
+ // default template for the controller
31
+ template< class Stepper > struct get_controller { };
32
+
33
+
34
+
35
+ // default controller factory
36
+ template< class Stepper , class Controller >
37
+ struct controller_factory
38
+ {
39
+ Controller operator()(
40
+ typename Stepper::value_type abs_error ,
41
+ typename Stepper::value_type rel_error ,
42
+ const Stepper &stepper )
43
+ {
44
+ return Controller( abs_error , rel_error , stepper );
45
+ }
46
+
47
+ Controller operator()(
48
+ typename Stepper::value_type abs_error ,
49
+ typename Stepper::value_type rel_error ,
50
+ typename Stepper::time_type max_dt ,
51
+ const Stepper &stepper )
52
+ {
53
+ return Controller( abs_error , rel_error , max_dt, stepper );
54
+ }
55
+ };
56
+
57
+
58
+
59
+
60
+ namespace result_of
61
+ {
62
+ template< class Stepper >
63
+ struct make_controlled
64
+ {
65
+ typedef typename get_controller< Stepper >::type type;
66
+ };
67
+ }
68
+
69
+
70
+ template< class Stepper >
71
+ typename result_of::make_controlled< Stepper >::type make_controlled(
72
+ typename Stepper::value_type abs_error ,
73
+ typename Stepper::value_type rel_error ,
74
+ const Stepper & stepper = Stepper() )
75
+ {
76
+ typedef Stepper stepper_type;
77
+ typedef typename result_of::make_controlled< stepper_type >::type controller_type;
78
+ typedef controller_factory< stepper_type , controller_type > factory_type;
79
+ factory_type factory;
80
+ return factory( abs_error , rel_error , stepper );
81
+ }
82
+
83
+
84
+ template< class Stepper >
85
+ typename result_of::make_controlled< Stepper >::type make_controlled(
86
+ typename Stepper::value_type abs_error ,
87
+ typename Stepper::value_type rel_error ,
88
+ typename Stepper::time_type max_dt ,
89
+ const Stepper & stepper = Stepper() )
90
+ {
91
+ typedef Stepper stepper_type;
92
+ typedef typename result_of::make_controlled< stepper_type >::type controller_type;
93
+ typedef controller_factory< stepper_type , controller_type > factory_type;
94
+ factory_type factory;
95
+ return factory( abs_error , rel_error , max_dt, stepper );
96
+ }
97
+
98
+ } // odeint
99
+ } // numeric
100
+ } // boost
101
+
102
+
103
+ #endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_MAKE_CONTROLLED_HPP_INCLUDED
@@ -0,0 +1,100 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/stepper/generation/make_dense_output.hpp
4
+
5
+ [begin_description]
6
+ Factory function to simplify the creation of dense output steppers from error steppers.
7
+ [end_description]
8
+
9
+ Copyright 2011-2012 Karsten Ahnert
10
+ Copyright 2011-2012 Mario Mulansky
11
+
12
+ Distributed under the Boost Software License, Version 1.0.
13
+ (See accompanying file LICENSE_1_0.txt or
14
+ copy at http://www.boost.org/LICENSE_1_0.txt)
15
+ */
16
+
17
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_MAKE_DENSE_OUTPUT_HPP_INCLUDED
19
+ #define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_MAKE_DENSE_OUTPUT_HPP_INCLUDED
20
+
21
+ namespace boost {
22
+ namespace numeric {
23
+ namespace odeint {
24
+
25
+
26
+ // default template for the dense output
27
+ template< class Stepper > struct get_dense_output { };
28
+
29
+
30
+
31
+ // default dense output factory
32
+ template< class Stepper , class DenseOutput >
33
+ struct dense_output_factory
34
+ {
35
+ DenseOutput operator()(
36
+ typename Stepper::value_type abs_error ,
37
+ typename Stepper::value_type rel_error ,
38
+ const Stepper &stepper )
39
+ {
40
+ return DenseOutput( abs_error , rel_error , stepper );
41
+ }
42
+
43
+ DenseOutput operator()(
44
+ typename Stepper::value_type abs_error ,
45
+ typename Stepper::value_type rel_error ,
46
+ typename Stepper::time_type max_dt ,
47
+ const Stepper &stepper )
48
+ {
49
+ return DenseOutput( abs_error , rel_error , max_dt , stepper );
50
+ }
51
+ };
52
+
53
+
54
+
55
+ namespace result_of
56
+ {
57
+ template< class Stepper >
58
+ struct make_dense_output
59
+ {
60
+ typedef typename get_dense_output< Stepper >::type type;
61
+ };
62
+ }
63
+
64
+
65
+
66
+ template< class Stepper >
67
+ typename result_of::make_dense_output< Stepper >::type make_dense_output(
68
+ typename Stepper::value_type abs_error ,
69
+ typename Stepper::value_type rel_error ,
70
+ const Stepper &stepper = Stepper() )
71
+ {
72
+ typedef Stepper stepper_type;
73
+ typedef typename result_of::make_dense_output< stepper_type >::type dense_output_type;
74
+ typedef dense_output_factory< stepper_type , dense_output_type > factory_type;
75
+ factory_type factory;
76
+ return factory( abs_error , rel_error , stepper );
77
+ }
78
+
79
+
80
+ template< class Stepper >
81
+ typename result_of::make_dense_output< Stepper >::type make_dense_output(
82
+ typename Stepper::value_type abs_error ,
83
+ typename Stepper::value_type rel_error ,
84
+ typename Stepper::time_type max_dt ,
85
+ const Stepper &stepper = Stepper() )
86
+ {
87
+ typedef Stepper stepper_type;
88
+ typedef typename result_of::make_dense_output< stepper_type >::type dense_output_type;
89
+ typedef dense_output_factory< stepper_type , dense_output_type > factory_type;
90
+ factory_type factory;
91
+ return factory( abs_error , rel_error , max_dt, stepper );
92
+ }
93
+
94
+
95
+ } // odeint
96
+ } // numeric
97
+ } // boost
98
+
99
+
100
+ #endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_MAKE_DENSE_OUTPUT_HPP_INCLUDED
@@ -0,0 +1,37 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/stepper/generation.hpp
4
+
5
+ [begin_description]
6
+ Forward header for the factory functions. Includes all files from the generation directory.
7
+ [end_description]
8
+
9
+ Copyright 2011 Karsten Ahnert
10
+ Copyright 2011 Mario Mulansky
11
+
12
+ Distributed under the Boost Software License, Version 1.0.
13
+ (See accompanying file LICENSE_1_0.txt or
14
+ copy at http://www.boost.org/LICENSE_1_0.txt)
15
+ */
16
+
17
+
18
+ #ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_HPP_INCLUDED
19
+ #define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_HPP_INCLUDED
20
+
21
+ #include <boost/numeric/odeint/stepper/generation/make_controlled.hpp>
22
+ #include <boost/numeric/odeint/stepper/generation/make_dense_output.hpp>
23
+
24
+ #include <boost/numeric/odeint/stepper/generation/generation_controlled_runge_kutta.hpp>
25
+ #include <boost/numeric/odeint/stepper/generation/generation_dense_output_runge_kutta.hpp>
26
+
27
+ #include <boost/numeric/odeint/stepper/generation/generation_runge_kutta_cash_karp54_classic.hpp>
28
+ #include <boost/numeric/odeint/stepper/generation/generation_runge_kutta_cash_karp54.hpp>
29
+ #include <boost/numeric/odeint/stepper/generation/generation_runge_kutta_dopri5.hpp>
30
+ #include <boost/numeric/odeint/stepper/generation/generation_runge_kutta_fehlberg78.hpp>
31
+
32
+ #include <boost/numeric/odeint/stepper/generation/generation_controlled_adams_bashforth_moulton.hpp>
33
+
34
+ #include <boost/numeric/odeint/stepper/generation/generation_rosenbrock4.hpp>
35
+
36
+
37
+ #endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_HPP_INCLUDED
@@ -0,0 +1,170 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/stepper/implicit_euler.hpp
4
+
5
+ [begin_description]
6
+ Impementation of the implicit Euler method. Works with ublas::vector as state type.
7
+ [end_description]
8
+
9
+ Copyright 2010-2012 Mario Mulansky
10
+ Copyright 2010-2012 Karsten Ahnert
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_IMPLICIT_EULER_HPP_INCLUDED
20
+ #define BOOST_NUMERIC_ODEINT_STEPPER_IMPLICIT_EULER_HPP_INCLUDED
21
+
22
+
23
+ #include <utility>
24
+
25
+ #include <boost/numeric/odeint/util/bind.hpp>
26
+ #include <boost/numeric/odeint/util/unwrap_reference.hpp>
27
+ #include <boost/numeric/odeint/stepper/stepper_categories.hpp>
28
+
29
+ #include <boost/numeric/odeint/util/ublas_wrapper.hpp>
30
+ #include <boost/numeric/odeint/util/is_resizeable.hpp>
31
+ #include <boost/numeric/odeint/util/resizer.hpp>
32
+
33
+ #include <boost/numeric/ublas/vector.hpp>
34
+ #include <boost/numeric/ublas/matrix.hpp>
35
+ #include <boost/numeric/ublas/lu.hpp>
36
+
37
+ namespace boost {
38
+ namespace numeric {
39
+ namespace odeint {
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+ template< class ValueType , class Resizer = initially_resizer >
49
+ class implicit_euler
50
+ {
51
+
52
+ public:
53
+
54
+ typedef ValueType value_type;
55
+ typedef value_type time_type;
56
+ typedef boost::numeric::ublas::vector< value_type > state_type;
57
+ typedef state_wrapper< state_type > wrapped_state_type;
58
+ typedef state_type deriv_type;
59
+ typedef state_wrapper< deriv_type > wrapped_deriv_type;
60
+ typedef boost::numeric::ublas::matrix< value_type > matrix_type;
61
+ typedef state_wrapper< matrix_type > wrapped_matrix_type;
62
+ typedef boost::numeric::ublas::permutation_matrix< size_t > pmatrix_type;
63
+ typedef state_wrapper< pmatrix_type > wrapped_pmatrix_type;
64
+ typedef Resizer resizer_type;
65
+ typedef stepper_tag stepper_category;
66
+ typedef implicit_euler< ValueType , Resizer > stepper_type;
67
+
68
+ implicit_euler( value_type epsilon = 1E-6 )
69
+ : m_epsilon( epsilon )
70
+ { }
71
+
72
+
73
+ template< class System >
74
+ void do_step( System system , state_type &x , time_type t , time_type dt )
75
+ {
76
+ typedef typename odeint::unwrap_reference< System >::type system_type;
77
+ typedef typename odeint::unwrap_reference< typename system_type::first_type >::type deriv_func_type;
78
+ typedef typename odeint::unwrap_reference< typename system_type::second_type >::type jacobi_func_type;
79
+ system_type &sys = system;
80
+ deriv_func_type &deriv_func = sys.first;
81
+ jacobi_func_type &jacobi_func = sys.second;
82
+
83
+ m_resizer.adjust_size(x, [this](auto&& arg) { return this->resize_impl<state_type>(std::forward<decltype(arg)>(arg)); });
84
+
85
+ for( size_t i=0 ; i<x.size() ; ++i )
86
+ m_pm.m_v[i] = i;
87
+
88
+ t += dt;
89
+
90
+ // apply first Newton step
91
+ deriv_func( x , m_dxdt.m_v , t );
92
+
93
+ m_b.m_v = dt * m_dxdt.m_v;
94
+
95
+ jacobi_func( x , m_jacobi.m_v , t );
96
+ m_jacobi.m_v *= dt;
97
+ m_jacobi.m_v -= boost::numeric::ublas::identity_matrix< value_type >( x.size() );
98
+
99
+ solve( m_b.m_v , m_jacobi.m_v );
100
+
101
+ m_x.m_v = x - m_b.m_v;
102
+
103
+ // iterate Newton until some precision is reached
104
+ // ToDo: maybe we should apply only one Newton step -> linear implicit one-step scheme
105
+ while( boost::numeric::ublas::norm_2( m_b.m_v ) > m_epsilon )
106
+ {
107
+ deriv_func( m_x.m_v , m_dxdt.m_v , t );
108
+ m_b.m_v = x - m_x.m_v + dt*m_dxdt.m_v;
109
+
110
+ // simplified version, only the first Jacobian is used
111
+ // jacobi( m_x , m_jacobi , t );
112
+ // m_jacobi *= dt;
113
+ // m_jacobi -= boost::numeric::ublas::identity_matrix< value_type >( x.size() );
114
+
115
+ solve( m_b.m_v , m_jacobi.m_v );
116
+
117
+ m_x.m_v -= m_b.m_v;
118
+ }
119
+ x = m_x.m_v;
120
+ }
121
+
122
+ template< class StateType >
123
+ void adjust_size( const StateType &x )
124
+ {
125
+ resize_impl( x );
126
+ }
127
+
128
+
129
+ private:
130
+
131
+ template< class StateIn >
132
+ bool resize_impl( const StateIn &x )
133
+ {
134
+ bool resized = false;
135
+ resized |= adjust_size_by_resizeability( m_dxdt , x , typename is_resizeable<deriv_type>::type() );
136
+ resized |= adjust_size_by_resizeability( m_x , x , typename is_resizeable<state_type>::type() );
137
+ resized |= adjust_size_by_resizeability( m_b , x , typename is_resizeable<deriv_type>::type() );
138
+ resized |= adjust_size_by_resizeability( m_jacobi , x , typename is_resizeable<matrix_type>::type() );
139
+ resized |= adjust_size_by_resizeability( m_pm , x , typename is_resizeable<pmatrix_type>::type() );
140
+ return resized;
141
+ }
142
+
143
+
144
+ void solve( state_type &x , matrix_type &m )
145
+ {
146
+ int res = boost::numeric::ublas::lu_factorize( m , m_pm.m_v );
147
+ if( res != 0 ) std::exit(0);
148
+ boost::numeric::ublas::lu_substitute( m , m_pm.m_v , x );
149
+ }
150
+
151
+ private:
152
+
153
+ value_type m_epsilon;
154
+ resizer_type m_resizer;
155
+ wrapped_deriv_type m_dxdt;
156
+ wrapped_state_type m_x;
157
+ wrapped_deriv_type m_b;
158
+ wrapped_matrix_type m_jacobi;
159
+ wrapped_pmatrix_type m_pm;
160
+
161
+
162
+ };
163
+
164
+
165
+ } // odeint
166
+ } // numeric
167
+ } // boost
168
+
169
+
170
+ #endif // BOOST_NUMERIC_ODEINT_STEPPER_IMPLICIT_EULER_HPP_INCLUDED