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,406 @@
1
+ // Copyright (c) 2012 Oswin Krause
2
+ // Copyright (c) 2013 Joaquim Duran
3
+ //
4
+ // Distributed under the Boost Software License, Version 1.0. (See
5
+ // accompanying file LICENSE_1_0.txt or copy at
6
+ // http://www.boost.org/LICENSE_1_0.txt)
7
+ //
8
+
9
+ #ifndef BOOST_UBLAS_MATRIX_VECTOR_HPP
10
+ #define BOOST_UBLAS_MATRIX_VECTOR_HPP
11
+
12
+ #include <boost/numeric/ublas/matrix_proxy.hpp> //for matrix_row, matrix_column and matrix_expression
13
+ #include <boost/numeric/ublas/vector.hpp>
14
+ #include <boost/iterator/iterator_facade.hpp>
15
+ #include <boost/range/iterator_range.hpp>
16
+ #include <boost/type_traits/is_convertible.hpp>
17
+ #include <boost/utility/enable_if.hpp>
18
+
19
+ namespace boost { namespace numeric { namespace ublas {
20
+
21
+ namespace detail{
22
+
23
+ /** \brief Iterator used in the represention of a matrix as a vector of rows or columns
24
+ *
25
+ * Iterator used in the represention of a matrix as a vector of rows/columns. It refers
26
+ * to the i-th element of the matrix, a column or a row depending of Reference type.
27
+ *
28
+ * The type of Reference should provide a constructor Reference(matrix, i)
29
+ *
30
+ * This iterator is invalidated when the underlying matrix is resized.
31
+ *
32
+ * \tparameter Matrix type of matrix that is represented as a vector of row/column
33
+ * \tparameter Reference Matrix row or matrix column type.
34
+ */
35
+ template<class Matrix, class Reference>
36
+ class matrix_vector_iterator: public boost::iterator_facade<
37
+ matrix_vector_iterator<Matrix,Reference>,
38
+ typename vector_temporary_traits<Reference>::type,
39
+ boost::random_access_traversal_tag,
40
+ Reference
41
+ >{
42
+ public:
43
+ matrix_vector_iterator(){}
44
+
45
+ ///\brief constructs a matrix_vector_iterator as pointing to the i-th proxy
46
+ BOOST_UBLAS_INLINE
47
+ matrix_vector_iterator(Matrix& matrix, std::size_t position)
48
+ : matrix_(&matrix),position_(position) {}
49
+
50
+ template<class M, class R>
51
+ BOOST_UBLAS_INLINE
52
+ matrix_vector_iterator(matrix_vector_iterator<M,R> const& other)
53
+ : matrix_(other.matrix_),position_(other.position_) {}
54
+
55
+ private:
56
+ friend class boost::iterator_core_access;
57
+ template <class M,class R> friend class matrix_vector_iterator;
58
+
59
+ BOOST_UBLAS_INLINE
60
+ void increment() {
61
+ ++position_;
62
+ }
63
+
64
+ BOOST_UBLAS_INLINE
65
+ void decrement() {
66
+ --position_;
67
+ }
68
+
69
+ BOOST_UBLAS_INLINE
70
+ void advance(std::ptrdiff_t n){
71
+ position_ += n;
72
+ }
73
+
74
+ template<class M,class R>
75
+ BOOST_UBLAS_INLINE
76
+ std::ptrdiff_t distance_to(matrix_vector_iterator<M,R> const& other) const{
77
+ BOOST_UBLAS_CHECK (matrix_ == other.matrix_, external_logic ());
78
+ return (std::ptrdiff_t)other.position_ - (std::ptrdiff_t)position_;
79
+ }
80
+
81
+ template<class M,class R>
82
+ BOOST_UBLAS_INLINE
83
+ bool equal(matrix_vector_iterator<M,R> const& other) const{
84
+ BOOST_UBLAS_CHECK (matrix_ == other.matrix_, external_logic ());
85
+ return (position_ == other.position_);
86
+ }
87
+
88
+ BOOST_UBLAS_INLINE
89
+ Reference dereference() const {
90
+ return Reference(*matrix_,position_);
91
+ }
92
+
93
+ Matrix* matrix_;//no matrix_closure here to ensure easy usage
94
+ std::size_t position_;
95
+ };
96
+
97
+ }
98
+
99
+ /** \brief Represents a \c Matrix as a vector of rows.
100
+ *
101
+ * Implements an interface to Matrix that the underlaying matrix is represented as a
102
+ * vector of rows.
103
+ *
104
+ * The vector could be resized which causes the resize of the number of rows of
105
+ * the underlaying matrix.
106
+ */
107
+ template<class Matrix>
108
+ class matrix_row_vector {
109
+ public:
110
+ typedef ublas::matrix_row<Matrix> value_type;
111
+ typedef ublas::matrix_row<Matrix> reference;
112
+ typedef ublas::matrix_row<Matrix const> const_reference;
113
+
114
+ typedef ublas::detail::matrix_vector_iterator<Matrix, ublas::matrix_row<Matrix> > iterator;
115
+ typedef ublas::detail::matrix_vector_iterator<Matrix const, ublas::matrix_row<Matrix const> const> const_iterator;
116
+ typedef boost::reverse_iterator<iterator> reverse_iterator;
117
+ typedef boost::reverse_iterator<const_iterator> const_reverse_iterator;
118
+
119
+ typedef typename boost::iterator_difference<iterator>::type difference_type;
120
+ typedef typename Matrix::size_type size_type;
121
+
122
+ BOOST_UBLAS_INLINE
123
+ explicit matrix_row_vector(Matrix& matrix) :
124
+ matrix_(&matrix) {
125
+ }
126
+
127
+ BOOST_UBLAS_INLINE
128
+ iterator begin(){
129
+ return iterator(*matrix_, 0);
130
+ }
131
+
132
+ BOOST_UBLAS_INLINE
133
+ const_iterator begin() const {
134
+ return const_iterator(*matrix_, 0);
135
+ }
136
+
137
+ BOOST_UBLAS_INLINE
138
+ const_iterator cbegin() const {
139
+ return begin();
140
+ }
141
+
142
+ BOOST_UBLAS_INLINE
143
+ iterator end() {
144
+ return iterator(*matrix_, matrix_->size1());
145
+ }
146
+
147
+ BOOST_UBLAS_INLINE
148
+ const_iterator end() const {
149
+ return const_iterator(*matrix_, matrix_->size1());
150
+ }
151
+
152
+ BOOST_UBLAS_INLINE
153
+ const_iterator cend() const {
154
+ return end();
155
+ }
156
+
157
+ BOOST_UBLAS_INLINE
158
+ reverse_iterator rbegin() {
159
+ return reverse_iterator(end());
160
+ }
161
+
162
+ BOOST_UBLAS_INLINE
163
+ const_reverse_iterator rbegin() const {
164
+ return const_reverse_iterator(end());
165
+ }
166
+
167
+ BOOST_UBLAS_INLINE
168
+ const_reverse_iterator crbegin() const {
169
+ return rbegin();
170
+ }
171
+
172
+ BOOST_UBLAS_INLINE
173
+ reverse_iterator rend() {
174
+ return reverse_iterator(begin());
175
+ }
176
+
177
+ BOOST_UBLAS_INLINE
178
+ const_reverse_iterator rend() const {
179
+ return const_reverse_iterator(begin());
180
+ }
181
+
182
+ BOOST_UBLAS_INLINE
183
+ const_reverse_iterator crend() const {
184
+ return end();
185
+ }
186
+
187
+ BOOST_UBLAS_INLINE
188
+ value_type operator()(size_type index) {
189
+ return value_type(*matrix_, index);
190
+ }
191
+
192
+ BOOST_UBLAS_INLINE
193
+ value_type operator()(size_type index) const {
194
+ return value_type(*matrix_, index);
195
+ }
196
+
197
+ BOOST_UBLAS_INLINE
198
+ reference operator[](size_type index){
199
+ return (*this) (index);
200
+ }
201
+
202
+ BOOST_UBLAS_INLINE
203
+ const_reference operator[](size_type index) const {
204
+ return (*this) (index);
205
+ }
206
+
207
+ BOOST_UBLAS_INLINE
208
+ size_type size() const {
209
+ return matrix_->size1();
210
+ }
211
+
212
+ BOOST_UBLAS_INLINE
213
+ void resize(size_type size, bool preserve = true) {
214
+ matrix_->resize(size, matrix_->size2(), preserve);
215
+ }
216
+
217
+ private:
218
+ Matrix* matrix_;
219
+ };
220
+
221
+
222
+ /** \brief Convenience function to create \c matrix_row_vector.
223
+ *
224
+ * Function to create \c matrix_row_vector objects.
225
+ * \param matrix the \c matrix_expression that generates the matrix that \c matrix_row_vector is referring.
226
+ * \return Created \c matrix_row_vector object.
227
+ *
228
+ * \tparam Matrix the type of matrix that \c matrix_row_vector is referring.
229
+ */
230
+ template<class Matrix>
231
+ BOOST_UBLAS_INLINE
232
+ matrix_row_vector<Matrix> make_row_vector(matrix_expression<Matrix>& matrix){
233
+ return matrix_row_vector<Matrix>(matrix());
234
+ }
235
+
236
+
237
+ /** \brief Convenience function to create \c matrix_row_vector.
238
+ *
239
+ * Function to create \c matrix_row_vector objects.
240
+ * \param matrix the \c matrix_expression that generates the matrix that \c matrix_row_vector is referring.
241
+ * \return Created \c matrix_row_vector object.
242
+ *
243
+ * \tparam Matrix the type of matrix that \c matrix_row_vector is referring.
244
+ */
245
+ template<class Matrix>
246
+ BOOST_UBLAS_INLINE
247
+ matrix_row_vector<Matrix const> make_row_vector(matrix_expression<Matrix> const& matrix){
248
+ return matrix_row_vector<Matrix const>(matrix());
249
+ }
250
+
251
+
252
+ /** \brief Represents a \c Matrix as a vector of columns.
253
+ *
254
+ * Implements an interface to Matrix that the underlaying matrix is represented as a
255
+ * vector of columns.
256
+ *
257
+ * The vector could be resized which causes the resize of the number of columns of
258
+ * the underlaying matrix.
259
+ */
260
+ template<class Matrix>
261
+ class matrix_column_vector {
262
+ public:
263
+ typedef ublas::matrix_column<Matrix> value_type;
264
+ typedef ublas::matrix_column<Matrix> reference;
265
+ typedef const ublas::matrix_column<Matrix const> const_reference;
266
+
267
+ typedef ublas::detail::matrix_vector_iterator<Matrix, ublas::matrix_column<Matrix> > iterator;
268
+ typedef ublas::detail::matrix_vector_iterator<Matrix const, ublas::matrix_column<Matrix const> const > const_iterator;
269
+ typedef boost::reverse_iterator<iterator> reverse_iterator;
270
+ typedef boost::reverse_iterator<const_iterator> const_reverse_iterator;
271
+
272
+ typedef typename boost::iterator_difference<iterator>::type difference_type;
273
+ typedef typename Matrix::size_type size_type;
274
+
275
+ BOOST_UBLAS_INLINE
276
+ explicit matrix_column_vector(Matrix& matrix) :
277
+ matrix_(&matrix){
278
+ }
279
+
280
+ BOOST_UBLAS_INLINE
281
+ iterator begin() {
282
+ return iterator(*matrix_, 0);
283
+ }
284
+
285
+ BOOST_UBLAS_INLINE
286
+ const_iterator begin() const {
287
+ return const_iterator(*matrix_, 0);
288
+ }
289
+
290
+ BOOST_UBLAS_INLINE
291
+ const_iterator cbegin() const {
292
+ return begin();
293
+ }
294
+
295
+ BOOST_UBLAS_INLINE
296
+ iterator end() {
297
+ return iterator(*matrix_, matrix_->size2());
298
+ }
299
+
300
+ BOOST_UBLAS_INLINE
301
+ const_iterator end() const {
302
+ return const_iterator(*matrix_, matrix_->size2());
303
+ }
304
+
305
+ BOOST_UBLAS_INLINE
306
+ const_iterator cend() const {
307
+ return end();
308
+ }
309
+
310
+ BOOST_UBLAS_INLINE
311
+ reverse_iterator rbegin() {
312
+ return reverse_iterator(end());
313
+ }
314
+
315
+ BOOST_UBLAS_INLINE
316
+ const_reverse_iterator rbegin() const {
317
+ return const_reverse_iterator(end());
318
+ }
319
+
320
+ BOOST_UBLAS_INLINE
321
+ const_reverse_iterator crbegin() const {
322
+ return rbegin();
323
+ }
324
+
325
+ BOOST_UBLAS_INLINE
326
+ reverse_iterator rend() {
327
+ return reverse_iterator(begin());
328
+ }
329
+
330
+ BOOST_UBLAS_INLINE
331
+ const_reverse_iterator rend() const {
332
+ return const_reverse_iterator(begin());
333
+ }
334
+
335
+ BOOST_UBLAS_INLINE
336
+ const_reverse_iterator crend() const {
337
+ return rend();
338
+ }
339
+
340
+ BOOST_UBLAS_INLINE
341
+ value_type operator()(size_type index) {
342
+ return value_type(*matrix_, index);
343
+ }
344
+
345
+ BOOST_UBLAS_INLINE
346
+ value_type operator()(size_type index) const {
347
+ return value_type(*matrix_, index);
348
+ }
349
+
350
+ BOOST_UBLAS_INLINE
351
+ reference operator[](size_type index) {
352
+ return (*this) (index);
353
+ }
354
+
355
+ BOOST_UBLAS_INLINE
356
+ const_reference operator[](size_type index) const {
357
+ return (*this) (index);
358
+ }
359
+
360
+ BOOST_UBLAS_INLINE
361
+ size_type size() const {
362
+ return matrix_->size2();
363
+ }
364
+
365
+ BOOST_UBLAS_INLINE
366
+ void resize(size_type size, bool preserve = true) {
367
+ matrix_->resize(matrix_->size1(), size, preserve);
368
+ }
369
+
370
+ private:
371
+ Matrix* matrix_;
372
+ };
373
+
374
+
375
+ /** \brief Convenience function to create \c matrix_column_vector.
376
+ *
377
+ * Function to create \c matrix_column_vector objects.
378
+ * \param matrix the \c matrix_expression that generates the matrix that \c matrix_column_vector is referring.
379
+ * \return Created \c matrix_column_vector object.
380
+ *
381
+ * \tparam Matrix the type of matrix that \c matrix_column_vector is referring.
382
+ */
383
+ template<class Matrix>
384
+ BOOST_UBLAS_INLINE
385
+ matrix_column_vector<Matrix> make_column_vector(matrix_expression<Matrix>& matrix){
386
+ return matrix_column_vector<Matrix>(matrix());
387
+ }
388
+
389
+
390
+ /** \brief Convenience function to create \c matrix_column_vector.
391
+ *
392
+ * Function to create \c matrix_column_vector objects.
393
+ * \param matrix the \c matrix_expression that generates the matrix that \c matrix_column_vector is referring.
394
+ * \return Created \c matrix_column_vector object.
395
+ *
396
+ * \tparam Matrix the type of matrix that \c matrix_column_vector is referring.
397
+ */
398
+ template<class Matrix>
399
+ BOOST_UBLAS_INLINE
400
+ matrix_column_vector<Matrix const> make_column_vector(matrix_expression<Matrix> const& matrix){
401
+ return matrix_column_vector<Matrix const>(matrix());
402
+ }
403
+
404
+ }}}
405
+
406
+ #endif