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.
- package/README.md +29 -2
- package/boost/cast.hpp +20 -0
- package/boost/numeric/conversion/bounds.hpp +24 -0
- package/boost/numeric/conversion/cast.hpp +61 -0
- package/boost/numeric/conversion/conversion_traits.hpp +32 -0
- package/boost/numeric/conversion/converter.hpp +68 -0
- package/boost/numeric/conversion/converter_policies.hpp +194 -0
- package/boost/numeric/conversion/detail/bounds.hpp +58 -0
- package/boost/numeric/conversion/detail/conversion_traits.hpp +97 -0
- package/boost/numeric/conversion/detail/converter.hpp +593 -0
- package/boost/numeric/conversion/detail/int_float_mixture.hpp +72 -0
- package/boost/numeric/conversion/detail/is_subranged.hpp +234 -0
- package/boost/numeric/conversion/detail/meta.hpp +120 -0
- package/boost/numeric/conversion/detail/numeric_cast_traits.hpp +138 -0
- package/boost/numeric/conversion/detail/old_numeric_cast.hpp +308 -0
- package/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp +1741 -0
- package/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp +347 -0
- package/boost/numeric/conversion/detail/sign_mixture.hpp +72 -0
- package/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +69 -0
- package/boost/numeric/conversion/int_float_mixture.hpp +30 -0
- package/boost/numeric/conversion/int_float_mixture_enum.hpp +29 -0
- package/boost/numeric/conversion/is_subranged.hpp +27 -0
- package/boost/numeric/conversion/numeric_cast_traits.hpp +31 -0
- package/boost/numeric/conversion/sign_mixture.hpp +30 -0
- package/boost/numeric/conversion/sign_mixture_enum.hpp +29 -0
- package/boost/numeric/conversion/udt_builtin_mixture.hpp +28 -0
- package/boost/numeric/conversion/udt_builtin_mixture_enum.hpp +26 -0
- package/boost/numeric/interval/arith.hpp +305 -0
- package/boost/numeric/interval/arith2.hpp +304 -0
- package/boost/numeric/interval/arith3.hpp +69 -0
- package/boost/numeric/interval/checking.hpp +130 -0
- package/boost/numeric/interval/compare/certain.hpp +113 -0
- package/boost/numeric/interval/compare/explicit.hpp +248 -0
- package/boost/numeric/interval/compare/lexicographic.hpp +122 -0
- package/boost/numeric/interval/compare/possible.hpp +113 -0
- package/boost/numeric/interval/compare/set.hpp +101 -0
- package/boost/numeric/interval/compare/tribool.hpp +138 -0
- package/boost/numeric/interval/compare.hpp +19 -0
- package/boost/numeric/interval/constants.hpp +85 -0
- package/boost/numeric/interval/detail/alpha_rounding_control.hpp +113 -0
- package/boost/numeric/interval/detail/bcc_rounding_control.hpp +57 -0
- package/boost/numeric/interval/detail/bugs.hpp +48 -0
- package/boost/numeric/interval/detail/c99_rounding_control.hpp +50 -0
- package/boost/numeric/interval/detail/c99sub_rounding_control.hpp +43 -0
- package/boost/numeric/interval/detail/division.hpp +194 -0
- package/boost/numeric/interval/detail/ia64_rounding_control.hpp +83 -0
- package/boost/numeric/interval/detail/interval_prototype.hpp +41 -0
- package/boost/numeric/interval/detail/msvc_rounding_control.hpp +113 -0
- package/boost/numeric/interval/detail/ppc_rounding_control.hpp +99 -0
- package/boost/numeric/interval/detail/sparc_rounding_control.hpp +112 -0
- package/boost/numeric/interval/detail/test_input.hpp +76 -0
- package/boost/numeric/interval/detail/x86_rounding_control.hpp +108 -0
- package/boost/numeric/interval/detail/x86gcc_rounding_control.hpp +51 -0
- package/boost/numeric/interval/ext/integer.hpp +70 -0
- package/boost/numeric/interval/ext/x86_fast_rounding_control.hpp +70 -0
- package/boost/numeric/interval/hw_rounding.hpp +73 -0
- package/boost/numeric/interval/interval.hpp +450 -0
- package/boost/numeric/interval/io.hpp +41 -0
- package/boost/numeric/interval/limits.hpp +49 -0
- package/boost/numeric/interval/policies.hpp +75 -0
- package/boost/numeric/interval/rounded_arith.hpp +120 -0
- package/boost/numeric/interval/rounded_transc.hpp +140 -0
- package/boost/numeric/interval/rounding.hpp +101 -0
- package/boost/numeric/interval/transc.hpp +232 -0
- package/boost/numeric/interval/utility.hpp +335 -0
- package/boost/numeric/interval/utility_fwd.hpp +172 -0
- package/boost/numeric/interval.hpp +32 -0
- package/boost/numeric/odeint/algebra/algebra_dispatcher.hpp +86 -0
- package/boost/numeric/odeint/algebra/array_algebra.hpp +293 -0
- package/boost/numeric/odeint/algebra/default_operations.hpp +599 -0
- package/boost/numeric/odeint/algebra/detail/extract_value_type.hpp +51 -0
- package/boost/numeric/odeint/algebra/detail/for_each.hpp +165 -0
- package/boost/numeric/odeint/algebra/detail/macros.hpp +35 -0
- package/boost/numeric/odeint/algebra/detail/norm_inf.hpp +46 -0
- package/boost/numeric/odeint/algebra/fusion_algebra.hpp +216 -0
- package/boost/numeric/odeint/algebra/fusion_algebra_dispatcher.hpp +48 -0
- package/boost/numeric/odeint/algebra/multi_array_algebra.hpp +146 -0
- package/boost/numeric/odeint/algebra/norm_result_type.hpp +33 -0
- package/boost/numeric/odeint/algebra/operations_dispatcher.hpp +41 -0
- package/boost/numeric/odeint/algebra/range_algebra.hpp +142 -0
- package/boost/numeric/odeint/algebra/vector_space_algebra.hpp +175 -0
- package/boost/numeric/odeint/config.hpp +53 -0
- package/boost/numeric/odeint/external/blaze/blaze_algebra_dispatcher.hpp +55 -0
- package/boost/numeric/odeint/external/blaze/blaze_resize.hpp +64 -0
- package/boost/numeric/odeint/external/compute/compute.hpp +27 -0
- package/boost/numeric/odeint/external/compute/compute_algebra.hpp +65 -0
- package/boost/numeric/odeint/external/compute/compute_algebra_dispatcher.hpp +41 -0
- package/boost/numeric/odeint/external/compute/compute_operations.hpp +198 -0
- package/boost/numeric/odeint/external/compute/compute_operations_dispatcher.hpp +44 -0
- package/boost/numeric/odeint/external/compute/compute_resize.hpp +92 -0
- package/boost/numeric/odeint/external/eigen/eigen.hpp +27 -0
- package/boost/numeric/odeint/external/eigen/eigen_algebra.hpp +98 -0
- package/boost/numeric/odeint/external/eigen/eigen_algebra_dispatcher.hpp +49 -0
- package/boost/numeric/odeint/external/eigen/eigen_resize.hpp +103 -0
- package/boost/numeric/odeint/external/gsl/gsl_wrapper.hpp +228 -0
- package/boost/numeric/odeint/external/mkl/mkl_operations.hpp +181 -0
- package/boost/numeric/odeint/external/mpi/mpi.hpp +25 -0
- package/boost/numeric/odeint/external/mpi/mpi_nested_algebra.hpp +62 -0
- package/boost/numeric/odeint/external/mpi/mpi_state.hpp +113 -0
- package/boost/numeric/odeint/external/mpi/mpi_vector_state.hpp +95 -0
- package/boost/numeric/odeint/external/mtl4/implicit_euler_mtl4.hpp +161 -0
- package/boost/numeric/odeint/external/mtl4/mtl4.hpp +23 -0
- package/boost/numeric/odeint/external/mtl4/mtl4_algebra_dispatcher.hpp +99 -0
- package/boost/numeric/odeint/external/mtl4/mtl4_resize.hpp +134 -0
- package/boost/numeric/odeint/external/nt2/nt2_algebra_dispatcher.hpp +25 -0
- package/boost/numeric/odeint/external/nt2/nt2_copy.hpp +33 -0
- package/boost/numeric/odeint/external/nt2/nt2_norm_inf.hpp +31 -0
- package/boost/numeric/odeint/external/nt2/nt2_resize.hpp +54 -0
- package/boost/numeric/odeint/external/openmp/openmp.hpp +31 -0
- package/boost/numeric/odeint/external/openmp/openmp_nested_algebra.hpp +281 -0
- package/boost/numeric/odeint/external/openmp/openmp_range_algebra.hpp +276 -0
- package/boost/numeric/odeint/external/openmp/openmp_state.hpp +172 -0
- package/boost/numeric/odeint/external/thrust/thrust.hpp +27 -0
- package/boost/numeric/odeint/external/thrust/thrust_algebra.hpp +217 -0
- package/boost/numeric/odeint/external/thrust/thrust_algebra_dispatcher.hpp +118 -0
- package/boost/numeric/odeint/external/thrust/thrust_operations.hpp +233 -0
- package/boost/numeric/odeint/external/thrust/thrust_operations_dispatcher.hpp +118 -0
- package/boost/numeric/odeint/external/thrust/thrust_resize.hpp +197 -0
- package/boost/numeric/odeint/external/vexcl/vexcl.hpp +28 -0
- package/boost/numeric/odeint/external/vexcl/vexcl_abs.hpp +61 -0
- package/boost/numeric/odeint/external/vexcl/vexcl_algebra_dispatcher.hpp +51 -0
- package/boost/numeric/odeint/external/vexcl/vexcl_copy.hpp +55 -0
- package/boost/numeric/odeint/external/vexcl/vexcl_norm_inf.hpp +68 -0
- package/boost/numeric/odeint/external/vexcl/vexcl_resize.hpp +96 -0
- package/boost/numeric/odeint/external/vexcl/vexcl_same_instance.hpp +58 -0
- package/boost/numeric/odeint/external/viennacl/viennacl_operations.hpp +226 -0
- package/boost/numeric/odeint/external/viennacl/viennacl_resize.hpp +68 -0
- package/boost/numeric/odeint/integrate/check_adapter.hpp +222 -0
- package/boost/numeric/odeint/integrate/detail/functors.hpp +70 -0
- package/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp +161 -0
- package/boost/numeric/odeint/integrate/detail/integrate_const.hpp +167 -0
- package/boost/numeric/odeint/integrate/detail/integrate_n_steps.hpp +161 -0
- package/boost/numeric/odeint/integrate/detail/integrate_times.hpp +179 -0
- package/boost/numeric/odeint/integrate/integrate.hpp +133 -0
- package/boost/numeric/odeint/integrate/integrate_adaptive.hpp +127 -0
- package/boost/numeric/odeint/integrate/integrate_const.hpp +195 -0
- package/boost/numeric/odeint/integrate/integrate_n_steps.hpp +178 -0
- package/boost/numeric/odeint/integrate/integrate_times.hpp +220 -0
- package/boost/numeric/odeint/integrate/max_step_checker.hpp +114 -0
- package/boost/numeric/odeint/integrate/null_observer.hpp +38 -0
- package/boost/numeric/odeint/integrate/observer_collection.hpp +55 -0
- package/boost/numeric/odeint/iterator/adaptive_iterator.hpp +183 -0
- package/boost/numeric/odeint/iterator/adaptive_time_iterator.hpp +175 -0
- package/boost/numeric/odeint/iterator/const_step_iterator.hpp +180 -0
- package/boost/numeric/odeint/iterator/const_step_time_iterator.hpp +173 -0
- package/boost/numeric/odeint/iterator/detail/ode_iterator_base.hpp +199 -0
- package/boost/numeric/odeint/iterator/impl/adaptive_iterator_impl.hpp +251 -0
- package/boost/numeric/odeint/iterator/impl/const_step_iterator_impl.hpp +228 -0
- package/boost/numeric/odeint/iterator/impl/n_step_iterator_impl.hpp +239 -0
- package/boost/numeric/odeint/iterator/impl/times_iterator_impl.hpp +369 -0
- package/boost/numeric/odeint/iterator/integrate/detail/functors.hpp +70 -0
- package/boost/numeric/odeint/iterator/integrate/detail/integrate_adaptive.hpp +121 -0
- package/boost/numeric/odeint/iterator/integrate/detail/integrate_const.hpp +111 -0
- package/boost/numeric/odeint/iterator/integrate/detail/integrate_n_steps.hpp +107 -0
- package/boost/numeric/odeint/iterator/integrate/detail/integrate_times.hpp +67 -0
- package/boost/numeric/odeint/iterator/integrate/integrate.hpp +111 -0
- package/boost/numeric/odeint/iterator/integrate/integrate_adaptive.hpp +127 -0
- package/boost/numeric/odeint/iterator/integrate/integrate_const.hpp +158 -0
- package/boost/numeric/odeint/iterator/integrate/integrate_n_steps.hpp +123 -0
- package/boost/numeric/odeint/iterator/integrate/integrate_times.hpp +131 -0
- package/boost/numeric/odeint/iterator/integrate/null_observer.hpp +38 -0
- package/boost/numeric/odeint/iterator/integrate/observer_collection.hpp +55 -0
- package/boost/numeric/odeint/iterator/n_step_iterator.hpp +168 -0
- package/boost/numeric/odeint/iterator/n_step_time_iterator.hpp +169 -0
- package/boost/numeric/odeint/iterator/times_iterator.hpp +189 -0
- package/boost/numeric/odeint/iterator/times_time_iterator.hpp +193 -0
- package/boost/numeric/odeint/stepper/adams_bashforth.hpp +418 -0
- package/boost/numeric/odeint/stepper/adams_bashforth_moulton.hpp +313 -0
- package/boost/numeric/odeint/stepper/adams_moulton.hpp +201 -0
- package/boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp +237 -0
- package/boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp +91 -0
- package/boost/numeric/odeint/stepper/base/explicit_error_stepper_base.hpp +588 -0
- package/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base.hpp +677 -0
- package/boost/numeric/odeint/stepper/base/explicit_stepper_base.hpp +415 -0
- package/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base.hpp +431 -0
- package/boost/numeric/odeint/stepper/bulirsch_stoer.hpp +642 -0
- package/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out.hpp +838 -0
- package/boost/numeric/odeint/stepper/controlled_adams_bashforth_moulton.hpp +322 -0
- package/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp +1018 -0
- package/boost/numeric/odeint/stepper/controlled_step_result.hpp +42 -0
- package/boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp +476 -0
- package/boost/numeric/odeint/stepper/detail/adams_bashforth_call_algebra.hpp +148 -0
- package/boost/numeric/odeint/stepper/detail/adams_bashforth_coefficients.hpp +168 -0
- package/boost/numeric/odeint/stepper/detail/adams_moulton_call_algebra.hpp +148 -0
- package/boost/numeric/odeint/stepper/detail/adams_moulton_coefficients.hpp +168 -0
- package/boost/numeric/odeint/stepper/detail/adaptive_adams_coefficients.hpp +207 -0
- package/boost/numeric/odeint/stepper/detail/generic_rk_algorithm.hpp +247 -0
- package/boost/numeric/odeint/stepper/detail/generic_rk_call_algebra.hpp +263 -0
- package/boost/numeric/odeint/stepper/detail/generic_rk_operations.hpp +252 -0
- package/boost/numeric/odeint/stepper/detail/pid_step_adjuster.hpp +199 -0
- package/boost/numeric/odeint/stepper/detail/pid_step_adjuster_coefficients.hpp +180 -0
- package/boost/numeric/odeint/stepper/detail/rotating_buffer.hpp +84 -0
- package/boost/numeric/odeint/stepper/euler.hpp +166 -0
- package/boost/numeric/odeint/stepper/explicit_error_generic_rk.hpp +255 -0
- package/boost/numeric/odeint/stepper/explicit_generic_rk.hpp +246 -0
- package/boost/numeric/odeint/stepper/extrapolation_stepper.hpp +288 -0
- package/boost/numeric/odeint/stepper/generation/generation_controlled_adams_bashforth_moulton.hpp +59 -0
- package/boost/numeric/odeint/stepper/generation/generation_controlled_runge_kutta.hpp +61 -0
- package/boost/numeric/odeint/stepper/generation/generation_dense_output_runge_kutta.hpp +65 -0
- package/boost/numeric/odeint/stepper/generation/generation_rosenbrock4.hpp +79 -0
- package/boost/numeric/odeint/stepper/generation/generation_runge_kutta_cash_karp54.hpp +47 -0
- package/boost/numeric/odeint/stepper/generation/generation_runge_kutta_cash_karp54_classic.hpp +48 -0
- package/boost/numeric/odeint/stepper/generation/generation_runge_kutta_dopri5.hpp +56 -0
- package/boost/numeric/odeint/stepper/generation/generation_runge_kutta_fehlberg78.hpp +46 -0
- package/boost/numeric/odeint/stepper/generation/make_controlled.hpp +103 -0
- package/boost/numeric/odeint/stepper/generation/make_dense_output.hpp +100 -0
- package/boost/numeric/odeint/stepper/generation.hpp +37 -0
- package/boost/numeric/odeint/stepper/implicit_euler.hpp +170 -0
- package/boost/numeric/odeint/stepper/modified_midpoint.hpp +315 -0
- package/boost/numeric/odeint/stepper/rosenbrock4.hpp +346 -0
- package/boost/numeric/odeint/stepper/rosenbrock4_controller.hpp +240 -0
- package/boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp +204 -0
- package/boost/numeric/odeint/stepper/runge_kutta4.hpp +181 -0
- package/boost/numeric/odeint/stepper/runge_kutta4_classic.hpp +232 -0
- package/boost/numeric/odeint/stepper/runge_kutta_cash_karp54.hpp +231 -0
- package/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic.hpp +289 -0
- package/boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp +403 -0
- package/boost/numeric/odeint/stepper/runge_kutta_fehlberg78.hpp +374 -0
- package/boost/numeric/odeint/stepper/stepper_categories.hpp +66 -0
- package/boost/numeric/odeint/stepper/symplectic_euler.hpp +136 -0
- package/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan.hpp +160 -0
- package/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan.hpp +162 -0
- package/boost/numeric/odeint/stepper/velocity_verlet.hpp +375 -0
- package/boost/numeric/odeint/tools/assert.hpp +30 -0
- package/boost/numeric/odeint/tools/is_standalone.hpp +21 -0
- package/boost/numeric/odeint/tools/traits.hpp +39 -0
- package/boost/numeric/odeint/util/bind.hpp +35 -0
- package/boost/numeric/odeint/util/copy.hpp +88 -0
- package/boost/numeric/odeint/util/detail/is_range.hpp +127 -0
- package/boost/numeric/odeint/util/detail/less_with_sign.hpp +78 -0
- package/boost/numeric/odeint/util/is_pair.hpp +42 -0
- package/boost/numeric/odeint/util/is_resizeable.hpp +84 -0
- package/boost/numeric/odeint/util/multi_array_adaption.hpp +131 -0
- package/boost/numeric/odeint/util/n_ary_helper.hpp +96 -0
- package/boost/numeric/odeint/util/odeint_error.hpp +77 -0
- package/boost/numeric/odeint/util/resize.hpp +120 -0
- package/boost/numeric/odeint/util/resizer.hpp +94 -0
- package/boost/numeric/odeint/util/same_instance.hpp +56 -0
- package/boost/numeric/odeint/util/same_size.hpp +117 -0
- package/boost/numeric/odeint/util/split.hpp +64 -0
- package/boost/numeric/odeint/util/split_adaptor.hpp +103 -0
- package/boost/numeric/odeint/util/state_wrapper.hpp +50 -0
- package/boost/numeric/odeint/util/stepper_traits.hpp +63 -0
- package/boost/numeric/odeint/util/ublas_matrix_expression.patch +6 -0
- package/boost/numeric/odeint/util/ublas_wrapper.hpp +297 -0
- package/boost/numeric/odeint/util/unit_helper.hpp +151 -0
- package/boost/numeric/odeint/util/unwrap_reference.hpp +141 -0
- package/boost/numeric/odeint/version.hpp +55 -0
- package/boost/numeric/odeint.hpp +87 -0
- package/boost/numeric/ublas/assignment.hpp +1288 -0
- package/boost/numeric/ublas/banded.hpp +2372 -0
- package/boost/numeric/ublas/blas.hpp +499 -0
- package/boost/numeric/ublas/detail/concepts.hpp +1465 -0
- package/boost/numeric/ublas/detail/config.hpp +304 -0
- package/boost/numeric/ublas/detail/definitions.hpp +212 -0
- package/boost/numeric/ublas/detail/documentation.hpp +33 -0
- package/boost/numeric/ublas/detail/duff.hpp +56 -0
- package/boost/numeric/ublas/detail/iterator.hpp +1448 -0
- package/boost/numeric/ublas/detail/matrix_assign.hpp +1785 -0
- package/boost/numeric/ublas/detail/raw.hpp +878 -0
- package/boost/numeric/ublas/detail/returntype_deduction.hpp +174 -0
- package/boost/numeric/ublas/detail/temporary.hpp +33 -0
- package/boost/numeric/ublas/detail/vector_assign.hpp +609 -0
- package/boost/numeric/ublas/doxydoc.hpp +58 -0
- package/boost/numeric/ublas/exception.hpp +297 -0
- package/boost/numeric/ublas/experimental/sparse_view.hpp +317 -0
- package/boost/numeric/ublas/expression_types.hpp +506 -0
- package/boost/numeric/ublas/functional.hpp +2112 -0
- package/boost/numeric/ublas/fwd.hpp +229 -0
- package/boost/numeric/ublas/hermitian.hpp +2633 -0
- package/boost/numeric/ublas/io.hpp +355 -0
- package/boost/numeric/ublas/lu.hpp +350 -0
- package/boost/numeric/ublas/matrix.hpp +6013 -0
- package/boost/numeric/ublas/matrix_expression.hpp +5693 -0
- package/boost/numeric/ublas/matrix_proxy.hpp +5457 -0
- package/boost/numeric/ublas/matrix_sparse.hpp +5773 -0
- package/boost/numeric/ublas/matrix_vector.hpp +406 -0
- package/boost/numeric/ublas/opencl/elementwise.hpp +508 -0
- package/boost/numeric/ublas/opencl/library.hpp +38 -0
- package/boost/numeric/ublas/opencl/matrix.hpp +123 -0
- package/boost/numeric/ublas/opencl/misc.hpp +182 -0
- package/boost/numeric/ublas/opencl/operations.hpp +18 -0
- package/boost/numeric/ublas/opencl/prod.hpp +364 -0
- package/boost/numeric/ublas/opencl/transpose.hpp +142 -0
- package/boost/numeric/ublas/opencl/vector.hpp +90 -0
- package/boost/numeric/ublas/opencl.hpp +16 -0
- package/boost/numeric/ublas/operation/begin.hpp +318 -0
- package/boost/numeric/ublas/operation/c_array.hpp +41 -0
- package/boost/numeric/ublas/operation/end.hpp +318 -0
- package/boost/numeric/ublas/operation/num_columns.hpp +45 -0
- package/boost/numeric/ublas/operation/num_rows.hpp +44 -0
- package/boost/numeric/ublas/operation/size.hpp +350 -0
- package/boost/numeric/ublas/operation.hpp +830 -0
- package/boost/numeric/ublas/operation_blocked.hpp +266 -0
- package/boost/numeric/ublas/operation_sparse.hpp +198 -0
- package/boost/numeric/ublas/operations.hpp +26 -0
- package/boost/numeric/ublas/storage.hpp +2131 -0
- package/boost/numeric/ublas/storage_sparse.hpp +578 -0
- package/boost/numeric/ublas/symmetric.hpp +2309 -0
- package/boost/numeric/ublas/tags.hpp +37 -0
- package/boost/numeric/ublas/tensor/algorithms.hpp +345 -0
- package/boost/numeric/ublas/tensor/expression.hpp +181 -0
- package/boost/numeric/ublas/tensor/expression_evaluation.hpp +288 -0
- package/boost/numeric/ublas/tensor/extents.hpp +335 -0
- package/boost/numeric/ublas/tensor/functions.hpp +558 -0
- package/boost/numeric/ublas/tensor/index.hpp +89 -0
- package/boost/numeric/ublas/tensor/multi_index.hpp +110 -0
- package/boost/numeric/ublas/tensor/multi_index_utility.hpp +364 -0
- package/boost/numeric/ublas/tensor/multiplication.hpp +945 -0
- package/boost/numeric/ublas/tensor/operators_arithmetic.hpp +244 -0
- package/boost/numeric/ublas/tensor/operators_comparison.hpp +175 -0
- package/boost/numeric/ublas/tensor/ostream.hpp +122 -0
- package/boost/numeric/ublas/tensor/storage_traits.hpp +84 -0
- package/boost/numeric/ublas/tensor/strides.hpp +251 -0
- package/boost/numeric/ublas/tensor/tensor.hpp +734 -0
- package/boost/numeric/ublas/tensor.hpp +26 -0
- package/boost/numeric/ublas/traits/c_array.hpp +110 -0
- package/boost/numeric/ublas/traits/const_iterator_type.hpp +127 -0
- package/boost/numeric/ublas/traits/iterator_type.hpp +126 -0
- package/boost/numeric/ublas/traits.hpp +753 -0
- package/boost/numeric/ublas/triangular.hpp +2775 -0
- package/boost/numeric/ublas/vector.hpp +2947 -0
- package/boost/numeric/ublas/vector_expression.hpp +1762 -0
- package/boost/numeric/ublas/vector_of_vector.hpp +1347 -0
- package/boost/numeric/ublas/vector_proxy.hpp +1697 -0
- package/boost/numeric/ublas/vector_sparse.hpp +2246 -0
- package/package.json +3 -7
|
@@ -0,0 +1,347 @@
|
|
|
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
|
+
namespace boost { namespace numeric {
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
template <>
|
|
13
|
+
struct numeric_cast_traits
|
|
14
|
+
<
|
|
15
|
+
char
|
|
16
|
+
, boost::long_long_type
|
|
17
|
+
>
|
|
18
|
+
{
|
|
19
|
+
typedef def_overflow_handler overflow_policy;
|
|
20
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
21
|
+
typedef Trunc<boost::long_long_type> rounding_policy;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
template <>
|
|
25
|
+
struct numeric_cast_traits
|
|
26
|
+
<
|
|
27
|
+
char
|
|
28
|
+
, boost::ulong_long_type
|
|
29
|
+
>
|
|
30
|
+
{
|
|
31
|
+
typedef def_overflow_handler overflow_policy;
|
|
32
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
33
|
+
typedef Trunc<boost::ulong_long_type> rounding_policy;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
template <>
|
|
37
|
+
struct numeric_cast_traits
|
|
38
|
+
<
|
|
39
|
+
signed char
|
|
40
|
+
, boost::long_long_type
|
|
41
|
+
>
|
|
42
|
+
{
|
|
43
|
+
typedef def_overflow_handler overflow_policy;
|
|
44
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
45
|
+
typedef Trunc<boost::long_long_type> rounding_policy;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
template <>
|
|
49
|
+
struct numeric_cast_traits
|
|
50
|
+
<
|
|
51
|
+
signed char
|
|
52
|
+
, boost::ulong_long_type
|
|
53
|
+
>
|
|
54
|
+
{
|
|
55
|
+
typedef def_overflow_handler overflow_policy;
|
|
56
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
57
|
+
typedef Trunc<boost::ulong_long_type> rounding_policy;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
template <>
|
|
61
|
+
struct numeric_cast_traits
|
|
62
|
+
<
|
|
63
|
+
unsigned char
|
|
64
|
+
, boost::long_long_type
|
|
65
|
+
>
|
|
66
|
+
{
|
|
67
|
+
typedef def_overflow_handler overflow_policy;
|
|
68
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
69
|
+
typedef Trunc<boost::long_long_type> rounding_policy;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
template <>
|
|
73
|
+
struct numeric_cast_traits
|
|
74
|
+
<
|
|
75
|
+
unsigned char
|
|
76
|
+
, boost::ulong_long_type
|
|
77
|
+
>
|
|
78
|
+
{
|
|
79
|
+
typedef def_overflow_handler overflow_policy;
|
|
80
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
81
|
+
typedef Trunc<boost::ulong_long_type> rounding_policy;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
template <>
|
|
85
|
+
struct numeric_cast_traits
|
|
86
|
+
<
|
|
87
|
+
short
|
|
88
|
+
, boost::long_long_type
|
|
89
|
+
>
|
|
90
|
+
{
|
|
91
|
+
typedef def_overflow_handler overflow_policy;
|
|
92
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
93
|
+
typedef Trunc<boost::long_long_type> rounding_policy;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
template <>
|
|
97
|
+
struct numeric_cast_traits
|
|
98
|
+
<
|
|
99
|
+
short
|
|
100
|
+
, boost::ulong_long_type
|
|
101
|
+
>
|
|
102
|
+
{
|
|
103
|
+
typedef def_overflow_handler overflow_policy;
|
|
104
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
105
|
+
typedef Trunc<boost::ulong_long_type> rounding_policy;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
template <>
|
|
109
|
+
struct numeric_cast_traits
|
|
110
|
+
<
|
|
111
|
+
unsigned short
|
|
112
|
+
, boost::long_long_type
|
|
113
|
+
>
|
|
114
|
+
{
|
|
115
|
+
typedef def_overflow_handler overflow_policy;
|
|
116
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
117
|
+
typedef Trunc<boost::long_long_type> rounding_policy;
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
template <>
|
|
121
|
+
struct numeric_cast_traits
|
|
122
|
+
<
|
|
123
|
+
unsigned short
|
|
124
|
+
, boost::ulong_long_type
|
|
125
|
+
>
|
|
126
|
+
{
|
|
127
|
+
typedef def_overflow_handler overflow_policy;
|
|
128
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
129
|
+
typedef Trunc<boost::ulong_long_type> rounding_policy;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
template <>
|
|
133
|
+
struct numeric_cast_traits
|
|
134
|
+
<
|
|
135
|
+
int
|
|
136
|
+
, boost::long_long_type
|
|
137
|
+
>
|
|
138
|
+
{
|
|
139
|
+
typedef def_overflow_handler overflow_policy;
|
|
140
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
141
|
+
typedef Trunc<boost::long_long_type> rounding_policy;
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
template <>
|
|
145
|
+
struct numeric_cast_traits
|
|
146
|
+
<
|
|
147
|
+
int
|
|
148
|
+
, boost::ulong_long_type
|
|
149
|
+
>
|
|
150
|
+
{
|
|
151
|
+
typedef def_overflow_handler overflow_policy;
|
|
152
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
153
|
+
typedef Trunc<boost::ulong_long_type> rounding_policy;
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
template <>
|
|
157
|
+
struct numeric_cast_traits
|
|
158
|
+
<
|
|
159
|
+
unsigned int
|
|
160
|
+
, boost::long_long_type
|
|
161
|
+
>
|
|
162
|
+
{
|
|
163
|
+
typedef def_overflow_handler overflow_policy;
|
|
164
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
165
|
+
typedef Trunc<boost::long_long_type> rounding_policy;
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
template <>
|
|
169
|
+
struct numeric_cast_traits
|
|
170
|
+
<
|
|
171
|
+
unsigned int
|
|
172
|
+
, boost::ulong_long_type
|
|
173
|
+
>
|
|
174
|
+
{
|
|
175
|
+
typedef def_overflow_handler overflow_policy;
|
|
176
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
177
|
+
typedef Trunc<boost::ulong_long_type> rounding_policy;
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
template <>
|
|
181
|
+
struct numeric_cast_traits
|
|
182
|
+
<
|
|
183
|
+
long
|
|
184
|
+
, boost::long_long_type
|
|
185
|
+
>
|
|
186
|
+
{
|
|
187
|
+
typedef def_overflow_handler overflow_policy;
|
|
188
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
189
|
+
typedef Trunc<boost::long_long_type> rounding_policy;
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
template <>
|
|
193
|
+
struct numeric_cast_traits
|
|
194
|
+
<
|
|
195
|
+
long
|
|
196
|
+
, boost::ulong_long_type
|
|
197
|
+
>
|
|
198
|
+
{
|
|
199
|
+
typedef def_overflow_handler overflow_policy;
|
|
200
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
201
|
+
typedef Trunc<boost::ulong_long_type> rounding_policy;
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
template <>
|
|
205
|
+
struct numeric_cast_traits
|
|
206
|
+
<
|
|
207
|
+
unsigned long
|
|
208
|
+
, boost::long_long_type
|
|
209
|
+
>
|
|
210
|
+
{
|
|
211
|
+
typedef def_overflow_handler overflow_policy;
|
|
212
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
213
|
+
typedef Trunc<boost::long_long_type> rounding_policy;
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
template <>
|
|
217
|
+
struct numeric_cast_traits
|
|
218
|
+
<
|
|
219
|
+
unsigned long
|
|
220
|
+
, boost::ulong_long_type
|
|
221
|
+
>
|
|
222
|
+
{
|
|
223
|
+
typedef def_overflow_handler overflow_policy;
|
|
224
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
225
|
+
typedef Trunc<boost::ulong_long_type> rounding_policy;
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
template <>
|
|
229
|
+
struct numeric_cast_traits
|
|
230
|
+
<
|
|
231
|
+
float
|
|
232
|
+
, boost::long_long_type
|
|
233
|
+
>
|
|
234
|
+
{
|
|
235
|
+
typedef def_overflow_handler overflow_policy;
|
|
236
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
237
|
+
typedef Trunc<boost::long_long_type> rounding_policy;
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
template <>
|
|
241
|
+
struct numeric_cast_traits
|
|
242
|
+
<
|
|
243
|
+
float
|
|
244
|
+
, boost::ulong_long_type
|
|
245
|
+
>
|
|
246
|
+
{
|
|
247
|
+
typedef def_overflow_handler overflow_policy;
|
|
248
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
249
|
+
typedef Trunc<boost::ulong_long_type> rounding_policy;
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
template <>
|
|
253
|
+
struct numeric_cast_traits
|
|
254
|
+
<
|
|
255
|
+
double
|
|
256
|
+
, boost::long_long_type
|
|
257
|
+
>
|
|
258
|
+
{
|
|
259
|
+
typedef def_overflow_handler overflow_policy;
|
|
260
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
261
|
+
typedef Trunc<boost::long_long_type> rounding_policy;
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
template <>
|
|
265
|
+
struct numeric_cast_traits
|
|
266
|
+
<
|
|
267
|
+
double
|
|
268
|
+
, boost::ulong_long_type
|
|
269
|
+
>
|
|
270
|
+
{
|
|
271
|
+
typedef def_overflow_handler overflow_policy;
|
|
272
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
273
|
+
typedef Trunc<boost::ulong_long_type> rounding_policy;
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
template <>
|
|
277
|
+
struct numeric_cast_traits
|
|
278
|
+
<
|
|
279
|
+
long double
|
|
280
|
+
, boost::long_long_type
|
|
281
|
+
>
|
|
282
|
+
{
|
|
283
|
+
typedef def_overflow_handler overflow_policy;
|
|
284
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
285
|
+
typedef Trunc<boost::long_long_type> rounding_policy;
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
template <>
|
|
289
|
+
struct numeric_cast_traits
|
|
290
|
+
<
|
|
291
|
+
long double
|
|
292
|
+
, boost::ulong_long_type
|
|
293
|
+
>
|
|
294
|
+
{
|
|
295
|
+
typedef def_overflow_handler overflow_policy;
|
|
296
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
297
|
+
typedef Trunc<boost::ulong_long_type> rounding_policy;
|
|
298
|
+
};
|
|
299
|
+
|
|
300
|
+
template <>
|
|
301
|
+
struct numeric_cast_traits
|
|
302
|
+
<
|
|
303
|
+
boost::long_long_type
|
|
304
|
+
, boost::long_long_type
|
|
305
|
+
>
|
|
306
|
+
{
|
|
307
|
+
typedef def_overflow_handler overflow_policy;
|
|
308
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
309
|
+
typedef Trunc<boost::long_long_type> rounding_policy;
|
|
310
|
+
};
|
|
311
|
+
|
|
312
|
+
template <>
|
|
313
|
+
struct numeric_cast_traits
|
|
314
|
+
<
|
|
315
|
+
boost::long_long_type
|
|
316
|
+
, boost::ulong_long_type
|
|
317
|
+
>
|
|
318
|
+
{
|
|
319
|
+
typedef def_overflow_handler overflow_policy;
|
|
320
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
321
|
+
typedef Trunc<boost::ulong_long_type> rounding_policy;
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
template <>
|
|
325
|
+
struct numeric_cast_traits
|
|
326
|
+
<
|
|
327
|
+
boost::ulong_long_type
|
|
328
|
+
, boost::long_long_type
|
|
329
|
+
>
|
|
330
|
+
{
|
|
331
|
+
typedef def_overflow_handler overflow_policy;
|
|
332
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
333
|
+
typedef Trunc<boost::long_long_type> rounding_policy;
|
|
334
|
+
};
|
|
335
|
+
|
|
336
|
+
template <>
|
|
337
|
+
struct numeric_cast_traits
|
|
338
|
+
<
|
|
339
|
+
boost::ulong_long_type
|
|
340
|
+
, boost::ulong_long_type
|
|
341
|
+
>
|
|
342
|
+
{
|
|
343
|
+
typedef def_overflow_handler overflow_policy;
|
|
344
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
345
|
+
typedef Trunc<boost::ulong_long_type> rounding_policy;
|
|
346
|
+
};
|
|
347
|
+
}}
|
|
@@ -0,0 +1,72 @@
|
|
|
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_SIGN_MIXTURE_FLC_12NOV2002_HPP
|
|
11
|
+
#define BOOST_NUMERIC_CONVERSION_DETAIL_SIGN_MIXTURE_FLC_12NOV2002_HPP
|
|
12
|
+
|
|
13
|
+
#include "boost/config.hpp"
|
|
14
|
+
#include "boost/limits.hpp"
|
|
15
|
+
|
|
16
|
+
#include "boost/numeric/conversion/sign_mixture_enum.hpp"
|
|
17
|
+
#include "boost/numeric/conversion/detail/meta.hpp"
|
|
18
|
+
|
|
19
|
+
#include "boost/type_traits/integral_constant.hpp"
|
|
20
|
+
|
|
21
|
+
namespace boost { namespace numeric { namespace convdetail
|
|
22
|
+
{
|
|
23
|
+
// Integral Constants for 'SignMixture'
|
|
24
|
+
typedef boost::integral_constant<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ;
|
|
25
|
+
typedef boost::integral_constant<sign_mixture_enum, signed_to_signed> sig2sig_c ;
|
|
26
|
+
typedef boost::integral_constant<sign_mixture_enum, signed_to_unsigned> sig2unsig_c ;
|
|
27
|
+
typedef boost::integral_constant<sign_mixture_enum, unsigned_to_signed> unsig2sig_c ;
|
|
28
|
+
|
|
29
|
+
// Metafunction:
|
|
30
|
+
//
|
|
31
|
+
// get_sign_mixture<T,S>::type
|
|
32
|
+
//
|
|
33
|
+
// Selects the appropriate SignMixture Integral Constant for the combination T,S.
|
|
34
|
+
//
|
|
35
|
+
template<class T,class S>
|
|
36
|
+
struct get_sign_mixture
|
|
37
|
+
{
|
|
38
|
+
typedef mpl::bool_< ::std::numeric_limits<S>::is_signed > S_signed ;
|
|
39
|
+
typedef mpl::bool_< ::std::numeric_limits<T>::is_signed > T_signed ;
|
|
40
|
+
|
|
41
|
+
typedef typename
|
|
42
|
+
for_both<S_signed, T_signed, sig2sig_c, sig2unsig_c, unsig2sig_c, unsig2unsig_c>::type
|
|
43
|
+
type ;
|
|
44
|
+
} ;
|
|
45
|
+
|
|
46
|
+
// Metafunction:
|
|
47
|
+
//
|
|
48
|
+
// for_sign_mixture<SignMixture,Sig2Sig,Sig2Unsig,Unsig2Sig,Unsig2Unsig>::type
|
|
49
|
+
//
|
|
50
|
+
// {SignMixture} is one of the Integral Constants for SignMixture, declared above.
|
|
51
|
+
// {Sig2Sig,Sig2Unsig,Unsig2Sig,Unsig2Unsig} are aribtrary types. (not metafunctions)
|
|
52
|
+
//
|
|
53
|
+
// According to the value of 'SignMixture', selects the corresponding type.
|
|
54
|
+
//
|
|
55
|
+
template<class SignMixture, class Sig2Sig, class Sig2Unsig, class Unsig2Sig, class Unsig2Unsig>
|
|
56
|
+
struct for_sign_mixture
|
|
57
|
+
{
|
|
58
|
+
typedef typename
|
|
59
|
+
ct_switch4<SignMixture
|
|
60
|
+
, sig2sig_c, sig2unsig_c, unsig2sig_c // default
|
|
61
|
+
, Sig2Sig , Sig2Unsig , Unsig2Sig , Unsig2Unsig
|
|
62
|
+
>::type
|
|
63
|
+
type ;
|
|
64
|
+
} ;
|
|
65
|
+
|
|
66
|
+
} } } // namespace boost::numeric::convdetail
|
|
67
|
+
|
|
68
|
+
#endif
|
|
69
|
+
//
|
|
70
|
+
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
71
|
+
|
|
72
|
+
|
|
@@ -0,0 +1,69 @@
|
|
|
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_UDT_BUILTIN_MIXTURE_FLC_12NOV2002_HPP
|
|
11
|
+
#define BOOST_NUMERIC_CONVERSION_DETAIL_UDT_BUILTIN_MIXTURE_FLC_12NOV2002_HPP
|
|
12
|
+
|
|
13
|
+
#include "boost/type_traits/is_arithmetic.hpp"
|
|
14
|
+
|
|
15
|
+
#include "boost/numeric/conversion/udt_builtin_mixture_enum.hpp"
|
|
16
|
+
#include "boost/numeric/conversion/detail/meta.hpp"
|
|
17
|
+
|
|
18
|
+
#include "boost/type_traits/integral_constant.hpp"
|
|
19
|
+
|
|
20
|
+
namespace boost { namespace numeric { namespace convdetail
|
|
21
|
+
{
|
|
22
|
+
// Integral Constants for 'UdtMixture'
|
|
23
|
+
typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ;
|
|
24
|
+
typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_udt> builtin2udt_c ;
|
|
25
|
+
typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_builtin> udt2builtin_c ;
|
|
26
|
+
typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_udt> udt2udt_c ;
|
|
27
|
+
|
|
28
|
+
// Metafunction:
|
|
29
|
+
//
|
|
30
|
+
// for_udt_mixture<UdtMixture,BuiltIn2BuiltIn,BuiltIn2Udt,Udt2BuiltIn,Udt2Udt>::type
|
|
31
|
+
//
|
|
32
|
+
// {UdtMixture} is one of the Integral Constants for UdMixture, declared above.
|
|
33
|
+
// {BuiltIn2BuiltIn,BuiltIn2Udt,Udt2BuiltIn,Udt2Udt} are aribtrary types. (not metafunctions)
|
|
34
|
+
//
|
|
35
|
+
// According to the value of 'UdtMixture', selects the corresponding type.
|
|
36
|
+
//
|
|
37
|
+
template<class UdtMixture, class BuiltIn2BuiltIn, class BuiltIn2Udt, class Udt2BuiltIn, class Udt2Udt>
|
|
38
|
+
struct for_udt_builtin_mixture
|
|
39
|
+
{
|
|
40
|
+
typedef typename
|
|
41
|
+
ct_switch4<UdtMixture
|
|
42
|
+
, builtin2builtin_c, builtin2udt_c, udt2builtin_c // default
|
|
43
|
+
, BuiltIn2BuiltIn , BuiltIn2Udt , Udt2BuiltIn , Udt2Udt
|
|
44
|
+
>::type
|
|
45
|
+
type ;
|
|
46
|
+
} ;
|
|
47
|
+
|
|
48
|
+
// Metafunction:
|
|
49
|
+
//
|
|
50
|
+
// get_udt_mixture<T,S>::type
|
|
51
|
+
//
|
|
52
|
+
// Selects the appropriate UdtMixture Integral Constant for the combination T,S.
|
|
53
|
+
//
|
|
54
|
+
template<class T,class S>
|
|
55
|
+
struct get_udt_builtin_mixture
|
|
56
|
+
{
|
|
57
|
+
typedef is_arithmetic<S> S_builtin ;
|
|
58
|
+
typedef is_arithmetic<T> T_builtin ;
|
|
59
|
+
|
|
60
|
+
typedef typename
|
|
61
|
+
for_both<S_builtin, T_builtin, builtin2builtin_c, builtin2udt_c, udt2builtin_c, udt2udt_c>::type
|
|
62
|
+
type ;
|
|
63
|
+
} ;
|
|
64
|
+
|
|
65
|
+
} } } // namespace boost::numeric::convdetail
|
|
66
|
+
|
|
67
|
+
#endif
|
|
68
|
+
|
|
69
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
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_INT_FLOAT_MIXTURE_FLC_12NOV2002_HPP
|
|
11
|
+
#define BOOST_NUMERIC_CONVERSION_INT_FLOAT_MIXTURE_FLC_12NOV2002_HPP
|
|
12
|
+
|
|
13
|
+
#include "boost/numeric/conversion/detail/int_float_mixture.hpp"
|
|
14
|
+
|
|
15
|
+
namespace boost { namespace numeric
|
|
16
|
+
{
|
|
17
|
+
|
|
18
|
+
template<class T, class S>
|
|
19
|
+
struct int_float_mixture
|
|
20
|
+
: convdetail::get_int_float_mixture< BOOST_DEDUCED_TYPENAME remove_cv<T>::type
|
|
21
|
+
,BOOST_DEDUCED_TYPENAME remove_cv<S>::type
|
|
22
|
+
>::type {} ;
|
|
23
|
+
|
|
24
|
+
} } // namespace boost::numeric
|
|
25
|
+
|
|
26
|
+
#endif
|
|
27
|
+
//
|
|
28
|
+
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
29
|
+
|
|
30
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
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_INT_FLOAT_MIXTURE_ENUM_FLC_12NOV2002_HPP
|
|
11
|
+
#define BOOST_NUMERIC_CONVERSION_INT_FLOAT_MIXTURE_ENUM_FLC_12NOV2002_HPP
|
|
12
|
+
|
|
13
|
+
namespace boost { namespace numeric
|
|
14
|
+
{
|
|
15
|
+
enum int_float_mixture_enum
|
|
16
|
+
{
|
|
17
|
+
integral_to_integral
|
|
18
|
+
,integral_to_float
|
|
19
|
+
,float_to_integral
|
|
20
|
+
,float_to_float
|
|
21
|
+
} ;
|
|
22
|
+
|
|
23
|
+
} } // namespace boost::numeric
|
|
24
|
+
|
|
25
|
+
#endif
|
|
26
|
+
//
|
|
27
|
+
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
28
|
+
|
|
29
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
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_IS_SUBRANGED_FLC_12NOV2002_HPP
|
|
11
|
+
#define BOOST_NUMERIC_CONVERSION_IS_SUBRANGED_FLC_12NOV2002_HPP
|
|
12
|
+
|
|
13
|
+
#include "boost/numeric/conversion/detail/is_subranged.hpp"
|
|
14
|
+
|
|
15
|
+
namespace boost { namespace numeric {
|
|
16
|
+
|
|
17
|
+
template<class T, class S>
|
|
18
|
+
struct is_subranged
|
|
19
|
+
: convdetail::get_is_subranged< BOOST_DEDUCED_TYPENAME remove_cv<T>::type
|
|
20
|
+
,BOOST_DEDUCED_TYPENAME remove_cv<S>::type
|
|
21
|
+
>::type {} ;
|
|
22
|
+
|
|
23
|
+
} } // namespace boost::numeric
|
|
24
|
+
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
//
|
|
2
|
+
//! Copyright (c) 2011
|
|
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
|
+
#ifndef BOOST_NUMERIC_CAST_TRAITS_HPP
|
|
10
|
+
#define BOOST_NUMERIC_CAST_TRAITS_HPP
|
|
11
|
+
|
|
12
|
+
#include <boost/numeric/conversion/converter_policies.hpp>
|
|
13
|
+
|
|
14
|
+
namespace boost { namespace numeric {
|
|
15
|
+
|
|
16
|
+
template <typename Target, typename Source, typename EnableIf = void>
|
|
17
|
+
struct numeric_cast_traits
|
|
18
|
+
{
|
|
19
|
+
typedef def_overflow_handler overflow_policy;
|
|
20
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
|
21
|
+
typedef Trunc<Source> rounding_policy;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
}}//namespace boost::numeric;
|
|
25
|
+
|
|
26
|
+
#if !defined( BOOST_NUMERIC_CONVERSION_RELAX_BUILT_IN_CAST_TRAITS )
|
|
27
|
+
#include <boost/cstdint.hpp>
|
|
28
|
+
#include <boost/numeric/conversion/detail/numeric_cast_traits.hpp>
|
|
29
|
+
#endif//!defined BOOST_NUMERIC_CONVERSION_RELAX_BUILT_IN_CAST_TRAITS
|
|
30
|
+
|
|
31
|
+
#endif//BOOST_NUMERIC_CAST_TRAITS_HPP
|
|
@@ -0,0 +1,30 @@
|
|
|
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_SIGN_MIXTURE_FLC_12NOV2002_HPP
|
|
11
|
+
#define BOOST_NUMERIC_CONVERSION_SIGN_MIXTURE_FLC_12NOV2002_HPP
|
|
12
|
+
|
|
13
|
+
#include "boost/numeric/conversion/detail/sign_mixture.hpp"
|
|
14
|
+
|
|
15
|
+
namespace boost { namespace numeric
|
|
16
|
+
{
|
|
17
|
+
|
|
18
|
+
template<class T, class S>
|
|
19
|
+
struct sign_mixture
|
|
20
|
+
: convdetail::get_sign_mixture< BOOST_DEDUCED_TYPENAME remove_cv<T>::type
|
|
21
|
+
,BOOST_DEDUCED_TYPENAME remove_cv<S>::type
|
|
22
|
+
>::type {} ;
|
|
23
|
+
|
|
24
|
+
} } // namespace boost::numeric
|
|
25
|
+
|
|
26
|
+
#endif
|
|
27
|
+
//
|
|
28
|
+
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
29
|
+
|
|
30
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
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_SIGN_MIXTURE_ENUM_FLC_12NOV2002_HPP
|
|
11
|
+
#define BOOST_NUMERIC_CONVERSION_SIGN_MIXTURE_ENUM_FLC_12NOV2002_HPP
|
|
12
|
+
|
|
13
|
+
namespace boost { namespace numeric
|
|
14
|
+
{
|
|
15
|
+
enum sign_mixture_enum
|
|
16
|
+
{
|
|
17
|
+
unsigned_to_unsigned
|
|
18
|
+
,signed_to_signed
|
|
19
|
+
,signed_to_unsigned
|
|
20
|
+
,unsigned_to_signed
|
|
21
|
+
} ;
|
|
22
|
+
|
|
23
|
+
} } // namespace boost::numeric
|
|
24
|
+
|
|
25
|
+
#endif
|
|
26
|
+
//
|
|
27
|
+
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
28
|
+
|
|
29
|
+
|