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,308 @@
|
|
|
1
|
+
// boost cast.hpp header file ----------------------------------------------//
|
|
2
|
+
|
|
3
|
+
// (C) Copyright Kevlin Henney and Dave Abrahams 1999.
|
|
4
|
+
// Distributed under the Boost
|
|
5
|
+
// Software License, Version 1.0. (See accompanying file
|
|
6
|
+
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
7
|
+
|
|
8
|
+
// See http://www.boost.org/libs/conversion for Documentation.
|
|
9
|
+
|
|
10
|
+
// Revision History
|
|
11
|
+
// 02 Jun 14 Remove VC6 workarounds.
|
|
12
|
+
// 16 Jul 11 Bugfixes for VC6.
|
|
13
|
+
// 23 JUN 05 Code extracted from /boost/cast.hpp into this new header.
|
|
14
|
+
// Keeps this legacy version of numeric_cast<> for old compilers
|
|
15
|
+
// wich can't compile the new version in /boost/numeric/conversion/cast.hpp
|
|
16
|
+
// (Fernando Cacciola)
|
|
17
|
+
// 02 Apr 01 Removed BOOST_NO_LIMITS workarounds and included
|
|
18
|
+
// <boost/limits.hpp> instead (the workaround did not
|
|
19
|
+
// actually compile when BOOST_NO_LIMITS was defined in
|
|
20
|
+
// any case, so we loose nothing). (John Maddock)
|
|
21
|
+
// 21 Jan 01 Undid a bug I introduced yesterday. numeric_cast<> never
|
|
22
|
+
// worked with stock GCC; trying to get it to do that broke
|
|
23
|
+
// vc-stlport.
|
|
24
|
+
// 20 Jan 01 Moved BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS to config.hpp.
|
|
25
|
+
// Removed unused BOOST_EXPLICIT_TARGET macro. Moved
|
|
26
|
+
// boost::detail::type to boost/type.hpp. Made it compile with
|
|
27
|
+
// stock gcc again (Dave Abrahams)
|
|
28
|
+
// 29 Nov 00 Remove nested namespace cast, cleanup spacing before Formal
|
|
29
|
+
// Review (Beman Dawes)
|
|
30
|
+
// 19 Oct 00 Fix numeric_cast for floating-point types (Dave Abrahams)
|
|
31
|
+
// 15 Jul 00 Suppress numeric_cast warnings for GCC, Borland and MSVC
|
|
32
|
+
// (Dave Abrahams)
|
|
33
|
+
// 30 Jun 00 More MSVC6 wordarounds. See comments below. (Dave Abrahams)
|
|
34
|
+
// 28 Jun 00 Removed implicit_cast<>. See comment below. (Beman Dawes)
|
|
35
|
+
// 27 Jun 00 More MSVC6 workarounds
|
|
36
|
+
// 15 Jun 00 Add workarounds for MSVC6
|
|
37
|
+
// 2 Feb 00 Remove bad_numeric_cast ";" syntax error (Doncho Angelov)
|
|
38
|
+
// 26 Jan 00 Add missing throw() to bad_numeric_cast::what(0 (Adam Levar)
|
|
39
|
+
// 29 Dec 99 Change using declarations so usages in other namespaces work
|
|
40
|
+
// correctly (Dave Abrahams)
|
|
41
|
+
// 23 Sep 99 Change polymorphic_downcast assert to also detect M.I. errors
|
|
42
|
+
// as suggested Darin Adler and improved by Valentin Bonnard.
|
|
43
|
+
// 2 Sep 99 Remove controversial asserts, simplify, rename.
|
|
44
|
+
// 30 Aug 99 Move to cast.hpp, replace value_cast with numeric_cast,
|
|
45
|
+
// place in nested namespace.
|
|
46
|
+
// 3 Aug 99 Initial version
|
|
47
|
+
|
|
48
|
+
#ifndef BOOST_OLD_NUMERIC_CAST_HPP
|
|
49
|
+
#define BOOST_OLD_NUMERIC_CAST_HPP
|
|
50
|
+
|
|
51
|
+
# include <boost/config.hpp>
|
|
52
|
+
# include <cassert>
|
|
53
|
+
# include <typeinfo>
|
|
54
|
+
# include <boost/type.hpp>
|
|
55
|
+
# include <boost/limits.hpp>
|
|
56
|
+
# include <boost/numeric/conversion/converter_policies.hpp>
|
|
57
|
+
|
|
58
|
+
namespace boost
|
|
59
|
+
{
|
|
60
|
+
using numeric::bad_numeric_cast;
|
|
61
|
+
|
|
62
|
+
// LEGACY numeric_cast [only for some old broken compilers] --------------------------------------//
|
|
63
|
+
|
|
64
|
+
// Contributed by Kevlin Henney
|
|
65
|
+
|
|
66
|
+
// numeric_cast ------------------------------------------------------------//
|
|
67
|
+
|
|
68
|
+
#if !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) || defined(BOOST_SGI_CPP_LIMITS)
|
|
69
|
+
|
|
70
|
+
namespace detail
|
|
71
|
+
{
|
|
72
|
+
template <class T>
|
|
73
|
+
struct signed_numeric_limits : std::numeric_limits<T>
|
|
74
|
+
{
|
|
75
|
+
static inline T min BOOST_PREVENT_MACRO_SUBSTITUTION ()
|
|
76
|
+
{
|
|
77
|
+
return (std::numeric_limits<T>::min)() >= 0
|
|
78
|
+
// unary minus causes integral promotion, thus the static_cast<>
|
|
79
|
+
? static_cast<T>(-(std::numeric_limits<T>::max)())
|
|
80
|
+
: (std::numeric_limits<T>::min)();
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
// Move to namespace boost in utility.hpp?
|
|
85
|
+
template <class T, bool specialized>
|
|
86
|
+
struct fixed_numeric_limits_base
|
|
87
|
+
: public if_true< std::numeric_limits<T>::is_signed >
|
|
88
|
+
::BOOST_NESTED_TEMPLATE then< signed_numeric_limits<T>,
|
|
89
|
+
std::numeric_limits<T>
|
|
90
|
+
>::type
|
|
91
|
+
{};
|
|
92
|
+
|
|
93
|
+
template <class T>
|
|
94
|
+
struct fixed_numeric_limits
|
|
95
|
+
: fixed_numeric_limits_base<T,(std::numeric_limits<T>::is_specialized)>
|
|
96
|
+
{};
|
|
97
|
+
|
|
98
|
+
# ifdef BOOST_HAS_LONG_LONG
|
|
99
|
+
// cover implementations which supply no specialization for long
|
|
100
|
+
// long / unsigned long long. Not intended to be full
|
|
101
|
+
// numeric_limits replacements, but good enough for numeric_cast<>
|
|
102
|
+
template <>
|
|
103
|
+
struct fixed_numeric_limits_base< ::boost::long_long_type, false>
|
|
104
|
+
{
|
|
105
|
+
BOOST_STATIC_CONSTANT(bool, is_specialized = true);
|
|
106
|
+
BOOST_STATIC_CONSTANT(bool, is_signed = true);
|
|
107
|
+
static ::boost::long_long_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
|
|
108
|
+
{
|
|
109
|
+
# ifdef LONGLONG_MAX
|
|
110
|
+
return LONGLONG_MAX;
|
|
111
|
+
# else
|
|
112
|
+
return 9223372036854775807LL; // hope this is portable
|
|
113
|
+
# endif
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
static ::boost::long_long_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
|
|
117
|
+
{
|
|
118
|
+
# ifdef LONGLONG_MIN
|
|
119
|
+
return LONGLONG_MIN;
|
|
120
|
+
# else
|
|
121
|
+
return -( 9223372036854775807LL )-1; // hope this is portable
|
|
122
|
+
# endif
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
template <>
|
|
127
|
+
struct fixed_numeric_limits_base< ::boost::ulong_long_type, false>
|
|
128
|
+
{
|
|
129
|
+
BOOST_STATIC_CONSTANT(bool, is_specialized = true);
|
|
130
|
+
BOOST_STATIC_CONSTANT(bool, is_signed = false);
|
|
131
|
+
static ::boost::ulong_long_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
|
|
132
|
+
{
|
|
133
|
+
# ifdef ULONGLONG_MAX
|
|
134
|
+
return ULONGLONG_MAX;
|
|
135
|
+
# else
|
|
136
|
+
return 0xffffffffffffffffULL; // hope this is portable
|
|
137
|
+
# endif
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
static ::boost::ulong_long_type min BOOST_PREVENT_MACRO_SUBSTITUTION () { return 0; }
|
|
141
|
+
};
|
|
142
|
+
# endif
|
|
143
|
+
} // namespace detail
|
|
144
|
+
|
|
145
|
+
// less_than_type_min -
|
|
146
|
+
// x_is_signed should be numeric_limits<X>::is_signed
|
|
147
|
+
// y_is_signed should be numeric_limits<Y>::is_signed
|
|
148
|
+
// y_min should be numeric_limits<Y>::min()
|
|
149
|
+
//
|
|
150
|
+
// check(x, y_min) returns true iff x < y_min without invoking comparisons
|
|
151
|
+
// between signed and unsigned values.
|
|
152
|
+
//
|
|
153
|
+
// "poor man's partial specialization" is in use here.
|
|
154
|
+
template <bool x_is_signed, bool y_is_signed>
|
|
155
|
+
struct less_than_type_min
|
|
156
|
+
{
|
|
157
|
+
template <class X, class Y>
|
|
158
|
+
static bool check(X x, Y y_min)
|
|
159
|
+
{ return x < y_min; }
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
template <>
|
|
163
|
+
struct less_than_type_min<false, true>
|
|
164
|
+
{
|
|
165
|
+
template <class X, class Y>
|
|
166
|
+
static bool check(X, Y)
|
|
167
|
+
{ return false; }
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
template <>
|
|
171
|
+
struct less_than_type_min<true, false>
|
|
172
|
+
{
|
|
173
|
+
template <class X, class Y>
|
|
174
|
+
static bool check(X x, Y)
|
|
175
|
+
{ return x < 0; }
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
// greater_than_type_max -
|
|
179
|
+
// same_sign should be:
|
|
180
|
+
// numeric_limits<X>::is_signed == numeric_limits<Y>::is_signed
|
|
181
|
+
// y_max should be numeric_limits<Y>::max()
|
|
182
|
+
//
|
|
183
|
+
// check(x, y_max) returns true iff x > y_max without invoking comparisons
|
|
184
|
+
// between signed and unsigned values.
|
|
185
|
+
//
|
|
186
|
+
// "poor man's partial specialization" is in use here.
|
|
187
|
+
template <bool same_sign, bool x_is_signed>
|
|
188
|
+
struct greater_than_type_max;
|
|
189
|
+
|
|
190
|
+
template<>
|
|
191
|
+
struct greater_than_type_max<true, true>
|
|
192
|
+
{
|
|
193
|
+
template <class X, class Y>
|
|
194
|
+
static inline bool check(X x, Y y_max)
|
|
195
|
+
{ return x > y_max; }
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
template <>
|
|
199
|
+
struct greater_than_type_max<false, true>
|
|
200
|
+
{
|
|
201
|
+
// What does the standard say about this? I think it's right, and it
|
|
202
|
+
// will work with every compiler I know of.
|
|
203
|
+
template <class X, class Y>
|
|
204
|
+
static inline bool check(X x, Y)
|
|
205
|
+
{ return x >= 0 && static_cast<X>(static_cast<Y>(x)) != x; }
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
template<>
|
|
209
|
+
struct greater_than_type_max<true, false>
|
|
210
|
+
{
|
|
211
|
+
template <class X, class Y>
|
|
212
|
+
static inline bool check(X x, Y y_max)
|
|
213
|
+
{ return x > y_max; }
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
template <>
|
|
217
|
+
struct greater_than_type_max<false, false>
|
|
218
|
+
{
|
|
219
|
+
// What does the standard say about this? I think it's right, and it
|
|
220
|
+
// will work with every compiler I know of.
|
|
221
|
+
template <class X, class Y>
|
|
222
|
+
static inline bool check(X x, Y)
|
|
223
|
+
{ return static_cast<X>(static_cast<Y>(x)) != x; }
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
#else // use #pragma hacks if available
|
|
227
|
+
|
|
228
|
+
namespace detail
|
|
229
|
+
{
|
|
230
|
+
# if BOOST_MSVC
|
|
231
|
+
# pragma warning(push)
|
|
232
|
+
# pragma warning(disable : 4018)
|
|
233
|
+
# pragma warning(disable : 4146)
|
|
234
|
+
#elif defined(BOOST_BORLANDC)
|
|
235
|
+
# pragma option push -w-8041
|
|
236
|
+
# endif
|
|
237
|
+
|
|
238
|
+
// Move to namespace boost in utility.hpp?
|
|
239
|
+
template <class T>
|
|
240
|
+
struct fixed_numeric_limits : public std::numeric_limits<T>
|
|
241
|
+
{
|
|
242
|
+
static inline T min BOOST_PREVENT_MACRO_SUBSTITUTION ()
|
|
243
|
+
{
|
|
244
|
+
return std::numeric_limits<T>::is_signed && (std::numeric_limits<T>::min)() >= 0
|
|
245
|
+
? T(-(std::numeric_limits<T>::max)()) : (std::numeric_limits<T>::min)();
|
|
246
|
+
}
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
# if BOOST_MSVC
|
|
250
|
+
# pragma warning(pop)
|
|
251
|
+
#elif defined(BOOST_BORLANDC)
|
|
252
|
+
# pragma option pop
|
|
253
|
+
# endif
|
|
254
|
+
} // namespace detail
|
|
255
|
+
|
|
256
|
+
#endif
|
|
257
|
+
|
|
258
|
+
template<typename Target, typename Source>
|
|
259
|
+
inline Target numeric_cast(Source arg)
|
|
260
|
+
{
|
|
261
|
+
// typedefs abbreviating respective trait classes
|
|
262
|
+
typedef detail::fixed_numeric_limits<Source> arg_traits;
|
|
263
|
+
typedef detail::fixed_numeric_limits<Target> result_traits;
|
|
264
|
+
|
|
265
|
+
#if defined(BOOST_STRICT_CONFIG) \
|
|
266
|
+
|| (!defined(__HP_aCC) || __HP_aCC > 33900) \
|
|
267
|
+
&& (!defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) \
|
|
268
|
+
|| defined(BOOST_SGI_CPP_LIMITS))
|
|
269
|
+
// typedefs that act as compile time assertions
|
|
270
|
+
// (to be replaced by boost compile time assertions
|
|
271
|
+
// as and when they become available and are stable)
|
|
272
|
+
typedef bool argument_must_be_numeric[arg_traits::is_specialized];
|
|
273
|
+
typedef bool result_must_be_numeric[result_traits::is_specialized];
|
|
274
|
+
|
|
275
|
+
const bool arg_is_signed = arg_traits::is_signed;
|
|
276
|
+
const bool result_is_signed = result_traits::is_signed;
|
|
277
|
+
const bool same_sign = arg_is_signed == result_is_signed;
|
|
278
|
+
|
|
279
|
+
if (less_than_type_min<arg_is_signed, result_is_signed>::check(arg, (result_traits::min)())
|
|
280
|
+
|| greater_than_type_max<same_sign, arg_is_signed>::check(arg, (result_traits::max)())
|
|
281
|
+
)
|
|
282
|
+
|
|
283
|
+
#else // We need to use #pragma hacks if available
|
|
284
|
+
|
|
285
|
+
# if BOOST_MSVC
|
|
286
|
+
# pragma warning(push)
|
|
287
|
+
# pragma warning(disable : 4018)
|
|
288
|
+
#elif defined(BOOST_BORLANDC)
|
|
289
|
+
#pragma option push -w-8012
|
|
290
|
+
# endif
|
|
291
|
+
if ((arg < 0 && !result_traits::is_signed) // loss of negative range
|
|
292
|
+
|| (arg_traits::is_signed && arg < (result_traits::min)()) // underflow
|
|
293
|
+
|| arg > (result_traits::max)()) // overflow
|
|
294
|
+
# if BOOST_MSVC
|
|
295
|
+
# pragma warning(pop)
|
|
296
|
+
#elif defined(BOOST_BORLANDC)
|
|
297
|
+
#pragma option pop
|
|
298
|
+
# endif
|
|
299
|
+
#endif
|
|
300
|
+
{
|
|
301
|
+
throw bad_numeric_cast();
|
|
302
|
+
}
|
|
303
|
+
return static_cast<Target>(arg);
|
|
304
|
+
} // numeric_cast
|
|
305
|
+
|
|
306
|
+
} // namespace boost
|
|
307
|
+
|
|
308
|
+
#endif // BOOST_OLD_NUMERIC_CAST_HPP
|