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,355 @@
1
+ //
2
+ // Copyright (c) 2000-2010
3
+ // Joerg Walter, Mathias Koch, David Bellot
4
+ //
5
+ // Distributed under the Boost Software License, Version 1.0. (See
6
+ // accompanying file LICENSE_1_0.txt or copy at
7
+ // http://www.boost.org/LICENSE_1_0.txt)
8
+ //
9
+ // The authors gratefully acknowledge the support of
10
+ // GeNeSys mbH & Co. KG in producing this work.
11
+ //
12
+
13
+ #ifndef _BOOST_UBLAS_IO_
14
+ #define _BOOST_UBLAS_IO_
15
+
16
+ // Only forward definition required to define stream operations
17
+ #include <iosfwd>
18
+ #include <sstream>
19
+ #include <boost/numeric/ublas/matrix_expression.hpp>
20
+
21
+
22
+ namespace boost { namespace numeric { namespace ublas {
23
+
24
+ /** \brief output stream operator for vector expressions
25
+ *
26
+ * Any vector expressions can be written to a standard output stream
27
+ * as defined in the C++ standard library. For example:
28
+ * \code
29
+ * vector<float> v1(3),v2(3);
30
+ * for(size_t i=0; i<3; i++)
31
+ * {
32
+ * v1(i) = i+0.2;
33
+ * v2(i) = i+0.3;
34
+ * }
35
+ * cout << v1+v2 << endl;
36
+ * \endcode
37
+ * will display the some of the 2 vectors like this:
38
+ * \code
39
+ * [3](0.5,2.5,4.5)
40
+ * \endcode
41
+ *
42
+ * \param os is a standard basic output stream
43
+ * \param v is a vector expression
44
+ * \return a reference to the resulting output stream
45
+ */
46
+ template<class E, class T, class VE>
47
+ // BOOST_UBLAS_INLINE This function seems to be big. So we do not let the compiler inline it.
48
+ std::basic_ostream<E, T> &operator << (std::basic_ostream<E, T> &os,
49
+ const vector_expression<VE> &v) {
50
+ typedef typename VE::size_type size_type;
51
+ size_type size = v ().size ();
52
+ std::basic_ostringstream<E, T, std::allocator<E> > s;
53
+ s.flags (os.flags ());
54
+ s.imbue (os.getloc ());
55
+ s.precision (os.precision ());
56
+ s << '[' << size << "](";
57
+ if (size > 0)
58
+ s << v () (0);
59
+ for (size_type i = 1; i < size; ++ i)
60
+ s << ',' << v () (i);
61
+ s << ')';
62
+ return os << s.str ().c_str ();
63
+ }
64
+
65
+ /** \brief input stream operator for vectors
66
+ *
67
+ * This is used to feed in vectors with data stored as an ASCII representation
68
+ * from a standard input stream.
69
+ *
70
+ * From a file or any valid stream, the format is:
71
+ * \c [<vector size>](<data1>,<data2>,...<dataN>) like for example:
72
+ * \code
73
+ * [5](1,2.1,3.2,3.14,0.2)
74
+ * \endcode
75
+ *
76
+ * You can use it like this
77
+ * \code
78
+ * my_input_stream >> my_vector;
79
+ * \endcode
80
+ *
81
+ * You can only put data into a valid \c vector<> not a \c vector_expression
82
+ *
83
+ * \param is is a standard basic input stream
84
+ * \param v is a vector
85
+ * \return a reference to the resulting input stream
86
+ */
87
+ template<class E, class T, class VT, class VA>
88
+ // BOOST_UBLAS_INLINE This function seems to be big. So we do not let the compiler inline it.
89
+ std::basic_istream<E, T> &operator >> (std::basic_istream<E, T> &is,
90
+ vector<VT, VA> &v) {
91
+ typedef typename vector<VT, VA>::size_type size_type;
92
+ E ch;
93
+ size_type size;
94
+ if (is >> ch && ch != '[') {
95
+ is.putback (ch);
96
+ is.setstate (std::ios_base::failbit);
97
+ } else if (is >> size >> ch && ch != ']') {
98
+ is.putback (ch);
99
+ is.setstate (std::ios_base::failbit);
100
+ } else if (! is.fail ()) {
101
+ vector<VT, VA> s (size);
102
+ if (is >> ch && ch != '(') {
103
+ is.putback (ch);
104
+ is.setstate (std::ios_base::failbit);
105
+ } else if (! is.fail ()) {
106
+ for (size_type i = 0; i < size; i ++) {
107
+ if (is >> s (i) >> ch && ch != ',') {
108
+ is.putback (ch);
109
+ if (i < size - 1)
110
+ is.setstate (std::ios_base::failbit);
111
+ break;
112
+ }
113
+ }
114
+ if (is >> ch && ch != ')') {
115
+ is.putback (ch);
116
+ is.setstate (std::ios_base::failbit);
117
+ }
118
+ }
119
+ if (! is.fail ())
120
+ v.swap (s);
121
+ }
122
+ return is;
123
+ }
124
+
125
+ /** \brief output stream operator for matrix expressions
126
+ *
127
+ * it outpus the content of a \f$(M \times N)\f$ matrix to a standard output
128
+ * stream using the following format:
129
+ * \c[<rows>,<columns>]((<m00>,<m01>,...,<m0N>),...,(<mM0>,<mM1>,...,<mMN>))
130
+ *
131
+ * For example:
132
+ * \code
133
+ * matrix<float> m(3,3) = scalar_matrix<float>(3,3,1.0) - diagonal_matrix<float>(3,3,1.0);
134
+ * cout << m << endl;
135
+ * \encode
136
+ * will display
137
+ * \code
138
+ * [3,3]((0,1,1),(1,0,1),(1,1,0))
139
+ * \endcode
140
+ * This output is made for storing and retrieving matrices in a simple way but you can
141
+ * easily recognize the following:
142
+ * \f[ \left( \begin{array}{ccc} 1 & 1 & 1\\ 1 & 1 & 1\\ 1 & 1 & 1 \end{array} \right) - \left( \begin{array}{ccc} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1 \end{array} \right) = \left( \begin{array}{ccc} 0 & 1 & 1\\ 1 & 0 & 1\\ 1 & 1 & 0 \end{array} \right) \f]
143
+ *
144
+ * \param os is a standard basic output stream
145
+ * \param m is a matrix expression
146
+ * \return a reference to the resulting output stream
147
+ */
148
+ template<class E, class T, class ME>
149
+ // BOOST_UBLAS_INLINE This function seems to be big. So we do not let the compiler inline it.
150
+ std::basic_ostream<E, T> &operator << (std::basic_ostream<E, T> &os,
151
+ const matrix_expression<ME> &m) {
152
+ typedef typename ME::size_type size_type;
153
+ size_type size1 = m ().size1 ();
154
+ size_type size2 = m ().size2 ();
155
+ std::basic_ostringstream<E, T, std::allocator<E> > s;
156
+ s.flags (os.flags ());
157
+ s.imbue (os.getloc ());
158
+ s.precision (os.precision ());
159
+ s << '[' << size1 << ',' << size2 << "](";
160
+ if (size1 > 0) {
161
+ s << '(' ;
162
+ if (size2 > 0)
163
+ s << m () (0, 0);
164
+ for (size_type j = 1; j < size2; ++ j)
165
+ s << ',' << m () (0, j);
166
+ s << ')';
167
+ }
168
+ for (size_type i = 1; i < size1; ++ i) {
169
+ s << ",(" ;
170
+ if (size2 > 0)
171
+ s << m () (i, 0);
172
+ for (size_type j = 1; j < size2; ++ j)
173
+ s << ',' << m () (i, j);
174
+ s << ')';
175
+ }
176
+ s << ')';
177
+ return os << s.str ().c_str ();
178
+ }
179
+
180
+ /** \brief input stream operator for matrices
181
+ *
182
+ * This is used to feed in matrices with data stored as an ASCII representation
183
+ * from a standard input stream.
184
+ *
185
+ * From a file or any valid standard stream, the format is:
186
+ * \c[<rows>,<columns>]((<m00>,<m01>,...,<m0N>),...,(<mM0>,<mM1>,...,<mMN>))
187
+ *
188
+ * You can use it like this
189
+ * \code
190
+ * my_input_stream >> my_matrix;
191
+ * \endcode
192
+ *
193
+ * You can only put data into a valid \c matrix<> not a \c matrix_expression
194
+ *
195
+ * \param is is a standard basic input stream
196
+ * \param m is a matrix
197
+ * \return a reference to the resulting input stream
198
+ */
199
+ template<class E, class T, class MT, class MF, class MA>
200
+ // BOOST_UBLAS_INLINE This function seems to be big. So we do not let the compiler inline it.
201
+ std::basic_istream<E, T> &operator >> (std::basic_istream<E, T> &is,
202
+ matrix<MT, MF, MA> &m) {
203
+ typedef typename matrix<MT, MF, MA>::size_type size_type;
204
+ E ch;
205
+ size_type size1, size2;
206
+ if (is >> ch && ch != '[') {
207
+ is.putback (ch);
208
+ is.setstate (std::ios_base::failbit);
209
+ } else if (is >> size1 >> ch && ch != ',') {
210
+ is.putback (ch);
211
+ is.setstate (std::ios_base::failbit);
212
+ } else if (is >> size2 >> ch && ch != ']') {
213
+ is.putback (ch);
214
+ is.setstate (std::ios_base::failbit);
215
+ } else if (! is.fail ()) {
216
+ matrix<MT, MF, MA> s (size1, size2);
217
+ if (is >> ch && ch != '(') {
218
+ is.putback (ch);
219
+ is.setstate (std::ios_base::failbit);
220
+ } else if (! is.fail ()) {
221
+ for (size_type i = 0; i < size1; i ++) {
222
+ if (is >> ch && ch != '(') {
223
+ is.putback (ch);
224
+ is.setstate (std::ios_base::failbit);
225
+ break;
226
+ }
227
+ for (size_type j = 0; j < size2; j ++) {
228
+ if (is >> s (i, j) >> ch && ch != ',') {
229
+ is.putback (ch);
230
+ if (j < size2 - 1) {
231
+ is.setstate (std::ios_base::failbit);
232
+ break;
233
+ }
234
+ }
235
+ }
236
+ if (is >> ch && ch != ')') {
237
+ is.putback (ch);
238
+ is.setstate (std::ios_base::failbit);
239
+ break;
240
+ }
241
+ if (is >> ch && ch != ',') {
242
+ is.putback (ch);
243
+ if (i < size1 - 1) {
244
+ is.setstate (std::ios_base::failbit);
245
+ break;
246
+ }
247
+ }
248
+ }
249
+ if (is >> ch && ch != ')') {
250
+ is.putback (ch);
251
+ is.setstate (std::ios_base::failbit);
252
+ }
253
+ }
254
+ if (! is.fail ())
255
+ m.swap (s);
256
+ }
257
+ return is;
258
+ }
259
+
260
+ /** \brief special input stream operator for symmetric matrices
261
+ *
262
+ * This is used to feed in symmetric matrices with data stored as an ASCII
263
+ * representation from a standard input stream.
264
+ *
265
+ * You can simply write your matrices in a file or any valid stream and read them again
266
+ * at a later time with this function. The format is the following:
267
+ * \code [<rows>,<columns>]((<m00>,<m01>,...,<m0N>),...,(<mM0>,<mM1>,...,<mMN>)) \endcode
268
+ *
269
+ * You can use it like this
270
+ * \code
271
+ * my_input_stream >> my_symmetric_matrix;
272
+ * \endcode
273
+ *
274
+ * You can only put data into a valid \c symmetric_matrix<>, not in a \c matrix_expression
275
+ * This function also checks that input data form a valid symmetric matrix
276
+ *
277
+ * \param is is a standard basic input stream
278
+ * \param m is a \c symmetric_matrix
279
+ * \return a reference to the resulting input stream
280
+ */
281
+ template<class E, class T, class MT, class MF1, class MF2, class MA>
282
+ // BOOST_UBLAS_INLINE This function seems to be big. So we do not let the compiler inline it.
283
+ std::basic_istream<E, T> &operator >> (std::basic_istream<E, T> &is,
284
+ symmetric_matrix<MT, MF1, MF2, MA> &m) {
285
+ typedef typename symmetric_matrix<MT, MF1, MF2, MA>::size_type size_type;
286
+ E ch;
287
+ size_type size1, size2;
288
+ MT value;
289
+ if (is >> ch && ch != '[') {
290
+ is.putback (ch);
291
+ is.setstate (std::ios_base::failbit);
292
+ } else if (is >> size1 >> ch && ch != ',') {
293
+ is.putback (ch);
294
+ is.setstate (std::ios_base::failbit);
295
+ } else if (is >> size2 >> ch && (size2 != size1 || ch != ']')) { // symmetric matrix must be square
296
+ is.putback (ch);
297
+ is.setstate (std::ios_base::failbit);
298
+ } else if (! is.fail ()) {
299
+ symmetric_matrix<MT, MF1, MF2, MA> s (size1, size2);
300
+ if (is >> ch && ch != '(') {
301
+ is.putback (ch);
302
+ is.setstate (std::ios_base::failbit);
303
+ } else if (! is.fail ()) {
304
+ for (size_type i = 0; i < size1; i ++) {
305
+ if (is >> ch && ch != '(') {
306
+ is.putback (ch);
307
+ is.setstate (std::ios_base::failbit);
308
+ break;
309
+ }
310
+ for (size_type j = 0; j < size2; j ++) {
311
+ if (is >> value >> ch && ch != ',') {
312
+ is.putback (ch);
313
+ if (j < size2 - 1) {
314
+ is.setstate (std::ios_base::failbit);
315
+ break;
316
+ }
317
+ }
318
+ if (i <= j) {
319
+ // this is the first time we read this element - set the value
320
+ s(i,j) = value;
321
+ }
322
+ else if ( s(i,j) != value ) {
323
+ // matrix is not symmetric
324
+ is.setstate (std::ios_base::failbit);
325
+ break;
326
+ }
327
+ }
328
+ if (is >> ch && ch != ')') {
329
+ is.putback (ch);
330
+ is.setstate (std::ios_base::failbit);
331
+ break;
332
+ }
333
+ if (is >> ch && ch != ',') {
334
+ is.putback (ch);
335
+ if (i < size1 - 1) {
336
+ is.setstate (std::ios_base::failbit);
337
+ break;
338
+ }
339
+ }
340
+ }
341
+ if (is >> ch && ch != ')') {
342
+ is.putback (ch);
343
+ is.setstate (std::ios_base::failbit);
344
+ }
345
+ }
346
+ if (! is.fail ())
347
+ m.swap (s);
348
+ }
349
+ return is;
350
+ }
351
+
352
+
353
+ }}}
354
+
355
+ #endif