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,506 @@
1
+ // Copyright (c) 2000-2013
2
+ // Joerg Walter, Mathias Koch. David Bellot
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
+ // The authors gratefully acknowledge the support of
9
+ // GeNeSys mbH & Co. KG in producing this work.
10
+ //
11
+ #ifndef _BOOST_UBLAS_EXPRESSION_TYPE_
12
+ #define _BOOST_UBLAS_EXPRESSION_TYPE_
13
+
14
+ #include <boost/numeric/ublas/exception.hpp>
15
+ #include <boost/numeric/ublas/traits.hpp>
16
+ #include <boost/numeric/ublas/functional.hpp>
17
+
18
+
19
+ // Expression templates based on ideas of Todd Veldhuizen and Geoffrey Furnish
20
+ // Iterators based on ideas of Jeremy Siek
21
+
22
+ namespace boost { namespace numeric { namespace ublas {
23
+
24
+ /** \brief Base class for uBLAS statically derived expressions using the the Barton Nackman trick
25
+ *
26
+ * This is a NonAssignable class
27
+ * Directly implement nonassignable - simplifes debugging call trace!
28
+ *
29
+ * \tparam E an expression type
30
+ */
31
+ template<class E>
32
+ class ublas_expression {
33
+ public:
34
+ typedef E expression_type;
35
+ /* E can be an incomplete type - to define the following we would need more template arguments
36
+ typedef typename E::type_category type_category;
37
+ typedef typename E::value_type value_type;
38
+ */
39
+
40
+ protected:
41
+ ublas_expression () {}
42
+ ~ublas_expression () {}
43
+ private:
44
+ const ublas_expression& operator= (const ublas_expression &);
45
+ };
46
+
47
+
48
+ /** \brief Base class for Scalar Expression models
49
+ *
50
+ * It does not model the Scalar Expression concept but all derived types should.
51
+ * The class defines a common base type and some common interface for all statically
52
+ * derived Scalar Expression classes.
53
+ *
54
+ * We implement the casts to the statically derived type.
55
+ *
56
+ * \tparam E an expression type
57
+ */
58
+ template<class E>
59
+ class scalar_expression:
60
+ public ublas_expression<E> {
61
+ public:
62
+ typedef E expression_type;
63
+ typedef scalar_tag type_category;
64
+
65
+ BOOST_UBLAS_INLINE
66
+ const expression_type &operator () () const {
67
+ return *static_cast<const expression_type *> (this);
68
+ }
69
+ BOOST_UBLAS_INLINE
70
+ expression_type &operator () () {
71
+ return *static_cast<expression_type *> (this);
72
+ }
73
+ };
74
+
75
+ template<class T>
76
+ class scalar_reference:
77
+ public scalar_expression<scalar_reference<T> > {
78
+
79
+ typedef scalar_reference<T> self_type;
80
+ public:
81
+ typedef T value_type;
82
+ typedef const value_type &const_reference;
83
+ typedef typename boost::mpl::if_<boost::is_const<T>,
84
+ const_reference,
85
+ value_type &>::type reference;
86
+ typedef const self_type const_closure_type;
87
+ typedef const_closure_type closure_type;
88
+
89
+ // Construction and destruction
90
+ BOOST_UBLAS_INLINE
91
+ explicit scalar_reference (reference t):
92
+ t_ (t) {}
93
+
94
+ // Conversion
95
+ BOOST_UBLAS_INLINE
96
+ operator value_type () const {
97
+ return t_;
98
+ }
99
+
100
+ // Assignment
101
+ BOOST_UBLAS_INLINE
102
+ scalar_reference &operator = (const scalar_reference &s) {
103
+ t_ = s.t_;
104
+ return *this;
105
+ }
106
+ template<class AE>
107
+ BOOST_UBLAS_INLINE
108
+ scalar_reference &operator = (const scalar_expression<AE> &ae) {
109
+ t_ = ae;
110
+ return *this;
111
+ }
112
+
113
+ // Closure comparison
114
+ BOOST_UBLAS_INLINE
115
+ bool same_closure (const scalar_reference &sr) const {
116
+ return &t_ == &sr.t_;
117
+ }
118
+
119
+ private:
120
+ reference t_;
121
+ };
122
+
123
+ template<class T>
124
+ class scalar_value:
125
+ public scalar_expression<scalar_value<T> > {
126
+
127
+ typedef scalar_value<T> self_type;
128
+ public:
129
+ typedef T value_type;
130
+ typedef const value_type &const_reference;
131
+ typedef typename boost::mpl::if_<boost::is_const<T>,
132
+ const_reference,
133
+ value_type &>::type reference;
134
+ typedef const scalar_reference<const self_type> const_closure_type;
135
+ typedef scalar_reference<self_type> closure_type;
136
+
137
+ // Construction and destruction
138
+ BOOST_UBLAS_INLINE
139
+ scalar_value ():
140
+ t_ () {}
141
+ BOOST_UBLAS_INLINE
142
+ scalar_value (const value_type &t):
143
+ t_ (t) {}
144
+
145
+ BOOST_UBLAS_INLINE
146
+ operator value_type () const {
147
+ return t_;
148
+ }
149
+
150
+ // Assignment
151
+ BOOST_UBLAS_INLINE
152
+ scalar_value &operator = (const scalar_value &s) {
153
+ t_ = s.t_;
154
+ return *this;
155
+ }
156
+ template<class AE>
157
+ BOOST_UBLAS_INLINE
158
+ scalar_value &operator = (const scalar_expression<AE> &ae) {
159
+ t_ = ae;
160
+ return *this;
161
+ }
162
+
163
+ // Closure comparison
164
+ BOOST_UBLAS_INLINE
165
+ bool same_closure (const scalar_value &sv) const {
166
+ return this == &sv; // self closing on instances value
167
+ }
168
+
169
+ private:
170
+ value_type t_;
171
+ };
172
+
173
+
174
+ /** \brief Base class for Vector Expression models
175
+ *
176
+ * it does not model the Vector Expression concept but all derived types should.
177
+ * The class defines a common base type and some common interface for all
178
+ * statically derived Vector Expression classes.
179
+ * We implement the casts to the statically derived type.
180
+ */
181
+ template<class E>
182
+ class vector_expression:
183
+ public ublas_expression<E> {
184
+ public:
185
+ static const unsigned complexity = 0;
186
+ typedef E expression_type;
187
+ typedef vector_tag type_category;
188
+ /* E can be an incomplete type - to define the following we would need more template arguments
189
+ typedef typename E::size_type size_type;
190
+ */
191
+
192
+ BOOST_UBLAS_INLINE
193
+ const expression_type &operator () () const {
194
+ return *static_cast<const expression_type *> (this);
195
+ }
196
+ BOOST_UBLAS_INLINE
197
+ expression_type &operator () () {
198
+ return *static_cast<expression_type *> (this);
199
+ }
200
+
201
+ #ifdef BOOST_UBLAS_ENABLE_PROXY_SHORTCUTS
202
+ private:
203
+ // projection types
204
+ typedef vector_range<E> vector_range_type;
205
+ typedef vector_range<const E> const_vector_range_type;
206
+ typedef vector_slice<E> vector_slice_type;
207
+ typedef vector_slice<const E> const_vector_slice_type;
208
+ // vector_indirect_type will depend on the A template parameter
209
+ typedef basic_range<> default_range; // required to avoid range/slice name confusion
210
+ typedef basic_slice<> default_slice;
211
+ public:
212
+ BOOST_UBLAS_INLINE
213
+ const_vector_range_type operator () (const default_range &r) const {
214
+ return const_vector_range_type (operator () (), r);
215
+ }
216
+ BOOST_UBLAS_INLINE
217
+ vector_range_type operator () (const default_range &r) {
218
+ return vector_range_type (operator () (), r);
219
+ }
220
+ BOOST_UBLAS_INLINE
221
+ const_vector_slice_type operator () (const default_slice &s) const {
222
+ return const_vector_slice_type (operator () (), s);
223
+ }
224
+ BOOST_UBLAS_INLINE
225
+ vector_slice_type operator () (const default_slice &s) {
226
+ return vector_slice_type (operator () (), s);
227
+ }
228
+ template<class A>
229
+ BOOST_UBLAS_INLINE
230
+ const vector_indirect<const E, indirect_array<A> > operator () (const indirect_array<A> &ia) const {
231
+ return vector_indirect<const E, indirect_array<A> > (operator () (), ia);
232
+ }
233
+ template<class A>
234
+ BOOST_UBLAS_INLINE
235
+ vector_indirect<E, indirect_array<A> > operator () (const indirect_array<A> &ia) {
236
+ return vector_indirect<E, indirect_array<A> > (operator () (), ia);
237
+ }
238
+
239
+ BOOST_UBLAS_INLINE
240
+ const_vector_range_type project (const default_range &r) const {
241
+ return const_vector_range_type (operator () (), r);
242
+ }
243
+ BOOST_UBLAS_INLINE
244
+ vector_range_type project (const default_range &r) {
245
+ return vector_range_type (operator () (), r);
246
+ }
247
+ BOOST_UBLAS_INLINE
248
+ const_vector_slice_type project (const default_slice &s) const {
249
+ return const_vector_slice_type (operator () (), s);
250
+ }
251
+ BOOST_UBLAS_INLINE
252
+ vector_slice_type project (const default_slice &s) {
253
+ return vector_slice_type (operator () (), s);
254
+ }
255
+ template<class A>
256
+ BOOST_UBLAS_INLINE
257
+ const vector_indirect<const E, indirect_array<A> > project (const indirect_array<A> &ia) const {
258
+ return vector_indirect<const E, indirect_array<A> > (operator () (), ia);
259
+ }
260
+ template<class A>
261
+ BOOST_UBLAS_INLINE
262
+ vector_indirect<E, indirect_array<A> > project (const indirect_array<A> &ia) {
263
+ return vector_indirect<E, indirect_array<A> > (operator () (), ia);
264
+ }
265
+ #endif
266
+ };
267
+
268
+ /** \brief Base class for Vector container models
269
+ *
270
+ * it does not model the Vector concept but all derived types should.
271
+ * The class defines a common base type and some common interface for all
272
+ * statically derived Vector classes
273
+ * We implement the casts to the statically derived type.
274
+ */
275
+ template<class C>
276
+ class vector_container:
277
+ public vector_expression<C> {
278
+ public:
279
+ static const unsigned complexity = 0;
280
+ typedef C container_type;
281
+ typedef vector_tag type_category;
282
+
283
+ BOOST_UBLAS_INLINE
284
+ const container_type &operator () () const {
285
+ return *static_cast<const container_type *> (this);
286
+ }
287
+ BOOST_UBLAS_INLINE
288
+ container_type &operator () () {
289
+ return *static_cast<container_type *> (this);
290
+ }
291
+
292
+ #ifdef BOOST_UBLAS_ENABLE_PROXY_SHORTCUTS
293
+ using vector_expression<C>::operator ();
294
+ #endif
295
+ };
296
+
297
+
298
+ /** \brief Base class for Matrix Expression models
299
+ *
300
+ * it does not model the Matrix Expression concept but all derived types should.
301
+ * The class defines a common base type and some common interface for all
302
+ * statically derived Matrix Expression classes
303
+ * We implement the casts to the statically derived type.
304
+ */
305
+ template<class E>
306
+ class matrix_expression:
307
+ public ublas_expression<E> {
308
+ private:
309
+ typedef matrix_expression<E> self_type;
310
+ public:
311
+ static const unsigned complexity = 0;
312
+ typedef E expression_type;
313
+ typedef matrix_tag type_category;
314
+ /* E can be an incomplete type - to define the following we would need more template arguments
315
+ typedef typename E::size_type size_type;
316
+ */
317
+
318
+ BOOST_UBLAS_INLINE
319
+ const expression_type &operator () () const {
320
+ return *static_cast<const expression_type *> (this);
321
+ }
322
+ BOOST_UBLAS_INLINE
323
+ expression_type &operator () () {
324
+ return *static_cast<expression_type *> (this);
325
+ }
326
+
327
+ #ifdef BOOST_UBLAS_ENABLE_PROXY_SHORTCUTS
328
+ private:
329
+ // projection types
330
+ typedef vector_range<E> vector_range_type;
331
+ typedef const vector_range<const E> const_vector_range_type;
332
+ typedef vector_slice<E> vector_slice_type;
333
+ typedef const vector_slice<const E> const_vector_slice_type;
334
+ typedef matrix_row<E> matrix_row_type;
335
+ typedef const matrix_row<const E> const_matrix_row_type;
336
+ typedef matrix_column<E> matrix_column_type;
337
+ typedef const matrix_column<const E> const_matrix_column_type;
338
+ typedef matrix_range<E> matrix_range_type;
339
+ typedef const matrix_range<const E> const_matrix_range_type;
340
+ typedef matrix_slice<E> matrix_slice_type;
341
+ typedef const matrix_slice<const E> const_matrix_slice_type;
342
+ // matrix_indirect_type will depend on the A template parameter
343
+ typedef basic_range<> default_range; // required to avoid range/slice name confusion
344
+ typedef basic_slice<> default_slice;
345
+
346
+ public:
347
+ BOOST_UBLAS_INLINE
348
+ const_matrix_row_type operator [] (std::size_t i) const {
349
+ return const_matrix_row_type (operator () (), i);
350
+ }
351
+ BOOST_UBLAS_INLINE
352
+ matrix_row_type operator [] (std::size_t i) {
353
+ return matrix_row_type (operator () (), i);
354
+ }
355
+ BOOST_UBLAS_INLINE
356
+ const_matrix_row_type row (std::size_t i) const {
357
+ return const_matrix_row_type (operator () (), i);
358
+ }
359
+ BOOST_UBLAS_INLINE
360
+ matrix_row_type row (std::size_t i) {
361
+ return matrix_row_type (operator () (), i);
362
+ }
363
+ BOOST_UBLAS_INLINE
364
+ const_matrix_column_type column (std::size_t j) const {
365
+ return const_matrix_column_type (operator () (), j);
366
+ }
367
+ BOOST_UBLAS_INLINE
368
+ matrix_column_type column (std::size_t j) {
369
+ return matrix_column_type (operator () (), j);
370
+ }
371
+
372
+ BOOST_UBLAS_INLINE
373
+ const_matrix_range_type operator () (const default_range &r1, const default_range &r2) const {
374
+ return const_matrix_range_type (operator () (), r1, r2);
375
+ }
376
+ BOOST_UBLAS_INLINE
377
+ matrix_range_type operator () (const default_range &r1, const default_range &r2) {
378
+ return matrix_range_type (operator () (), r1, r2);
379
+ }
380
+ BOOST_UBLAS_INLINE
381
+ const_matrix_slice_type operator () (const default_slice &s1, const default_slice &s2) const {
382
+ return const_matrix_slice_type (operator () (), s1, s2);
383
+ }
384
+ BOOST_UBLAS_INLINE
385
+ matrix_slice_type operator () (const default_slice &s1, const default_slice &s2) {
386
+ return matrix_slice_type (operator () (), s1, s2);
387
+ }
388
+ template<class A>
389
+ BOOST_UBLAS_INLINE
390
+ const matrix_indirect<const E, indirect_array<A> > operator () (const indirect_array<A> &ia1, const indirect_array<A> &ia2) const {
391
+ return matrix_indirect<const E, indirect_array<A> > (operator () (), ia1, ia2);
392
+ }
393
+ template<class A>
394
+ BOOST_UBLAS_INLINE
395
+ matrix_indirect<E, indirect_array<A> > operator () (const indirect_array<A> &ia1, const indirect_array<A> &ia2) {
396
+ return matrix_indirect<E, indirect_array<A> > (operator () (), ia1, ia2);
397
+ }
398
+
399
+ BOOST_UBLAS_INLINE
400
+ const_matrix_range_type project (const default_range &r1, const default_range &r2) const {
401
+ return const_matrix_range_type (operator () (), r1, r2);
402
+ }
403
+ BOOST_UBLAS_INLINE
404
+ matrix_range_type project (const default_range &r1, const default_range &r2) {
405
+ return matrix_range_type (operator () (), r1, r2);
406
+ }
407
+ BOOST_UBLAS_INLINE
408
+ const_matrix_slice_type project (const default_slice &s1, const default_slice &s2) const {
409
+ return const_matrix_slice_type (operator () (), s1, s2);
410
+ }
411
+ BOOST_UBLAS_INLINE
412
+ matrix_slice_type project (const default_slice &s1, const default_slice &s2) {
413
+ return matrix_slice_type (operator () (), s1, s2);
414
+ }
415
+ template<class A>
416
+ BOOST_UBLAS_INLINE
417
+ const matrix_indirect<const E, indirect_array<A> > project (const indirect_array<A> &ia1, const indirect_array<A> &ia2) const {
418
+ return matrix_indirect<const E, indirect_array<A> > (operator () (), ia1, ia2);
419
+ }
420
+ template<class A>
421
+ BOOST_UBLAS_INLINE
422
+ matrix_indirect<E, indirect_array<A> > project (const indirect_array<A> &ia1, const indirect_array<A> &ia2) {
423
+ return matrix_indirect<E, indirect_array<A> > (operator () (), ia1, ia2);
424
+ }
425
+ #endif
426
+ };
427
+
428
+ #ifdef BOOST_UBLAS_NO_NESTED_CLASS_RELATION
429
+ struct iterator1_tag {};
430
+ struct iterator2_tag {};
431
+
432
+ template<class I>
433
+ BOOST_UBLAS_INLINE
434
+ typename I::dual_iterator_type begin (const I &it, iterator1_tag) {
435
+ return it ().find2 (1, it.index1 (), 0);
436
+ }
437
+ template<class I>
438
+ BOOST_UBLAS_INLINE
439
+ typename I::dual_iterator_type end (const I &it, iterator1_tag) {
440
+ return it ().find2 (1, it.index1 (), it ().size2 ());
441
+ }
442
+ template<class I>
443
+ BOOST_UBLAS_INLINE
444
+ typename I::dual_reverse_iterator_type rbegin (const I &it, iterator1_tag) {
445
+ return typename I::dual_reverse_iterator_type (end (it, iterator1_tag ()));
446
+ }
447
+ template<class I>
448
+ BOOST_UBLAS_INLINE
449
+ typename I::dual_reverse_iterator_type rend (const I &it, iterator1_tag) {
450
+ return typename I::dual_reverse_iterator_type (begin (it, iterator1_tag ()));
451
+ }
452
+
453
+ template<class I>
454
+ BOOST_UBLAS_INLINE
455
+ typename I::dual_iterator_type begin (const I &it, iterator2_tag) {
456
+ return it ().find1 (1, 0, it.index2 ());
457
+ }
458
+ template<class I>
459
+ BOOST_UBLAS_INLINE
460
+ typename I::dual_iterator_type end (const I &it, iterator2_tag) {
461
+ return it ().find1 (1, it ().size1 (), it.index2 ());
462
+ }
463
+ template<class I>
464
+ BOOST_UBLAS_INLINE
465
+ typename I::dual_reverse_iterator_type rbegin (const I &it, iterator2_tag) {
466
+ return typename I::dual_reverse_iterator_type (end (it, iterator2_tag ()));
467
+ }
468
+ template<class I>
469
+ BOOST_UBLAS_INLINE
470
+ typename I::dual_reverse_iterator_type rend (const I &it, iterator2_tag) {
471
+ return typename I::dual_reverse_iterator_type (begin (it, iterator2_tag ()));
472
+ }
473
+ #endif
474
+
475
+ /** \brief Base class for Matrix container models
476
+ *
477
+ * it does not model the Matrix concept but all derived types should.
478
+ * The class defines a common base type and some common interface for all
479
+ * statically derived Matrix classes
480
+ * We implement the casts to the statically derived type.
481
+ */
482
+ template<class C>
483
+ class matrix_container:
484
+ public matrix_expression<C> {
485
+ public:
486
+ static const unsigned complexity = 0;
487
+ typedef C container_type;
488
+ typedef matrix_tag type_category;
489
+
490
+ BOOST_UBLAS_INLINE
491
+ const container_type &operator () () const {
492
+ return *static_cast<const container_type *> (this);
493
+ }
494
+ BOOST_UBLAS_INLINE
495
+ container_type &operator () () {
496
+ return *static_cast<container_type *> (this);
497
+ }
498
+
499
+ #ifdef BOOST_UBLAS_ENABLE_PROXY_SHORTCUTS
500
+ using matrix_expression<C>::operator ();
501
+ #endif
502
+ };
503
+
504
+ }}}
505
+
506
+ #endif