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,350 @@
1
+ /**
2
+ * \file size.hpp
3
+ *
4
+ * \brief The family of \c size operations.
5
+ *
6
+ * Copyright (c) 2009-2010, Marco Guazzone
7
+ *
8
+ * Distributed under the Boost Software License, Version 1.0. (See
9
+ * accompanying file LICENSE_1_0.txt or copy at
10
+ * http://www.boost.org/LICENSE_1_0.txt)
11
+ *
12
+ * \author Marco Guazzone, marco.guazzone@gmail.com
13
+ */
14
+
15
+ #ifndef BOOST_NUMERIC_UBLAS_OPERATION_SIZE_HPP
16
+ #define BOOST_NUMERIC_UBLAS_OPERATION_SIZE_HPP
17
+
18
+
19
+ #include <boost/mpl/has_xxx.hpp>
20
+ #include <boost/mpl/if.hpp>
21
+ #include <boost/numeric/ublas/detail/config.hpp>
22
+ #include <boost/numeric/ublas/expression_types.hpp>
23
+ #include <boost/numeric/ublas/fwd.hpp>
24
+ #include <boost/numeric/ublas/tags.hpp>
25
+ #include <boost/numeric/ublas/traits.hpp>
26
+ #include <boost/utility/enable_if.hpp>
27
+ #include <cstddef>
28
+
29
+
30
+ namespace boost { namespace numeric { namespace ublas {
31
+
32
+ namespace detail { namespace /*<unnamed>*/ {
33
+
34
+ /// Define a \c has_size_type trait class.
35
+ BOOST_MPL_HAS_XXX_TRAIT_DEF(size_type)
36
+
37
+
38
+ /**
39
+ * \brief Wrapper type-traits used in \c boost::lazy_enabled_if for getting the
40
+ * size type (see below).
41
+ * \tparam VectorT A vector type.
42
+ */
43
+ template <typename VectorT>
44
+ struct vector_size_type
45
+ {
46
+ /// The size type.
47
+ typedef typename vector_traits<VectorT>::size_type type;
48
+ };
49
+
50
+ /**
51
+ * \brief Wrapper type-traits used in \c boost::lazy_enabled_if for getting the
52
+ * size type (see below).
53
+ * \tparam MatrixT A matrix type.
54
+ */
55
+ template <typename MatrixT>
56
+ struct matrix_size_type
57
+ {
58
+ /// The size type.
59
+ typedef typename matrix_traits<MatrixT>::size_type type;
60
+ };
61
+
62
+
63
+ /**
64
+ * \brief Auxiliary class for computing the size of the given dimension for
65
+ * a container of the given category.
66
+ * \tparam Dim The dimension number (starting from 1).
67
+ * \tparam CategoryT The category type (e.g., vector_tag).
68
+ */
69
+ template <std::size_t Dim, typename CategoryT>
70
+ struct size_by_dim_impl;
71
+
72
+
73
+ /**
74
+ * \brief Auxiliary class for computing the size of the given dimension for
75
+ * a container of the given category and with the given orientation.
76
+ * \tparam Dim The dimension number (starting from 1).
77
+ * \tparam CategoryT The category type (e.g., vector_tag).
78
+ * \tparam OrientationT The orientation category type (e.g., row_major_tag).
79
+ */
80
+ template <typename TagT, typename CategoryT, typename OrientationT>
81
+ struct size_by_tag_impl;
82
+
83
+
84
+ /**
85
+ * \brief Specialization of \c size_by_dim_impl for computing the size of a
86
+ * vector.
87
+ */
88
+ template <>
89
+ struct size_by_dim_impl<1, vector_tag>
90
+ {
91
+ /**
92
+ * \brief Compute the size of the given vector.
93
+ * \tparam ExprT A vector expression type.
94
+ * \pre ExprT must be a model of VectorExpression.
95
+ */
96
+ template <typename ExprT>
97
+ BOOST_UBLAS_INLINE
98
+ static typename vector_traits<ExprT>::size_type apply(vector_expression<ExprT> const& ve)
99
+ {
100
+ return ve().size();
101
+ }
102
+ };
103
+
104
+
105
+ /**
106
+ * \brief Specialization of \c size_by_dim_impl for computing the number of
107
+ * rows of a matrix
108
+ */
109
+ template <>
110
+ struct size_by_dim_impl<1, matrix_tag>
111
+ {
112
+ /**
113
+ * \brief Compute the number of rows of the given matrix.
114
+ * \tparam ExprT A matrix expression type.
115
+ * \pre ExprT must be a model of MatrixExpression.
116
+ */
117
+ template <typename ExprT>
118
+ BOOST_UBLAS_INLINE
119
+ static typename matrix_traits<ExprT>::size_type apply(matrix_expression<ExprT> const& me)
120
+ {
121
+ return me().size1();
122
+ }
123
+ };
124
+
125
+
126
+ /**
127
+ * \brief Specialization of \c size_by_dim_impl for computing the number of
128
+ * columns of a matrix
129
+ */
130
+ template <>
131
+ struct size_by_dim_impl<2, matrix_tag>
132
+ {
133
+ /**
134
+ * \brief Compute the number of columns of the given matrix.
135
+ * \tparam ExprT A matrix expression type.
136
+ * \pre ExprT must be a model of MatrixExpression.
137
+ */
138
+ template <typename ExprT>
139
+ BOOST_UBLAS_INLINE
140
+ static typename matrix_traits<ExprT>::size_type apply(matrix_expression<ExprT> const& me)
141
+ {
142
+ return me().size2();
143
+ }
144
+ };
145
+
146
+
147
+ /**
148
+ * \brief Specialization of \c size_by_tag_impl for computing the size of the
149
+ * major dimension of a row-major oriented matrix.
150
+ */
151
+ template <>
152
+ struct size_by_tag_impl<tag::major, matrix_tag, row_major_tag>
153
+ {
154
+ /**
155
+ * \brief Compute the number of rows of the given matrix.
156
+ * \tparam ExprT A matrix expression type.
157
+ * \pre ExprT must be a model of MatrixExpression.
158
+ */
159
+ template <typename ExprT>
160
+ BOOST_UBLAS_INLINE
161
+ static typename matrix_traits<ExprT>::size_type apply(matrix_expression<ExprT> const& me)
162
+ {
163
+ return me().size1();
164
+ }
165
+ };
166
+
167
+
168
+ /**
169
+ * \brief Specialization of \c size_by_tag_impl for computing the size of the
170
+ * minor dimension of a row-major oriented matrix.
171
+ */
172
+ template <>
173
+ struct size_by_tag_impl<tag::minor, matrix_tag, row_major_tag>
174
+ {
175
+ /**
176
+ * \brief Compute the number of columns of the given matrix.
177
+ * \tparam ExprT A matrix expression type.
178
+ * \pre ExprT must be a model of MatrixExpression.
179
+ */
180
+ template <typename ExprT>
181
+ BOOST_UBLAS_INLINE
182
+ static typename matrix_traits<ExprT>::size_type apply(matrix_expression<ExprT> const& me)
183
+ {
184
+ return me().size2();
185
+ }
186
+ };
187
+
188
+
189
+ /**
190
+ * \brief Specialization of \c size_by_tag_impl for computing the size of the
191
+ * leading dimension of a row-major oriented matrix.
192
+ */
193
+ template <>
194
+ struct size_by_tag_impl<tag::leading, matrix_tag, row_major_tag>
195
+ {
196
+ /**
197
+ * \brief Compute the number of columns of the given matrix.
198
+ * \tparam ExprT A matrix expression type.
199
+ * \pre ExprT must be a model of MatrixExpression.
200
+ */
201
+ template <typename ExprT>
202
+ BOOST_UBLAS_INLINE
203
+ static typename matrix_traits<ExprT>::size_type apply(matrix_expression<ExprT> const& me)
204
+ {
205
+ return me().size2();
206
+ }
207
+ };
208
+
209
+
210
+ /// \brief Specialization of \c size_by_tag_impl for computing the size of the
211
+ /// major dimension of a column-major oriented matrix.
212
+ template <>
213
+ struct size_by_tag_impl<tag::major, matrix_tag, column_major_tag>
214
+ {
215
+ /**
216
+ * \brief Compute the number of columns of the given matrix.
217
+ * \tparam ExprT A matrix expression type.
218
+ * \pre ExprT must be a model of MatrixExpression.
219
+ */
220
+ template <typename ExprT>
221
+ BOOST_UBLAS_INLINE
222
+ static typename matrix_traits<ExprT>::size_type apply(matrix_expression<ExprT> const& me)
223
+ {
224
+ return me().size2();
225
+ }
226
+ };
227
+
228
+
229
+ /// \brief Specialization of \c size_by_tag_impl for computing the size of the
230
+ /// minor dimension of a column-major oriented matrix.
231
+ template <>
232
+ struct size_by_tag_impl<tag::minor, matrix_tag, column_major_tag>
233
+ {
234
+ /**
235
+ * \brief Compute the number of rows of the given matrix.
236
+ * \tparam ExprT A matrix expression type.
237
+ * \pre ExprT must be a model of MatrixExpression.
238
+ */
239
+ template <typename ExprT>
240
+ BOOST_UBLAS_INLINE
241
+ static typename matrix_traits<ExprT>::size_type apply(matrix_expression<ExprT> const& me)
242
+ {
243
+ return me().size1();
244
+ }
245
+ };
246
+
247
+
248
+ /// \brief Specialization of \c size_by_tag_impl for computing the size of the
249
+ /// leading dimension of a column-major oriented matrix.
250
+ template <>
251
+ struct size_by_tag_impl<tag::leading, matrix_tag, column_major_tag>
252
+ {
253
+ /**
254
+ * \brief Compute the number of rows of the given matrix.
255
+ * \tparam ExprT A matrix expression type.
256
+ * \pre ExprT must be a model of MatrixExpression.
257
+ */
258
+ template <typename ExprT>
259
+ BOOST_UBLAS_INLINE
260
+ static typename matrix_traits<ExprT>::size_type apply(matrix_expression<ExprT> const& me)
261
+ {
262
+ return me().size1();
263
+ }
264
+ };
265
+
266
+
267
+ /// \brief Specialization of \c size_by_tag_impl for computing the size of the
268
+ /// given dimension of a unknown oriented expression.
269
+ template <typename TagT, typename CategoryT>
270
+ struct size_by_tag_impl<TagT, CategoryT, unknown_orientation_tag>: size_by_tag_impl<TagT, CategoryT, row_major_tag>
271
+ {
272
+ // Empty
273
+ };
274
+
275
+ }} // Namespace detail::<unnamed>
276
+
277
+
278
+ /**
279
+ * \brief Return the number of columns.
280
+ * \tparam VectorExprT A type which models the vector expression concept.
281
+ * \param ve A vector expression.
282
+ * \return The length of the input vector expression.
283
+ */
284
+ template <typename VectorExprT>
285
+ BOOST_UBLAS_INLINE
286
+ typename ::boost::lazy_enable_if_c<
287
+ detail::has_size_type<VectorExprT>::value,
288
+ detail::vector_size_type<VectorExprT>
289
+ >::type size(vector_expression<VectorExprT> const& ve)
290
+ {
291
+ return ve().size();
292
+ }
293
+
294
+
295
+ /**
296
+ * \brief Return the size of the given dimension for the given vector
297
+ * expression.
298
+ * \tparam Dim The dimension number (starting from 1).
299
+ * \tparam VectorExprT A vector expression type.
300
+ * \param ve A vector expression.
301
+ * \return The length of the input vector expression.
302
+ */
303
+ template <std::size_t Dim, typename VectorExprT>
304
+ BOOST_UBLAS_INLINE
305
+ typename vector_traits<VectorExprT>::size_type size(vector_expression<VectorExprT> const& ve)
306
+ {
307
+ return detail::size_by_dim_impl<Dim, vector_tag>::apply(ve);
308
+ }
309
+
310
+
311
+ /**
312
+ * \brief Return the size of the given dimension for the given matrix
313
+ * expression.
314
+ * \tparam Dim The dimension number (starting from 1).
315
+ * \tparam MatrixExprT A matrix expression type.
316
+ * \param e A matrix expression.
317
+ * \return The size of the input matrix expression associated to the dimension
318
+ * \a Dim.
319
+ */
320
+ template <std::size_t Dim, typename MatrixExprT>
321
+ BOOST_UBLAS_INLINE
322
+ typename matrix_traits<MatrixExprT>::size_type size(matrix_expression<MatrixExprT> const& me)
323
+ {
324
+ return detail::size_by_dim_impl<Dim, matrix_tag>::apply(me);
325
+ }
326
+
327
+
328
+ /**
329
+ * \brief Return the size of the given dimension tag for the given matrix
330
+ * expression.
331
+ * \tparam TagT The dimension tag type (e.g., tag::major).
332
+ * \tparam MatrixExprT A matrix expression type.
333
+ * \param e A matrix expression.
334
+ * \return The size of the input matrix expression associated to the dimension
335
+ * tag \a TagT.
336
+ */
337
+ template <typename TagT, typename MatrixExprT>
338
+ BOOST_UBLAS_INLINE
339
+ typename ::boost::lazy_enable_if_c<
340
+ detail::has_size_type<MatrixExprT>::value,
341
+ detail::matrix_size_type<MatrixExprT>
342
+ >::type size(matrix_expression<MatrixExprT> const& me)
343
+ {
344
+ return detail::size_by_tag_impl<TagT, matrix_tag, typename matrix_traits<MatrixExprT>::orientation_category>::apply(me);
345
+ }
346
+
347
+ }}} // Namespace boost::numeric::ublas
348
+
349
+
350
+ #endif // BOOST_NUMERIC_UBLAS_OPERATION_SIZE_HPP