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,234 @@
1
+ // (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
2
+ // Use, modification, and distribution is subject to the Boost Software
3
+ // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
4
+ // http://www.boost.org/LICENSE_1_0.txt)
5
+
6
+ // See library home page at http://www.boost.org/libs/numeric/conversion
7
+ //
8
+ // Contact the author at: fernando_cacciola@hotmail.com
9
+ //
10
+ #ifndef BOOST_NUMERIC_CONVERSION_DETAIL_IS_SUBRANGED_FLC_12NOV2002_HPP
11
+ #define BOOST_NUMERIC_CONVERSION_DETAIL_IS_SUBRANGED_FLC_12NOV2002_HPP
12
+
13
+ #include "boost/config.hpp"
14
+ #include "boost/limits.hpp"
15
+
16
+ #include "boost/mpl/int.hpp"
17
+ #include "boost/mpl/multiplies.hpp"
18
+ #include "boost/mpl/less.hpp"
19
+ #include "boost/mpl/equal_to.hpp"
20
+
21
+ #include "boost/type_traits/is_same.hpp"
22
+
23
+ #include "boost/numeric/conversion/detail/meta.hpp"
24
+ #include "boost/numeric/conversion/detail/int_float_mixture.hpp"
25
+ #include "boost/numeric/conversion/detail/sign_mixture.hpp"
26
+ #include "boost/numeric/conversion/detail/udt_builtin_mixture.hpp"
27
+
28
+ namespace boost { namespace numeric { namespace convdetail
29
+ {
30
+ //---------------------------------------------------------------
31
+ // Implementations of the compile time predicate "T is subranged"
32
+ //---------------------------------------------------------------
33
+
34
+ // for integral to integral conversions
35
+ template<class T,class S>
36
+ struct subranged_Sig2Unsig
37
+ {
38
+ // Signed to unsigned conversions are 'subranged' because of possible loose
39
+ // of negative values.
40
+ typedef mpl::true_ type ;
41
+ } ;
42
+
43
+ // for unsigned integral to signed integral conversions
44
+ template<class T,class S>
45
+ struct subranged_Unsig2Sig
46
+ {
47
+ // IMPORTANT NOTE:
48
+ //
49
+ // This code assumes that signed/unsigned integral values are represented
50
+ // such that:
51
+ //
52
+ // numeric_limits<signed T>::digits + 1 == numeric_limits<unsigned T>::digits
53
+ //
54
+ // The '+1' is required since numeric_limits<>::digits gives 1 bit less for signed integral types.
55
+ //
56
+ // This fact is used by the following logic:
57
+ //
58
+ // if ( (numeric_limits<T>::digits+1) < (2*numeric_limits<S>::digits) )
59
+ // then the conversion is subranged.
60
+ //
61
+
62
+ typedef mpl::int_< ::std::numeric_limits<S>::digits > S_digits ;
63
+ typedef mpl::int_< ::std::numeric_limits<T>::digits > T_digits ;
64
+
65
+ // T is signed, so take digits+1
66
+ typedef typename T_digits::next u_T_digits ;
67
+
68
+ typedef mpl::int_<2> Two ;
69
+
70
+ typedef typename mpl::multiplies<S_digits,Two>::type S_digits_times_2 ;
71
+
72
+ typedef typename mpl::less<u_T_digits,S_digits_times_2>::type type ;
73
+ } ;
74
+
75
+ // for integral to integral conversions of the same sign.
76
+ template<class T,class S>
77
+ struct subranged_SameSign
78
+ {
79
+ // An integral conversion of the same sign is subranged if digits(T) < digits(S).
80
+
81
+ typedef mpl::int_< ::std::numeric_limits<S>::digits > S_digits ;
82
+ typedef mpl::int_< ::std::numeric_limits<T>::digits > T_digits ;
83
+
84
+ typedef typename mpl::less<T_digits,S_digits>::type type ;
85
+ } ;
86
+
87
+ // for integral to float conversions
88
+ template<class T,class S>
89
+ struct subranged_Int2Float
90
+ {
91
+ typedef mpl::false_ type ;
92
+ } ;
93
+
94
+ // for float to integral conversions
95
+ template<class T,class S>
96
+ struct subranged_Float2Int
97
+ {
98
+ typedef mpl::true_ type ;
99
+ } ;
100
+
101
+ // for float to float conversions
102
+ template<class T,class S>
103
+ struct subranged_Float2Float
104
+ {
105
+ // If both T and S are floats,
106
+ // compare exponent bits and if they match, mantisa bits.
107
+
108
+ typedef mpl::int_< ::std::numeric_limits<S>::digits > S_mantisa ;
109
+ typedef mpl::int_< ::std::numeric_limits<T>::digits > T_mantisa ;
110
+
111
+ typedef mpl::int_< ::std::numeric_limits<S>::max_exponent > S_exponent ;
112
+ typedef mpl::int_< ::std::numeric_limits<T>::max_exponent > T_exponent ;
113
+
114
+ typedef typename mpl::less<T_exponent,S_exponent>::type T_smaller_exponent ;
115
+
116
+ typedef typename mpl::equal_to<T_exponent,S_exponent>::type equal_exponents ;
117
+
118
+ typedef mpl::less<T_mantisa,S_mantisa> T_smaller_mantisa ;
119
+
120
+ typedef mpl::eval_if<equal_exponents,T_smaller_mantisa,mpl::false_> not_bigger_exponent_case ;
121
+
122
+ typedef typename
123
+ mpl::eval_if<T_smaller_exponent,mpl::true_,not_bigger_exponent_case>::type
124
+ type ;
125
+ } ;
126
+
127
+ // for Udt to built-in conversions
128
+ template<class T,class S>
129
+ struct subranged_Udt2BuiltIn
130
+ {
131
+ typedef mpl::true_ type ;
132
+ } ;
133
+
134
+ // for built-in to Udt conversions
135
+ template<class T,class S>
136
+ struct subranged_BuiltIn2Udt
137
+ {
138
+ typedef mpl::false_ type ;
139
+ } ;
140
+
141
+ // for Udt to Udt conversions
142
+ template<class T,class S>
143
+ struct subranged_Udt2Udt
144
+ {
145
+ typedef mpl::false_ type ;
146
+ } ;
147
+
148
+ //-------------------------------------------------------------------
149
+ // Selectors for the implementations of the subranged predicate
150
+ //-------------------------------------------------------------------
151
+
152
+ template<class T,class S>
153
+ struct get_subranged_Int2Int
154
+ {
155
+ typedef subranged_SameSign<T,S> Sig2Sig ;
156
+ typedef subranged_Sig2Unsig<T,S> Sig2Unsig ;
157
+ typedef subranged_Unsig2Sig<T,S> Unsig2Sig ;
158
+ typedef Sig2Sig Unsig2Unsig ;
159
+
160
+ typedef typename get_sign_mixture<T,S>::type sign_mixture ;
161
+
162
+ typedef typename
163
+ for_sign_mixture<sign_mixture, Sig2Sig, Sig2Unsig, Unsig2Sig, Unsig2Unsig>::type
164
+ type ;
165
+ } ;
166
+
167
+ template<class T,class S>
168
+ struct get_subranged_BuiltIn2BuiltIn
169
+ {
170
+ typedef get_subranged_Int2Int<T,S> Int2IntQ ;
171
+
172
+ typedef subranged_Int2Float <T,S> Int2Float ;
173
+ typedef subranged_Float2Int <T,S> Float2Int ;
174
+ typedef subranged_Float2Float<T,S> Float2Float ;
175
+
176
+ typedef mpl::identity<Int2Float > Int2FloatQ ;
177
+ typedef mpl::identity<Float2Int > Float2IntQ ;
178
+ typedef mpl::identity<Float2Float> Float2FloatQ ;
179
+
180
+ typedef typename get_int_float_mixture<T,S>::type int_float_mixture ;
181
+
182
+ typedef for_int_float_mixture<int_float_mixture, Int2IntQ, Int2FloatQ, Float2IntQ, Float2FloatQ> for_ ;
183
+
184
+ typedef typename for_::type selected ;
185
+
186
+ typedef typename selected::type type ;
187
+ } ;
188
+
189
+ template<class T,class S>
190
+ struct get_subranged
191
+ {
192
+ typedef get_subranged_BuiltIn2BuiltIn<T,S> BuiltIn2BuiltInQ ;
193
+
194
+ typedef subranged_BuiltIn2Udt<T,S> BuiltIn2Udt ;
195
+ typedef subranged_Udt2BuiltIn<T,S> Udt2BuiltIn ;
196
+ typedef subranged_Udt2Udt<T,S> Udt2Udt ;
197
+
198
+ typedef mpl::identity<BuiltIn2Udt> BuiltIn2UdtQ ;
199
+ typedef mpl::identity<Udt2BuiltIn> Udt2BuiltInQ ;
200
+ typedef mpl::identity<Udt2Udt > Udt2UdtQ ;
201
+
202
+ typedef typename get_udt_builtin_mixture<T,S>::type udt_builtin_mixture ;
203
+
204
+ typedef typename
205
+ for_udt_builtin_mixture<udt_builtin_mixture, BuiltIn2BuiltInQ, BuiltIn2UdtQ, Udt2BuiltInQ, Udt2UdtQ>::type
206
+ selected ;
207
+
208
+ typedef typename selected::type selected2 ;
209
+
210
+ typedef typename selected2::type type ;
211
+ } ;
212
+
213
+
214
+ //-------------------------------------------------------------------
215
+ // Top level implementation selector.
216
+ //-------------------------------------------------------------------
217
+ template<class T, class S>
218
+ struct get_is_subranged
219
+ {
220
+ typedef get_subranged<T,S> non_trivial_case ;
221
+ typedef mpl::identity<mpl::false_> trivial_case ;
222
+
223
+ typedef is_same<T,S> is_trivial ;
224
+
225
+ typedef typename mpl::if_<is_trivial,trivial_case,non_trivial_case>::type selected ;
226
+
227
+ typedef typename selected::type type ;
228
+ } ;
229
+
230
+ } } } // namespace boost::numeric::convdetail
231
+
232
+ #endif
233
+
234
+
@@ -0,0 +1,120 @@
1
+ // (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
2
+ // Use, modification, and distribution is subject to the Boost Software
3
+ // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
4
+ // http://www.boost.org/LICENSE_1_0.txt)
5
+
6
+ // See library home page at http://www.boost.org/libs/numeric/conversion
7
+ //
8
+ // Contact the author at: fernando_cacciola@hotmail.com
9
+ //
10
+ #ifndef BOOST_NUMERIC_CONVERSION_DETAIL_META_FLC_12NOV2002_HPP
11
+ #define BOOST_NUMERIC_CONVERSION_DETAIL_META_FLC_12NOV2002_HPP
12
+
13
+ #include "boost/type_traits/remove_cv.hpp"
14
+
15
+ #include "boost/mpl/if.hpp"
16
+ #include "boost/mpl/eval_if.hpp"
17
+ #include "boost/mpl/equal_to.hpp"
18
+ #include "boost/mpl/not.hpp"
19
+ #include "boost/mpl/and.hpp"
20
+ #include "boost/mpl/bool.hpp"
21
+ #include "boost/mpl/identity.hpp"
22
+
23
+ namespace boost { namespace numeric { namespace convdetail
24
+ {
25
+ template< class T1, class T2>
26
+ struct equal_to
27
+ {
28
+ #if !defined(BOOST_BORLANDC)
29
+
30
+ enum { x = ( BOOST_MPL_AUX_VALUE_WKND(T1)::value == BOOST_MPL_AUX_VALUE_WKND(T2)::value ) };
31
+
32
+ BOOST_STATIC_CONSTANT(bool, value = x);
33
+
34
+ typedef mpl::bool_<value> type;
35
+
36
+ #else
37
+
38
+ BOOST_STATIC_CONSTANT(bool, value = (
39
+ BOOST_MPL_AUX_VALUE_WKND(T1)::value
40
+ == BOOST_MPL_AUX_VALUE_WKND(T2)::value
41
+ ));
42
+
43
+ typedef mpl::bool_<(
44
+ BOOST_MPL_AUX_VALUE_WKND(T1)::value
45
+ == BOOST_MPL_AUX_VALUE_WKND(T2)::value
46
+ )> type;
47
+ #endif
48
+ };
49
+
50
+ // Metafunction:
51
+ //
52
+ // ct_switch4<Value,Case0Val,Case1Val,Case2Val,Case0Type,Case1Type,Case2Type,DefaultType>::type
53
+ //
54
+ // {Value,Case(X)Val} are Integral Constants (such as: mpl::int_<>)
55
+ // {Case(X)Type,DefaultType} are arbitrary types. (not metafunctions)
56
+ //
57
+ // Returns Case(X)Type if Val==Case(X)Val; DefaultType otherwise.
58
+ //
59
+ template<class Value,
60
+ class Case0Val,
61
+ class Case1Val,
62
+ class Case2Val,
63
+ class Case0Type,
64
+ class Case1Type,
65
+ class Case2Type,
66
+ class DefaultType
67
+ >
68
+ struct ct_switch4
69
+ {
70
+ typedef mpl::identity<Case0Type> Case0TypeQ ;
71
+ typedef mpl::identity<Case1Type> Case1TypeQ ;
72
+
73
+ typedef equal_to<Value,Case0Val> is_case0 ;
74
+ typedef equal_to<Value,Case1Val> is_case1 ;
75
+ typedef equal_to<Value,Case2Val> is_case2 ;
76
+
77
+ typedef mpl::if_<is_case2,Case2Type,DefaultType> choose_2_3Q ;
78
+ typedef mpl::eval_if<is_case1,Case1TypeQ,choose_2_3Q> choose_1_2_3Q ;
79
+
80
+ typedef typename
81
+ mpl::eval_if<is_case0,Case0TypeQ,choose_1_2_3Q>::type
82
+ type ;
83
+ } ;
84
+
85
+
86
+
87
+
88
+ // Metafunction:
89
+ //
90
+ // for_both<expr0,expr1,TT,TF,FT,FF>::type
91
+ //
92
+ // {exp0,expr1} are Boolean Integral Constants
93
+ // {TT,TF,FT,FF} are aribtrary types. (not metafunctions)
94
+ //
95
+ // According to the combined boolean value of 'expr0 && expr1', selects the corresponding type.
96
+ //
97
+ template<class expr0, class expr1, class TT, class TF, class FT, class FF>
98
+ struct for_both
99
+ {
100
+ typedef mpl::identity<TF> TF_Q ;
101
+ typedef mpl::identity<TT> TT_Q ;
102
+
103
+ typedef typename mpl::not_<expr0>::type not_expr0 ;
104
+ typedef typename mpl::not_<expr1>::type not_expr1 ;
105
+
106
+ typedef typename mpl::and_<expr0,expr1>::type caseTT ;
107
+ typedef typename mpl::and_<expr0,not_expr1>::type caseTF ;
108
+ typedef typename mpl::and_<not_expr0,expr1>::type caseFT ;
109
+
110
+ typedef mpl::if_<caseFT,FT,FF> choose_FT_FF_Q ;
111
+ typedef mpl::eval_if<caseTF,TF_Q,choose_FT_FF_Q> choose_TF_FT_FF_Q ;
112
+
113
+ typedef typename mpl::eval_if<caseTT,TT_Q,choose_TF_FT_FF_Q>::type type ;
114
+ } ;
115
+
116
+ } } } // namespace boost::numeric::convdetail
117
+
118
+ #endif
119
+
120
+
@@ -0,0 +1,138 @@
1
+ //
2
+ //! Copyright (c) 2011-2012
3
+ //! Brandon Kohn
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
+
10
+ #if !defined(BOOST_NUMERIC_CONVERSION_DONT_USE_PREPROCESSED_FILES)
11
+
12
+ #include <boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp>
13
+
14
+ #if !defined(BOOST_NO_LONG_LONG)
15
+ #include <boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp>
16
+ #endif
17
+
18
+ #else
19
+ #if !BOOST_PP_IS_ITERATING
20
+
21
+ #include <boost/preprocessor/seq/elem.hpp>
22
+ #include <boost/preprocessor/seq/size.hpp>
23
+ #include <boost/preprocessor/iteration/iterate.hpp>
24
+
25
+ #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
26
+ #pragma wave option(preserve: 2, line: 0, output: "preprocessed/numeric_cast_traits_common.hpp")
27
+ #endif
28
+ //
29
+ //! Copyright (c) 2011-2012
30
+ //! Brandon Kohn
31
+ //
32
+ // Distributed under the Boost Software License, Version 1.0. (See
33
+ // accompanying file LICENSE_1_0.txt or copy at
34
+ // http://www.boost.org/LICENSE_1_0.txt)
35
+ //
36
+ #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
37
+ #pragma wave option(preserve: 1)
38
+ #endif
39
+
40
+ //! These are the assumed common built in fundamental types (not typedefs/macros.)
41
+ #define BOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES() \
42
+ (char) \
43
+ (signed char) \
44
+ (unsigned char) \
45
+ (short) \
46
+ (unsigned short) \
47
+ (int) \
48
+ (unsigned int) \
49
+ (long) \
50
+ (unsigned long) \
51
+ (float) \
52
+ (double) \
53
+ (long double) \
54
+ /***/
55
+
56
+ #define BOOST_NUMERIC_CONVERSION_SEQ_A() BOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES()
57
+ #define BOOST_NUMERIC_CONVERSION_SEQ_B() BOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES()
58
+
59
+ namespace boost { namespace numeric {
60
+
61
+ #define BOOST_PP_ITERATION_PARAMS_1 (3, (0, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_NUMERIC_CONVERSION_SEQ_A())), <boost/numeric/conversion/detail/numeric_cast_traits.hpp>))
62
+ #include BOOST_PP_ITERATE()
63
+
64
+ }}//namespace boost::numeric;
65
+
66
+ #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
67
+ #pragma wave option(output: null)
68
+ #endif
69
+
70
+ #if ( defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES) ) || !defined(BOOST_NO_LONG_LONG)
71
+
72
+ #undef BOOST_NUMERIC_CONVERSION_SEQ_A
73
+ #undef BOOST_NUMERIC_CONVERSION_SEQ_B
74
+
75
+ #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
76
+ #pragma wave option(preserve: 2, line: 0, output: "preprocessed/numeric_cast_traits_long_long.hpp")
77
+ #endif
78
+
79
+ //
80
+ //! Copyright (c) 2011-2012
81
+ //! Brandon Kohn
82
+ //
83
+ // Distributed under the Boost Software License, Version 1.0. (See
84
+ // accompanying file LICENSE_1_0.txt or copy at
85
+ // http://www.boost.org/LICENSE_1_0.txt)
86
+ //
87
+ #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
88
+ #pragma wave option(preserve: 1)
89
+ #endif
90
+
91
+ namespace boost { namespace numeric {
92
+
93
+ #define BOOST_NUMERIC_CONVERSION_SEQ_A() BOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES()(boost::long_long_type)(boost::ulong_long_type)
94
+ #define BOOST_NUMERIC_CONVERSION_SEQ_B() (boost::long_long_type)(boost::ulong_long_type)
95
+
96
+ #define BOOST_PP_ITERATION_PARAMS_1 (3, (0, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_NUMERIC_CONVERSION_SEQ_A())), <boost/numeric/conversion/detail/numeric_cast_traits.hpp>))
97
+ #include BOOST_PP_ITERATE()
98
+
99
+ }}//namespace boost::numeric;
100
+
101
+ #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
102
+ #pragma wave option(output: null)
103
+ #endif
104
+
105
+ #endif
106
+
107
+ #undef BOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES
108
+ #undef BOOST_NUMERIC_CONVERSION_SEQ_A
109
+ #undef BOOST_NUMERIC_CONVERSION_SEQ_B
110
+
111
+ #elif BOOST_PP_ITERATION_DEPTH() == 1
112
+
113
+ #define BOOST_PP_ITERATION_PARAMS_2 (3, (0, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_NUMERIC_CONVERSION_SEQ_B())), <boost/numeric/conversion/detail/numeric_cast_traits.hpp>))
114
+ #include BOOST_PP_ITERATE()
115
+
116
+ #elif BOOST_PP_ITERATION_DEPTH() == 2
117
+
118
+ //! Generate default traits for the specified source and target.
119
+ #define BOOST_NUMERIC_CONVERSION_A BOOST_PP_FRAME_ITERATION(1)
120
+ #define BOOST_NUMERIC_CONVERSION_B BOOST_PP_FRAME_ITERATION(2)
121
+
122
+ template <>
123
+ struct numeric_cast_traits
124
+ <
125
+ BOOST_PP_SEQ_ELEM(BOOST_NUMERIC_CONVERSION_A, BOOST_NUMERIC_CONVERSION_SEQ_A())
126
+ , BOOST_PP_SEQ_ELEM(BOOST_NUMERIC_CONVERSION_B, BOOST_NUMERIC_CONVERSION_SEQ_B())
127
+ >
128
+ {
129
+ typedef def_overflow_handler overflow_policy;
130
+ typedef UseInternalRangeChecker range_checking_policy;
131
+ typedef Trunc<BOOST_PP_SEQ_ELEM(BOOST_NUMERIC_CONVERSION_B, BOOST_NUMERIC_CONVERSION_SEQ_B())> rounding_policy;
132
+ };
133
+
134
+ #undef BOOST_NUMERIC_CONVERSION_A
135
+ #undef BOOST_NUMERIC_CONVERSION_B
136
+
137
+ #endif//! Depth 2.
138
+ #endif// BOOST_NUMERIC_CONVERSION_DONT_USE_PREPROCESSED_FILES