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,335 @@
1
+ /* Boost interval/utility.hpp template implementation file
2
+ *
3
+ * Copyright 2000 Jens Maurer
4
+ * Copyright 2002-2003 Hervé Brönnimann, Guillaume Melquiond, Sylvain Pion
5
+ *
6
+ * Distributed under the Boost Software License, Version 1.0.
7
+ * (See accompanying file LICENSE_1_0.txt or
8
+ * copy at http://www.boost.org/LICENSE_1_0.txt)
9
+ */
10
+
11
+ #ifndef BOOST_NUMERIC_INTERVAL_UTILITY_HPP
12
+ #define BOOST_NUMERIC_INTERVAL_UTILITY_HPP
13
+
14
+ #include <boost/numeric/interval/utility_fwd.hpp>
15
+ #include <boost/numeric/interval/detail/test_input.hpp>
16
+ #include <boost/numeric/interval/detail/bugs.hpp>
17
+ #include <algorithm>
18
+ #include <utility>
19
+
20
+ /*
21
+ * Implementation of simple functions
22
+ */
23
+
24
+ namespace boost {
25
+ namespace numeric {
26
+
27
+ /*
28
+ * Utility Functions
29
+ */
30
+
31
+ template<class T, class Policies> inline
32
+ const T& lower(const interval<T, Policies>& x)
33
+ {
34
+ return x.lower();
35
+ }
36
+
37
+ template<class T, class Policies> inline
38
+ const T& upper(const interval<T, Policies>& x)
39
+ {
40
+ return x.upper();
41
+ }
42
+
43
+ template<class T, class Policies> inline
44
+ T checked_lower(const interval<T, Policies>& x)
45
+ {
46
+ if (empty(x)) {
47
+ typedef typename Policies::checking checking;
48
+ return checking::nan();
49
+ }
50
+ return x.lower();
51
+ }
52
+
53
+ template<class T, class Policies> inline
54
+ T checked_upper(const interval<T, Policies>& x)
55
+ {
56
+ if (empty(x)) {
57
+ typedef typename Policies::checking checking;
58
+ return checking::nan();
59
+ }
60
+ return x.upper();
61
+ }
62
+
63
+ template<class T, class Policies> inline
64
+ T width(const interval<T, Policies>& x)
65
+ {
66
+ if (interval_lib::detail::test_input(x)) return static_cast<T>(0);
67
+ typename Policies::rounding rnd;
68
+ return rnd.sub_up(x.upper(), x.lower());
69
+ }
70
+
71
+ template<class T, class Policies> inline
72
+ T median(const interval<T, Policies>& x)
73
+ {
74
+ if (interval_lib::detail::test_input(x)) {
75
+ typedef typename Policies::checking checking;
76
+ return checking::nan();
77
+ }
78
+ typename Policies::rounding rnd;
79
+ return rnd.median(x.lower(), x.upper());
80
+ }
81
+
82
+ template<class T, class Policies> inline
83
+ interval<T, Policies> widen(const interval<T, Policies>& x, const T& v)
84
+ {
85
+ if (interval_lib::detail::test_input(x))
86
+ return interval<T, Policies>::empty();
87
+ typename Policies::rounding rnd;
88
+ return interval<T, Policies>(rnd.sub_down(x.lower(), v),
89
+ rnd.add_up (x.upper(), v), true);
90
+ }
91
+
92
+ /*
93
+ * Set-like operations
94
+ */
95
+
96
+ template<class T, class Policies> inline
97
+ bool empty(const interval<T, Policies>& x)
98
+ {
99
+ return interval_lib::detail::test_input(x);
100
+ }
101
+
102
+ template<class T, class Policies> inline
103
+ bool zero_in(const interval<T, Policies>& x)
104
+ {
105
+ if (interval_lib::detail::test_input(x)) return false;
106
+ return (!interval_lib::user::is_pos(x.lower())) &&
107
+ (!interval_lib::user::is_neg(x.upper()));
108
+ }
109
+
110
+ template<class T, class Policies> inline
111
+ bool in_zero(const interval<T, Policies>& x) // DEPRECATED
112
+ {
113
+ return zero_in<T, Policies>(x);
114
+ }
115
+
116
+ template<class T, class Policies> inline
117
+ bool in(const T& x, const interval<T, Policies>& y)
118
+ {
119
+ if (interval_lib::detail::test_input(x, y)) return false;
120
+ return y.lower() <= x && x <= y.upper();
121
+ }
122
+
123
+ template<class T, class Policies> inline
124
+ bool subset(const interval<T, Policies>& x,
125
+ const interval<T, Policies>& y)
126
+ {
127
+ if (empty(x)) return true;
128
+ return !empty(y) && y.lower() <= x.lower() && x.upper() <= y.upper();
129
+ }
130
+
131
+ template<class T, class Policies1, class Policies2> inline
132
+ bool proper_subset(const interval<T, Policies1>& x,
133
+ const interval<T, Policies2>& y)
134
+ {
135
+ if (empty(y)) return false;
136
+ if (empty(x)) return true;
137
+ return y.lower() <= x.lower() && x.upper() <= y.upper() &&
138
+ (y.lower() != x.lower() || x.upper() != y.upper());
139
+ }
140
+
141
+ template<class T, class Policies1, class Policies2> inline
142
+ bool overlap(const interval<T, Policies1>& x,
143
+ const interval<T, Policies2>& y)
144
+ {
145
+ if (interval_lib::detail::test_input(x, y)) return false;
146
+ return (x.lower() <= y.lower() && y.lower() <= x.upper()) ||
147
+ (y.lower() <= x.lower() && x.lower() <= y.upper());
148
+ }
149
+
150
+ template<class T, class Policies> inline
151
+ bool singleton(const interval<T, Policies>& x)
152
+ {
153
+ return !empty(x) && x.lower() == x.upper();
154
+ }
155
+
156
+ template<class T, class Policies1, class Policies2> inline
157
+ bool equal(const interval<T, Policies1>& x, const interval<T, Policies2>& y)
158
+ {
159
+ if (empty(x)) return empty(y);
160
+ return !empty(y) && x.lower() == y.lower() && x.upper() == y.upper();
161
+ }
162
+
163
+ template<class T, class Policies> inline
164
+ interval<T, Policies> intersect(const interval<T, Policies>& x,
165
+ const interval<T, Policies>& y)
166
+ {
167
+ BOOST_USING_STD_MIN();
168
+ BOOST_USING_STD_MAX();
169
+ if (interval_lib::detail::test_input(x, y))
170
+ return interval<T, Policies>::empty();
171
+ const T& l = max BOOST_PREVENT_MACRO_SUBSTITUTION(x.lower(), y.lower());
172
+ const T& u = min BOOST_PREVENT_MACRO_SUBSTITUTION(x.upper(), y.upper());
173
+ if (l <= u) return interval<T, Policies>(l, u, true);
174
+ else return interval<T, Policies>::empty();
175
+ }
176
+
177
+ template<class T, class Policies> inline
178
+ interval<T, Policies> hull(const interval<T, Policies>& x,
179
+ const interval<T, Policies>& y)
180
+ {
181
+ BOOST_USING_STD_MIN();
182
+ BOOST_USING_STD_MAX();
183
+ bool bad_x = interval_lib::detail::test_input(x);
184
+ bool bad_y = interval_lib::detail::test_input(y);
185
+ if (bad_x)
186
+ if (bad_y) return interval<T, Policies>::empty();
187
+ else return y;
188
+ else
189
+ if (bad_y) return x;
190
+ return interval<T, Policies>(min BOOST_PREVENT_MACRO_SUBSTITUTION(x.lower(), y.lower()),
191
+ max BOOST_PREVENT_MACRO_SUBSTITUTION(x.upper(), y.upper()), true);
192
+ }
193
+
194
+ template<class T, class Policies> inline
195
+ interval<T, Policies> hull(const interval<T, Policies>& x, const T& y)
196
+ {
197
+ BOOST_USING_STD_MIN();
198
+ BOOST_USING_STD_MAX();
199
+ bool bad_x = interval_lib::detail::test_input(x);
200
+ bool bad_y = interval_lib::detail::test_input<T, Policies>(y);
201
+ if (bad_y)
202
+ if (bad_x) return interval<T, Policies>::empty();
203
+ else return x;
204
+ else
205
+ if (bad_x) return interval<T, Policies>(y, y, true);
206
+ return interval<T, Policies>(min BOOST_PREVENT_MACRO_SUBSTITUTION(x.lower(), y),
207
+ max BOOST_PREVENT_MACRO_SUBSTITUTION(x.upper(), y), true);
208
+ }
209
+
210
+ template<class T, class Policies> inline
211
+ interval<T, Policies> hull(const T& x, const interval<T, Policies>& y)
212
+ {
213
+ BOOST_USING_STD_MIN();
214
+ BOOST_USING_STD_MAX();
215
+ bool bad_x = interval_lib::detail::test_input<T, Policies>(x);
216
+ bool bad_y = interval_lib::detail::test_input(y);
217
+ if (bad_x)
218
+ if (bad_y) return interval<T, Policies>::empty();
219
+ else return y;
220
+ else
221
+ if (bad_y) return interval<T, Policies>(x, x, true);
222
+ return interval<T, Policies>(min BOOST_PREVENT_MACRO_SUBSTITUTION(x, y.lower()),
223
+ max BOOST_PREVENT_MACRO_SUBSTITUTION(x, y.upper()), true);
224
+ }
225
+
226
+ template<class T> inline
227
+ interval<T> hull(const T& x, const T& y)
228
+ {
229
+ return interval<T>::hull(x, y);
230
+ }
231
+
232
+ template<class T, class Policies> inline
233
+ std::pair<interval<T, Policies>, interval<T, Policies> >
234
+ bisect(const interval<T, Policies>& x)
235
+ {
236
+ typedef interval<T, Policies> I;
237
+ if (interval_lib::detail::test_input(x))
238
+ return std::pair<I,I>(I::empty(), I::empty());
239
+ const T m = median(x);
240
+ return std::pair<I,I>(I(x.lower(), m, true), I(m, x.upper(), true));
241
+ }
242
+
243
+ /*
244
+ * Elementary functions
245
+ */
246
+
247
+ template<class T, class Policies> inline
248
+ T norm(const interval<T, Policies>& x)
249
+ {
250
+ if (interval_lib::detail::test_input(x)) {
251
+ typedef typename Policies::checking checking;
252
+ return checking::nan();
253
+ }
254
+ BOOST_USING_STD_MAX();
255
+ return max BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast<T>(-x.lower()), x.upper());
256
+ }
257
+
258
+ template<class T, class Policies> inline
259
+ interval<T, Policies> abs(const interval<T, Policies>& x)
260
+ {
261
+ typedef interval<T, Policies> I;
262
+ if (interval_lib::detail::test_input(x))
263
+ return I::empty();
264
+ if (!interval_lib::user::is_neg(x.lower())) return x;
265
+ if (!interval_lib::user::is_pos(x.upper())) return -x;
266
+ BOOST_USING_STD_MAX();
267
+ return I(static_cast<T>(0), max BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast<T>(-x.lower()), x.upper()), true);
268
+ }
269
+
270
+ template<class T, class Policies> inline
271
+ interval<T, Policies> max BOOST_PREVENT_MACRO_SUBSTITUTION (const interval<T, Policies>& x,
272
+ const interval<T, Policies>& y)
273
+ {
274
+ typedef interval<T, Policies> I;
275
+ if (interval_lib::detail::test_input(x, y))
276
+ return I::empty();
277
+ BOOST_USING_STD_MAX();
278
+ return I(max BOOST_PREVENT_MACRO_SUBSTITUTION(x.lower(), y.lower()), max BOOST_PREVENT_MACRO_SUBSTITUTION(x.upper(), y.upper()), true);
279
+ }
280
+
281
+ template<class T, class Policies> inline
282
+ interval<T, Policies> max BOOST_PREVENT_MACRO_SUBSTITUTION (const interval<T, Policies>& x, const T& y)
283
+ {
284
+ typedef interval<T, Policies> I;
285
+ if (interval_lib::detail::test_input(x, y))
286
+ return I::empty();
287
+ BOOST_USING_STD_MAX();
288
+ return I(max BOOST_PREVENT_MACRO_SUBSTITUTION(x.lower(), y), max BOOST_PREVENT_MACRO_SUBSTITUTION(x.upper(), y), true);
289
+ }
290
+
291
+ template<class T, class Policies> inline
292
+ interval<T, Policies> max BOOST_PREVENT_MACRO_SUBSTITUTION (const T& x, const interval<T, Policies>& y)
293
+ {
294
+ typedef interval<T, Policies> I;
295
+ if (interval_lib::detail::test_input(x, y))
296
+ return I::empty();
297
+ BOOST_USING_STD_MAX();
298
+ return I(max BOOST_PREVENT_MACRO_SUBSTITUTION(x, y.lower()), max BOOST_PREVENT_MACRO_SUBSTITUTION(x, y.upper()), true);
299
+ }
300
+
301
+ template<class T, class Policies> inline
302
+ interval<T, Policies> min BOOST_PREVENT_MACRO_SUBSTITUTION (const interval<T, Policies>& x,
303
+ const interval<T, Policies>& y)
304
+ {
305
+ typedef interval<T, Policies> I;
306
+ if (interval_lib::detail::test_input(x, y))
307
+ return I::empty();
308
+ BOOST_USING_STD_MIN();
309
+ return I(min BOOST_PREVENT_MACRO_SUBSTITUTION(x.lower(), y.lower()), min BOOST_PREVENT_MACRO_SUBSTITUTION(x.upper(), y.upper()), true);
310
+ }
311
+
312
+ template<class T, class Policies> inline
313
+ interval<T, Policies> min BOOST_PREVENT_MACRO_SUBSTITUTION (const interval<T, Policies>& x, const T& y)
314
+ {
315
+ typedef interval<T, Policies> I;
316
+ if (interval_lib::detail::test_input(x, y))
317
+ return I::empty();
318
+ BOOST_USING_STD_MIN();
319
+ return I(min BOOST_PREVENT_MACRO_SUBSTITUTION(x.lower(), y), min BOOST_PREVENT_MACRO_SUBSTITUTION(x.upper(), y), true);
320
+ }
321
+
322
+ template<class T, class Policies> inline
323
+ interval<T, Policies> min BOOST_PREVENT_MACRO_SUBSTITUTION (const T& x, const interval<T, Policies>& y)
324
+ {
325
+ typedef interval<T, Policies> I;
326
+ if (interval_lib::detail::test_input(x, y))
327
+ return I::empty();
328
+ BOOST_USING_STD_MIN();
329
+ return I(min BOOST_PREVENT_MACRO_SUBSTITUTION(x, y.lower()), min BOOST_PREVENT_MACRO_SUBSTITUTION(x, y.upper()), true);
330
+ }
331
+
332
+ } // namespace numeric
333
+ } // namespace boost
334
+
335
+ #endif // BOOST_NUMERIC_INTERVAL_UTILITY_HPP
@@ -0,0 +1,172 @@
1
+ /* Boost interval/utility.hpp template interface file
2
+ *
3
+ * Copyright 2013 Cromwell D. Enage
4
+ *
5
+ * Distributed under the Boost Software License, Version 1.0.
6
+ * (See accompanying file LICENSE_1_0.txt or copy at
7
+ * http://www.boost.org/LICENSE_1_0.txt)
8
+ */
9
+
10
+ #ifndef BOOST_NUMERIC_INTERVAL_UTILITY_FWD_HPP
11
+ #define BOOST_NUMERIC_INTERVAL_UTILITY_FWD_HPP
12
+
13
+ #include <boost/config.hpp>
14
+ #include <boost/numeric/interval/detail/interval_prototype.hpp>
15
+ #include <utility>
16
+
17
+ /*
18
+ * Interface of simple functions
19
+ */
20
+
21
+ namespace boost { namespace numeric {
22
+
23
+ /*
24
+ * Utility Functions
25
+ */
26
+
27
+ template<class T, class Policies>
28
+ const T& lower(const interval<T,Policies>& x);
29
+
30
+ template<class T, class Policies>
31
+ const T& upper(const interval<T,Policies>& x);
32
+
33
+ template<class T, class Policies>
34
+ T checked_lower(const interval<T,Policies>& x);
35
+
36
+ template<class T, class Policies>
37
+ T width(const interval<T,Policies>& x);
38
+
39
+ template<class T, class Policies>
40
+ T median(const interval<T,Policies>& x);
41
+
42
+ template<class T, class Policies>
43
+ interval<T,Policies> widen(const interval<T,Policies>& x, const T& v);
44
+
45
+ /*
46
+ * Set-like operations
47
+ */
48
+
49
+ template <class T, class Policies>
50
+ bool empty(const interval<T,Policies>& x);
51
+
52
+ template <class T, class Policies>
53
+ bool zero_in(const interval<T,Policies>& x);
54
+
55
+ template <class T, class Policies>
56
+ bool in_zero(const interval<T,Policies>& x); // DEPRECATED
57
+
58
+ template <class T, class Policies>
59
+ bool in(const T& x, const interval<T,Policies>& y);
60
+
61
+ template <class T, class Policies>
62
+ bool
63
+ subset(
64
+ const interval<T,Policies>& x
65
+ , const interval<T,Policies>& y
66
+ );
67
+
68
+ template <class T, class Policies1, class Policies2>
69
+ bool
70
+ proper_subset(
71
+ const interval<T,Policies1>& x
72
+ , const interval<T,Policies2>& y
73
+ );
74
+
75
+ template <class T, class Policies1, class Policies2>
76
+ bool
77
+ overlap(
78
+ const interval<T,Policies1>& x
79
+ , const interval<T,Policies2>& y
80
+ );
81
+
82
+ template <class T, class Policies>
83
+ bool singleton(const interval<T, Policies>& x);
84
+
85
+ template <class T, class Policies1, class Policies2>
86
+ bool
87
+ equal(
88
+ const interval<T,Policies1>& x
89
+ , const interval<T,Policies2>& y
90
+ );
91
+
92
+ template <class T, class Policies>
93
+ interval<T, Policies>
94
+ intersect(
95
+ const interval<T,Policies>& x
96
+ , const interval<T,Policies>& y
97
+ );
98
+
99
+ template <class T, class Policies>
100
+ interval<T, Policies>
101
+ hull(const interval<T,Policies>& x, const interval<T,Policies>& y);
102
+
103
+ template <class T, class Policies>
104
+ interval<T, Policies>
105
+ hull(const interval<T,Policies>& x, const T& y);
106
+
107
+ template <class T, class Policies>
108
+ interval<T, Policies>
109
+ hull(const T& x, const interval<T,Policies>& y);
110
+
111
+ template <class T>
112
+ interval<T> hull(const T& x, const T& y);
113
+
114
+ template <class T, class Policies>
115
+ std::pair<interval<T,Policies>,interval<T,Policies> >
116
+ bisect(const interval<T,Policies>& x);
117
+
118
+ /*
119
+ * Elementary functions
120
+ */
121
+
122
+ template <class T, class Policies>
123
+ T norm(const interval<T,Policies>& x);
124
+
125
+ template <class T, class Policies>
126
+ interval<T,Policies> abs(const interval<T,Policies>& x);
127
+
128
+ template <class T, class Policies>
129
+ interval<T,Policies>
130
+ max BOOST_PREVENT_MACRO_SUBSTITUTION (
131
+ const interval<T,Policies>& x
132
+ , const interval<T,Policies>& y
133
+ );
134
+
135
+ template <class T, class Policies>
136
+ interval<T,Policies>
137
+ max BOOST_PREVENT_MACRO_SUBSTITUTION (
138
+ const interval<T,Policies>& x
139
+ , const T& y
140
+ );
141
+
142
+ template <class T, class Policies>
143
+ interval<T,Policies>
144
+ max BOOST_PREVENT_MACRO_SUBSTITUTION (
145
+ const T& x
146
+ , const interval<T,Policies>& y
147
+ );
148
+
149
+ template <class T, class Policies>
150
+ interval<T,Policies>
151
+ min BOOST_PREVENT_MACRO_SUBSTITUTION (
152
+ const interval<T,Policies>& x
153
+ , const interval<T,Policies>& y
154
+ );
155
+
156
+ template <class T, class Policies>
157
+ interval<T,Policies>
158
+ min BOOST_PREVENT_MACRO_SUBSTITUTION (
159
+ const interval<T,Policies>& x
160
+ , const T& y
161
+ );
162
+
163
+ template <class T, class Policies>
164
+ interval<T,Policies>
165
+ min BOOST_PREVENT_MACRO_SUBSTITUTION (
166
+ const T& x
167
+ , const interval<T,Policies>& y
168
+ );
169
+ }} // namespace boost::numeric
170
+
171
+ #endif // include guard
172
+
@@ -0,0 +1,32 @@
1
+ /* Boost interval.hpp header file
2
+ *
3
+ * Copyright 2000 Jens Maurer
4
+ * Copyright 2002 Hervé Brönnimann, Guillaume Melquiond, Sylvain Pion
5
+ *
6
+ * Distributed under the Boost Software License, Version 1.0.
7
+ * (See accompanying file LICENSE_1_0.txt or
8
+ * copy at http://www.boost.org/LICENSE_1_0.txt)
9
+ */
10
+
11
+ #ifndef BOOST_NUMERIC_INTERVAL_HPP
12
+ #define BOOST_NUMERIC_INTERVAL_HPP
13
+
14
+ #include <boost/limits.hpp>
15
+ #include <boost/numeric/interval/interval.hpp>
16
+ #include <boost/numeric/interval/policies.hpp>
17
+
18
+ #include <boost/numeric/interval/hw_rounding.hpp>
19
+ #include <boost/numeric/interval/rounded_arith.hpp>
20
+ #include <boost/numeric/interval/rounded_transc.hpp>
21
+ #include <boost/numeric/interval/constants.hpp>
22
+
23
+ #include <boost/numeric/interval/checking.hpp>
24
+ #include <boost/numeric/interval/compare.hpp>
25
+ #include <boost/numeric/interval/utility.hpp>
26
+
27
+ #include <boost/numeric/interval/arith.hpp>
28
+ #include <boost/numeric/interval/arith2.hpp>
29
+ #include <boost/numeric/interval/arith3.hpp>
30
+ #include <boost/numeric/interval/transc.hpp>
31
+
32
+ #endif // BOOST_NUMERIC_INTERVAL_HPP
@@ -0,0 +1,86 @@
1
+ /*
2
+ [auto_generated]
3
+ boost/numeric/odeint/algebra/algebra_dispatcher.hpp
4
+
5
+ [begin_description]
6
+ Algebra dispatcher to automatically chose suitable algebra.
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_ALGEBRA_ALGEBRA_DISPATCHER_HPP_INCLUDED
18
+ #define BOOST_NUMERIC_ODEINT_ALGEBRA_ALGEBRA_DISPATCHER_HPP_INCLUDED
19
+
20
+ #include <type_traits>
21
+ #include <complex>
22
+ #include <array>
23
+
24
+ #include <boost/numeric/odeint/config.hpp>
25
+
26
+ #include <boost/numeric/ublas/vector.hpp>
27
+ #include <boost/numeric/ublas/matrix.hpp>
28
+
29
+ #include <boost/numeric/odeint/algebra/range_algebra.hpp>
30
+ #include <boost/numeric/odeint/algebra/array_algebra.hpp>
31
+ #include <boost/numeric/odeint/algebra/vector_space_algebra.hpp>
32
+
33
+ namespace boost {
34
+ namespace numeric {
35
+ namespace odeint {
36
+
37
+ template< class StateType , class Enabler = void >
38
+ struct algebra_dispatcher_sfinae
39
+ {
40
+ // range_algebra is the standard algebra
41
+ typedef range_algebra algebra_type;
42
+ };
43
+
44
+ template< class StateType >
45
+ struct algebra_dispatcher : algebra_dispatcher_sfinae< StateType > { };
46
+
47
+ // specialize for array
48
+ template< class T , size_t N >
49
+ struct algebra_dispatcher< std::array< T , N > >
50
+ {
51
+ typedef array_algebra algebra_type;
52
+ };
53
+
54
+ //specialize for some integral types
55
+ template< typename T >
56
+ struct algebra_dispatcher_sfinae< T , typename std::enable_if< std::is_floating_point< T >::value >::type >
57
+ {
58
+ typedef vector_space_algebra algebra_type;
59
+ };
60
+
61
+ template< typename T >
62
+ struct algebra_dispatcher< std::complex<T> >
63
+ {
64
+ typedef vector_space_algebra algebra_type;
65
+ };
66
+
67
+ ///* think about that again....
68
+ // specialize for ublas vector and matrix types
69
+ template< class T , class A >
70
+ struct algebra_dispatcher< boost::numeric::ublas::vector< T , A > >
71
+ {
72
+ typedef vector_space_algebra algebra_type;
73
+ };
74
+
75
+ template< class T , class L , class A >
76
+ struct algebra_dispatcher< boost::numeric::ublas::matrix< T , L , A > >
77
+ {
78
+ typedef vector_space_algebra algebra_type;
79
+ };
80
+ //*/
81
+
82
+ }
83
+ }
84
+ }
85
+
86
+ #endif