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,335 @@
|
|
|
1
|
+
/* Boost interval/utility.hpp template implementation file
|
|
2
|
+
*
|
|
3
|
+
* Copyright 2000 Jens Maurer
|
|
4
|
+
* Copyright 2002-2003 Hervé Brönnimann, Guillaume Melquiond, Sylvain Pion
|
|
5
|
+
*
|
|
6
|
+
* Distributed under the Boost Software License, Version 1.0.
|
|
7
|
+
* (See accompanying file LICENSE_1_0.txt or
|
|
8
|
+
* copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#ifndef BOOST_NUMERIC_INTERVAL_UTILITY_HPP
|
|
12
|
+
#define BOOST_NUMERIC_INTERVAL_UTILITY_HPP
|
|
13
|
+
|
|
14
|
+
#include <boost/numeric/interval/utility_fwd.hpp>
|
|
15
|
+
#include <boost/numeric/interval/detail/test_input.hpp>
|
|
16
|
+
#include <boost/numeric/interval/detail/bugs.hpp>
|
|
17
|
+
#include <algorithm>
|
|
18
|
+
#include <utility>
|
|
19
|
+
|
|
20
|
+
/*
|
|
21
|
+
* Implementation of simple functions
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
namespace boost {
|
|
25
|
+
namespace numeric {
|
|
26
|
+
|
|
27
|
+
/*
|
|
28
|
+
* Utility Functions
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
template<class T, class Policies> inline
|
|
32
|
+
const T& lower(const interval<T, Policies>& x)
|
|
33
|
+
{
|
|
34
|
+
return x.lower();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
template<class T, class Policies> inline
|
|
38
|
+
const T& upper(const interval<T, Policies>& x)
|
|
39
|
+
{
|
|
40
|
+
return x.upper();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
template<class T, class Policies> inline
|
|
44
|
+
T checked_lower(const interval<T, Policies>& x)
|
|
45
|
+
{
|
|
46
|
+
if (empty(x)) {
|
|
47
|
+
typedef typename Policies::checking checking;
|
|
48
|
+
return checking::nan();
|
|
49
|
+
}
|
|
50
|
+
return x.lower();
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
template<class T, class Policies> inline
|
|
54
|
+
T checked_upper(const interval<T, Policies>& x)
|
|
55
|
+
{
|
|
56
|
+
if (empty(x)) {
|
|
57
|
+
typedef typename Policies::checking checking;
|
|
58
|
+
return checking::nan();
|
|
59
|
+
}
|
|
60
|
+
return x.upper();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
template<class T, class Policies> inline
|
|
64
|
+
T width(const interval<T, Policies>& x)
|
|
65
|
+
{
|
|
66
|
+
if (interval_lib::detail::test_input(x)) return static_cast<T>(0);
|
|
67
|
+
typename Policies::rounding rnd;
|
|
68
|
+
return rnd.sub_up(x.upper(), x.lower());
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
template<class T, class Policies> inline
|
|
72
|
+
T median(const interval<T, Policies>& x)
|
|
73
|
+
{
|
|
74
|
+
if (interval_lib::detail::test_input(x)) {
|
|
75
|
+
typedef typename Policies::checking checking;
|
|
76
|
+
return checking::nan();
|
|
77
|
+
}
|
|
78
|
+
typename Policies::rounding rnd;
|
|
79
|
+
return rnd.median(x.lower(), x.upper());
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
template<class T, class Policies> inline
|
|
83
|
+
interval<T, Policies> widen(const interval<T, Policies>& x, const T& v)
|
|
84
|
+
{
|
|
85
|
+
if (interval_lib::detail::test_input(x))
|
|
86
|
+
return interval<T, Policies>::empty();
|
|
87
|
+
typename Policies::rounding rnd;
|
|
88
|
+
return interval<T, Policies>(rnd.sub_down(x.lower(), v),
|
|
89
|
+
rnd.add_up (x.upper(), v), true);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/*
|
|
93
|
+
* Set-like operations
|
|
94
|
+
*/
|
|
95
|
+
|
|
96
|
+
template<class T, class Policies> inline
|
|
97
|
+
bool empty(const interval<T, Policies>& x)
|
|
98
|
+
{
|
|
99
|
+
return interval_lib::detail::test_input(x);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
template<class T, class Policies> inline
|
|
103
|
+
bool zero_in(const interval<T, Policies>& x)
|
|
104
|
+
{
|
|
105
|
+
if (interval_lib::detail::test_input(x)) return false;
|
|
106
|
+
return (!interval_lib::user::is_pos(x.lower())) &&
|
|
107
|
+
(!interval_lib::user::is_neg(x.upper()));
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
template<class T, class Policies> inline
|
|
111
|
+
bool in_zero(const interval<T, Policies>& x) // DEPRECATED
|
|
112
|
+
{
|
|
113
|
+
return zero_in<T, Policies>(x);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
template<class T, class Policies> inline
|
|
117
|
+
bool in(const T& x, const interval<T, Policies>& y)
|
|
118
|
+
{
|
|
119
|
+
if (interval_lib::detail::test_input(x, y)) return false;
|
|
120
|
+
return y.lower() <= x && x <= y.upper();
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
template<class T, class Policies> inline
|
|
124
|
+
bool subset(const interval<T, Policies>& x,
|
|
125
|
+
const interval<T, Policies>& y)
|
|
126
|
+
{
|
|
127
|
+
if (empty(x)) return true;
|
|
128
|
+
return !empty(y) && y.lower() <= x.lower() && x.upper() <= y.upper();
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
template<class T, class Policies1, class Policies2> inline
|
|
132
|
+
bool proper_subset(const interval<T, Policies1>& x,
|
|
133
|
+
const interval<T, Policies2>& y)
|
|
134
|
+
{
|
|
135
|
+
if (empty(y)) return false;
|
|
136
|
+
if (empty(x)) return true;
|
|
137
|
+
return y.lower() <= x.lower() && x.upper() <= y.upper() &&
|
|
138
|
+
(y.lower() != x.lower() || x.upper() != y.upper());
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
template<class T, class Policies1, class Policies2> inline
|
|
142
|
+
bool overlap(const interval<T, Policies1>& x,
|
|
143
|
+
const interval<T, Policies2>& y)
|
|
144
|
+
{
|
|
145
|
+
if (interval_lib::detail::test_input(x, y)) return false;
|
|
146
|
+
return (x.lower() <= y.lower() && y.lower() <= x.upper()) ||
|
|
147
|
+
(y.lower() <= x.lower() && x.lower() <= y.upper());
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
template<class T, class Policies> inline
|
|
151
|
+
bool singleton(const interval<T, Policies>& x)
|
|
152
|
+
{
|
|
153
|
+
return !empty(x) && x.lower() == x.upper();
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
template<class T, class Policies1, class Policies2> inline
|
|
157
|
+
bool equal(const interval<T, Policies1>& x, const interval<T, Policies2>& y)
|
|
158
|
+
{
|
|
159
|
+
if (empty(x)) return empty(y);
|
|
160
|
+
return !empty(y) && x.lower() == y.lower() && x.upper() == y.upper();
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
template<class T, class Policies> inline
|
|
164
|
+
interval<T, Policies> intersect(const interval<T, Policies>& x,
|
|
165
|
+
const interval<T, Policies>& y)
|
|
166
|
+
{
|
|
167
|
+
BOOST_USING_STD_MIN();
|
|
168
|
+
BOOST_USING_STD_MAX();
|
|
169
|
+
if (interval_lib::detail::test_input(x, y))
|
|
170
|
+
return interval<T, Policies>::empty();
|
|
171
|
+
const T& l = max BOOST_PREVENT_MACRO_SUBSTITUTION(x.lower(), y.lower());
|
|
172
|
+
const T& u = min BOOST_PREVENT_MACRO_SUBSTITUTION(x.upper(), y.upper());
|
|
173
|
+
if (l <= u) return interval<T, Policies>(l, u, true);
|
|
174
|
+
else return interval<T, Policies>::empty();
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
template<class T, class Policies> inline
|
|
178
|
+
interval<T, Policies> hull(const interval<T, Policies>& x,
|
|
179
|
+
const interval<T, Policies>& y)
|
|
180
|
+
{
|
|
181
|
+
BOOST_USING_STD_MIN();
|
|
182
|
+
BOOST_USING_STD_MAX();
|
|
183
|
+
bool bad_x = interval_lib::detail::test_input(x);
|
|
184
|
+
bool bad_y = interval_lib::detail::test_input(y);
|
|
185
|
+
if (bad_x)
|
|
186
|
+
if (bad_y) return interval<T, Policies>::empty();
|
|
187
|
+
else return y;
|
|
188
|
+
else
|
|
189
|
+
if (bad_y) return x;
|
|
190
|
+
return interval<T, Policies>(min BOOST_PREVENT_MACRO_SUBSTITUTION(x.lower(), y.lower()),
|
|
191
|
+
max BOOST_PREVENT_MACRO_SUBSTITUTION(x.upper(), y.upper()), true);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
template<class T, class Policies> inline
|
|
195
|
+
interval<T, Policies> hull(const interval<T, Policies>& x, const T& y)
|
|
196
|
+
{
|
|
197
|
+
BOOST_USING_STD_MIN();
|
|
198
|
+
BOOST_USING_STD_MAX();
|
|
199
|
+
bool bad_x = interval_lib::detail::test_input(x);
|
|
200
|
+
bool bad_y = interval_lib::detail::test_input<T, Policies>(y);
|
|
201
|
+
if (bad_y)
|
|
202
|
+
if (bad_x) return interval<T, Policies>::empty();
|
|
203
|
+
else return x;
|
|
204
|
+
else
|
|
205
|
+
if (bad_x) return interval<T, Policies>(y, y, true);
|
|
206
|
+
return interval<T, Policies>(min BOOST_PREVENT_MACRO_SUBSTITUTION(x.lower(), y),
|
|
207
|
+
max BOOST_PREVENT_MACRO_SUBSTITUTION(x.upper(), y), true);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
template<class T, class Policies> inline
|
|
211
|
+
interval<T, Policies> hull(const T& x, const interval<T, Policies>& y)
|
|
212
|
+
{
|
|
213
|
+
BOOST_USING_STD_MIN();
|
|
214
|
+
BOOST_USING_STD_MAX();
|
|
215
|
+
bool bad_x = interval_lib::detail::test_input<T, Policies>(x);
|
|
216
|
+
bool bad_y = interval_lib::detail::test_input(y);
|
|
217
|
+
if (bad_x)
|
|
218
|
+
if (bad_y) return interval<T, Policies>::empty();
|
|
219
|
+
else return y;
|
|
220
|
+
else
|
|
221
|
+
if (bad_y) return interval<T, Policies>(x, x, true);
|
|
222
|
+
return interval<T, Policies>(min BOOST_PREVENT_MACRO_SUBSTITUTION(x, y.lower()),
|
|
223
|
+
max BOOST_PREVENT_MACRO_SUBSTITUTION(x, y.upper()), true);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
template<class T> inline
|
|
227
|
+
interval<T> hull(const T& x, const T& y)
|
|
228
|
+
{
|
|
229
|
+
return interval<T>::hull(x, y);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
template<class T, class Policies> inline
|
|
233
|
+
std::pair<interval<T, Policies>, interval<T, Policies> >
|
|
234
|
+
bisect(const interval<T, Policies>& x)
|
|
235
|
+
{
|
|
236
|
+
typedef interval<T, Policies> I;
|
|
237
|
+
if (interval_lib::detail::test_input(x))
|
|
238
|
+
return std::pair<I,I>(I::empty(), I::empty());
|
|
239
|
+
const T m = median(x);
|
|
240
|
+
return std::pair<I,I>(I(x.lower(), m, true), I(m, x.upper(), true));
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/*
|
|
244
|
+
* Elementary functions
|
|
245
|
+
*/
|
|
246
|
+
|
|
247
|
+
template<class T, class Policies> inline
|
|
248
|
+
T norm(const interval<T, Policies>& x)
|
|
249
|
+
{
|
|
250
|
+
if (interval_lib::detail::test_input(x)) {
|
|
251
|
+
typedef typename Policies::checking checking;
|
|
252
|
+
return checking::nan();
|
|
253
|
+
}
|
|
254
|
+
BOOST_USING_STD_MAX();
|
|
255
|
+
return max BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast<T>(-x.lower()), x.upper());
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
template<class T, class Policies> inline
|
|
259
|
+
interval<T, Policies> abs(const interval<T, Policies>& x)
|
|
260
|
+
{
|
|
261
|
+
typedef interval<T, Policies> I;
|
|
262
|
+
if (interval_lib::detail::test_input(x))
|
|
263
|
+
return I::empty();
|
|
264
|
+
if (!interval_lib::user::is_neg(x.lower())) return x;
|
|
265
|
+
if (!interval_lib::user::is_pos(x.upper())) return -x;
|
|
266
|
+
BOOST_USING_STD_MAX();
|
|
267
|
+
return I(static_cast<T>(0), max BOOST_PREVENT_MACRO_SUBSTITUTION(static_cast<T>(-x.lower()), x.upper()), true);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
template<class T, class Policies> inline
|
|
271
|
+
interval<T, Policies> max BOOST_PREVENT_MACRO_SUBSTITUTION (const interval<T, Policies>& x,
|
|
272
|
+
const interval<T, Policies>& y)
|
|
273
|
+
{
|
|
274
|
+
typedef interval<T, Policies> I;
|
|
275
|
+
if (interval_lib::detail::test_input(x, y))
|
|
276
|
+
return I::empty();
|
|
277
|
+
BOOST_USING_STD_MAX();
|
|
278
|
+
return I(max BOOST_PREVENT_MACRO_SUBSTITUTION(x.lower(), y.lower()), max BOOST_PREVENT_MACRO_SUBSTITUTION(x.upper(), y.upper()), true);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
template<class T, class Policies> inline
|
|
282
|
+
interval<T, Policies> max BOOST_PREVENT_MACRO_SUBSTITUTION (const interval<T, Policies>& x, const T& y)
|
|
283
|
+
{
|
|
284
|
+
typedef interval<T, Policies> I;
|
|
285
|
+
if (interval_lib::detail::test_input(x, y))
|
|
286
|
+
return I::empty();
|
|
287
|
+
BOOST_USING_STD_MAX();
|
|
288
|
+
return I(max BOOST_PREVENT_MACRO_SUBSTITUTION(x.lower(), y), max BOOST_PREVENT_MACRO_SUBSTITUTION(x.upper(), y), true);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
template<class T, class Policies> inline
|
|
292
|
+
interval<T, Policies> max BOOST_PREVENT_MACRO_SUBSTITUTION (const T& x, const interval<T, Policies>& y)
|
|
293
|
+
{
|
|
294
|
+
typedef interval<T, Policies> I;
|
|
295
|
+
if (interval_lib::detail::test_input(x, y))
|
|
296
|
+
return I::empty();
|
|
297
|
+
BOOST_USING_STD_MAX();
|
|
298
|
+
return I(max BOOST_PREVENT_MACRO_SUBSTITUTION(x, y.lower()), max BOOST_PREVENT_MACRO_SUBSTITUTION(x, y.upper()), true);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
template<class T, class Policies> inline
|
|
302
|
+
interval<T, Policies> min BOOST_PREVENT_MACRO_SUBSTITUTION (const interval<T, Policies>& x,
|
|
303
|
+
const interval<T, Policies>& y)
|
|
304
|
+
{
|
|
305
|
+
typedef interval<T, Policies> I;
|
|
306
|
+
if (interval_lib::detail::test_input(x, y))
|
|
307
|
+
return I::empty();
|
|
308
|
+
BOOST_USING_STD_MIN();
|
|
309
|
+
return I(min BOOST_PREVENT_MACRO_SUBSTITUTION(x.lower(), y.lower()), min BOOST_PREVENT_MACRO_SUBSTITUTION(x.upper(), y.upper()), true);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
template<class T, class Policies> inline
|
|
313
|
+
interval<T, Policies> min BOOST_PREVENT_MACRO_SUBSTITUTION (const interval<T, Policies>& x, const T& y)
|
|
314
|
+
{
|
|
315
|
+
typedef interval<T, Policies> I;
|
|
316
|
+
if (interval_lib::detail::test_input(x, y))
|
|
317
|
+
return I::empty();
|
|
318
|
+
BOOST_USING_STD_MIN();
|
|
319
|
+
return I(min BOOST_PREVENT_MACRO_SUBSTITUTION(x.lower(), y), min BOOST_PREVENT_MACRO_SUBSTITUTION(x.upper(), y), true);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
template<class T, class Policies> inline
|
|
323
|
+
interval<T, Policies> min BOOST_PREVENT_MACRO_SUBSTITUTION (const T& x, const interval<T, Policies>& y)
|
|
324
|
+
{
|
|
325
|
+
typedef interval<T, Policies> I;
|
|
326
|
+
if (interval_lib::detail::test_input(x, y))
|
|
327
|
+
return I::empty();
|
|
328
|
+
BOOST_USING_STD_MIN();
|
|
329
|
+
return I(min BOOST_PREVENT_MACRO_SUBSTITUTION(x, y.lower()), min BOOST_PREVENT_MACRO_SUBSTITUTION(x, y.upper()), true);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
} // namespace numeric
|
|
333
|
+
} // namespace boost
|
|
334
|
+
|
|
335
|
+
#endif // BOOST_NUMERIC_INTERVAL_UTILITY_HPP
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/* Boost interval/utility.hpp template interface file
|
|
2
|
+
*
|
|
3
|
+
* Copyright 2013 Cromwell D. Enage
|
|
4
|
+
*
|
|
5
|
+
* Distributed under the Boost Software License, Version 1.0.
|
|
6
|
+
* (See accompanying file LICENSE_1_0.txt or copy at
|
|
7
|
+
* http://www.boost.org/LICENSE_1_0.txt)
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#ifndef BOOST_NUMERIC_INTERVAL_UTILITY_FWD_HPP
|
|
11
|
+
#define BOOST_NUMERIC_INTERVAL_UTILITY_FWD_HPP
|
|
12
|
+
|
|
13
|
+
#include <boost/config.hpp>
|
|
14
|
+
#include <boost/numeric/interval/detail/interval_prototype.hpp>
|
|
15
|
+
#include <utility>
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* Interface of simple functions
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
namespace boost { namespace numeric {
|
|
22
|
+
|
|
23
|
+
/*
|
|
24
|
+
* Utility Functions
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
template<class T, class Policies>
|
|
28
|
+
const T& lower(const interval<T,Policies>& x);
|
|
29
|
+
|
|
30
|
+
template<class T, class Policies>
|
|
31
|
+
const T& upper(const interval<T,Policies>& x);
|
|
32
|
+
|
|
33
|
+
template<class T, class Policies>
|
|
34
|
+
T checked_lower(const interval<T,Policies>& x);
|
|
35
|
+
|
|
36
|
+
template<class T, class Policies>
|
|
37
|
+
T width(const interval<T,Policies>& x);
|
|
38
|
+
|
|
39
|
+
template<class T, class Policies>
|
|
40
|
+
T median(const interval<T,Policies>& x);
|
|
41
|
+
|
|
42
|
+
template<class T, class Policies>
|
|
43
|
+
interval<T,Policies> widen(const interval<T,Policies>& x, const T& v);
|
|
44
|
+
|
|
45
|
+
/*
|
|
46
|
+
* Set-like operations
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
template <class T, class Policies>
|
|
50
|
+
bool empty(const interval<T,Policies>& x);
|
|
51
|
+
|
|
52
|
+
template <class T, class Policies>
|
|
53
|
+
bool zero_in(const interval<T,Policies>& x);
|
|
54
|
+
|
|
55
|
+
template <class T, class Policies>
|
|
56
|
+
bool in_zero(const interval<T,Policies>& x); // DEPRECATED
|
|
57
|
+
|
|
58
|
+
template <class T, class Policies>
|
|
59
|
+
bool in(const T& x, const interval<T,Policies>& y);
|
|
60
|
+
|
|
61
|
+
template <class T, class Policies>
|
|
62
|
+
bool
|
|
63
|
+
subset(
|
|
64
|
+
const interval<T,Policies>& x
|
|
65
|
+
, const interval<T,Policies>& y
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
template <class T, class Policies1, class Policies2>
|
|
69
|
+
bool
|
|
70
|
+
proper_subset(
|
|
71
|
+
const interval<T,Policies1>& x
|
|
72
|
+
, const interval<T,Policies2>& y
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
template <class T, class Policies1, class Policies2>
|
|
76
|
+
bool
|
|
77
|
+
overlap(
|
|
78
|
+
const interval<T,Policies1>& x
|
|
79
|
+
, const interval<T,Policies2>& y
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
template <class T, class Policies>
|
|
83
|
+
bool singleton(const interval<T, Policies>& x);
|
|
84
|
+
|
|
85
|
+
template <class T, class Policies1, class Policies2>
|
|
86
|
+
bool
|
|
87
|
+
equal(
|
|
88
|
+
const interval<T,Policies1>& x
|
|
89
|
+
, const interval<T,Policies2>& y
|
|
90
|
+
);
|
|
91
|
+
|
|
92
|
+
template <class T, class Policies>
|
|
93
|
+
interval<T, Policies>
|
|
94
|
+
intersect(
|
|
95
|
+
const interval<T,Policies>& x
|
|
96
|
+
, const interval<T,Policies>& y
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
template <class T, class Policies>
|
|
100
|
+
interval<T, Policies>
|
|
101
|
+
hull(const interval<T,Policies>& x, const interval<T,Policies>& y);
|
|
102
|
+
|
|
103
|
+
template <class T, class Policies>
|
|
104
|
+
interval<T, Policies>
|
|
105
|
+
hull(const interval<T,Policies>& x, const T& y);
|
|
106
|
+
|
|
107
|
+
template <class T, class Policies>
|
|
108
|
+
interval<T, Policies>
|
|
109
|
+
hull(const T& x, const interval<T,Policies>& y);
|
|
110
|
+
|
|
111
|
+
template <class T>
|
|
112
|
+
interval<T> hull(const T& x, const T& y);
|
|
113
|
+
|
|
114
|
+
template <class T, class Policies>
|
|
115
|
+
std::pair<interval<T,Policies>,interval<T,Policies> >
|
|
116
|
+
bisect(const interval<T,Policies>& x);
|
|
117
|
+
|
|
118
|
+
/*
|
|
119
|
+
* Elementary functions
|
|
120
|
+
*/
|
|
121
|
+
|
|
122
|
+
template <class T, class Policies>
|
|
123
|
+
T norm(const interval<T,Policies>& x);
|
|
124
|
+
|
|
125
|
+
template <class T, class Policies>
|
|
126
|
+
interval<T,Policies> abs(const interval<T,Policies>& x);
|
|
127
|
+
|
|
128
|
+
template <class T, class Policies>
|
|
129
|
+
interval<T,Policies>
|
|
130
|
+
max BOOST_PREVENT_MACRO_SUBSTITUTION (
|
|
131
|
+
const interval<T,Policies>& x
|
|
132
|
+
, const interval<T,Policies>& y
|
|
133
|
+
);
|
|
134
|
+
|
|
135
|
+
template <class T, class Policies>
|
|
136
|
+
interval<T,Policies>
|
|
137
|
+
max BOOST_PREVENT_MACRO_SUBSTITUTION (
|
|
138
|
+
const interval<T,Policies>& x
|
|
139
|
+
, const T& y
|
|
140
|
+
);
|
|
141
|
+
|
|
142
|
+
template <class T, class Policies>
|
|
143
|
+
interval<T,Policies>
|
|
144
|
+
max BOOST_PREVENT_MACRO_SUBSTITUTION (
|
|
145
|
+
const T& x
|
|
146
|
+
, const interval<T,Policies>& y
|
|
147
|
+
);
|
|
148
|
+
|
|
149
|
+
template <class T, class Policies>
|
|
150
|
+
interval<T,Policies>
|
|
151
|
+
min BOOST_PREVENT_MACRO_SUBSTITUTION (
|
|
152
|
+
const interval<T,Policies>& x
|
|
153
|
+
, const interval<T,Policies>& y
|
|
154
|
+
);
|
|
155
|
+
|
|
156
|
+
template <class T, class Policies>
|
|
157
|
+
interval<T,Policies>
|
|
158
|
+
min BOOST_PREVENT_MACRO_SUBSTITUTION (
|
|
159
|
+
const interval<T,Policies>& x
|
|
160
|
+
, const T& y
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
template <class T, class Policies>
|
|
164
|
+
interval<T,Policies>
|
|
165
|
+
min BOOST_PREVENT_MACRO_SUBSTITUTION (
|
|
166
|
+
const T& x
|
|
167
|
+
, const interval<T,Policies>& y
|
|
168
|
+
);
|
|
169
|
+
}} // namespace boost::numeric
|
|
170
|
+
|
|
171
|
+
#endif // include guard
|
|
172
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* Boost interval.hpp header file
|
|
2
|
+
*
|
|
3
|
+
* Copyright 2000 Jens Maurer
|
|
4
|
+
* Copyright 2002 Hervé Brönnimann, Guillaume Melquiond, Sylvain Pion
|
|
5
|
+
*
|
|
6
|
+
* Distributed under the Boost Software License, Version 1.0.
|
|
7
|
+
* (See accompanying file LICENSE_1_0.txt or
|
|
8
|
+
* copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#ifndef BOOST_NUMERIC_INTERVAL_HPP
|
|
12
|
+
#define BOOST_NUMERIC_INTERVAL_HPP
|
|
13
|
+
|
|
14
|
+
#include <boost/limits.hpp>
|
|
15
|
+
#include <boost/numeric/interval/interval.hpp>
|
|
16
|
+
#include <boost/numeric/interval/policies.hpp>
|
|
17
|
+
|
|
18
|
+
#include <boost/numeric/interval/hw_rounding.hpp>
|
|
19
|
+
#include <boost/numeric/interval/rounded_arith.hpp>
|
|
20
|
+
#include <boost/numeric/interval/rounded_transc.hpp>
|
|
21
|
+
#include <boost/numeric/interval/constants.hpp>
|
|
22
|
+
|
|
23
|
+
#include <boost/numeric/interval/checking.hpp>
|
|
24
|
+
#include <boost/numeric/interval/compare.hpp>
|
|
25
|
+
#include <boost/numeric/interval/utility.hpp>
|
|
26
|
+
|
|
27
|
+
#include <boost/numeric/interval/arith.hpp>
|
|
28
|
+
#include <boost/numeric/interval/arith2.hpp>
|
|
29
|
+
#include <boost/numeric/interval/arith3.hpp>
|
|
30
|
+
#include <boost/numeric/interval/transc.hpp>
|
|
31
|
+
|
|
32
|
+
#endif // BOOST_NUMERIC_INTERVAL_HPP
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/algebra/algebra_dispatcher.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Algebra dispatcher to automatically chose suitable algebra.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2013 Karsten Ahnert
|
|
10
|
+
Copyright 2013 Mario Mulansky
|
|
11
|
+
|
|
12
|
+
Distributed under the Boost Software License, Version 1.0.
|
|
13
|
+
(See accompanying file LICENSE_1_0.txt or
|
|
14
|
+
copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
#ifndef BOOST_NUMERIC_ODEINT_ALGEBRA_ALGEBRA_DISPATCHER_HPP_INCLUDED
|
|
18
|
+
#define BOOST_NUMERIC_ODEINT_ALGEBRA_ALGEBRA_DISPATCHER_HPP_INCLUDED
|
|
19
|
+
|
|
20
|
+
#include <type_traits>
|
|
21
|
+
#include <complex>
|
|
22
|
+
#include <array>
|
|
23
|
+
|
|
24
|
+
#include <boost/numeric/odeint/config.hpp>
|
|
25
|
+
|
|
26
|
+
#include <boost/numeric/ublas/vector.hpp>
|
|
27
|
+
#include <boost/numeric/ublas/matrix.hpp>
|
|
28
|
+
|
|
29
|
+
#include <boost/numeric/odeint/algebra/range_algebra.hpp>
|
|
30
|
+
#include <boost/numeric/odeint/algebra/array_algebra.hpp>
|
|
31
|
+
#include <boost/numeric/odeint/algebra/vector_space_algebra.hpp>
|
|
32
|
+
|
|
33
|
+
namespace boost {
|
|
34
|
+
namespace numeric {
|
|
35
|
+
namespace odeint {
|
|
36
|
+
|
|
37
|
+
template< class StateType , class Enabler = void >
|
|
38
|
+
struct algebra_dispatcher_sfinae
|
|
39
|
+
{
|
|
40
|
+
// range_algebra is the standard algebra
|
|
41
|
+
typedef range_algebra algebra_type;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
template< class StateType >
|
|
45
|
+
struct algebra_dispatcher : algebra_dispatcher_sfinae< StateType > { };
|
|
46
|
+
|
|
47
|
+
// specialize for array
|
|
48
|
+
template< class T , size_t N >
|
|
49
|
+
struct algebra_dispatcher< std::array< T , N > >
|
|
50
|
+
{
|
|
51
|
+
typedef array_algebra algebra_type;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
//specialize for some integral types
|
|
55
|
+
template< typename T >
|
|
56
|
+
struct algebra_dispatcher_sfinae< T , typename std::enable_if< std::is_floating_point< T >::value >::type >
|
|
57
|
+
{
|
|
58
|
+
typedef vector_space_algebra algebra_type;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
template< typename T >
|
|
62
|
+
struct algebra_dispatcher< std::complex<T> >
|
|
63
|
+
{
|
|
64
|
+
typedef vector_space_algebra algebra_type;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
///* think about that again....
|
|
68
|
+
// specialize for ublas vector and matrix types
|
|
69
|
+
template< class T , class A >
|
|
70
|
+
struct algebra_dispatcher< boost::numeric::ublas::vector< T , A > >
|
|
71
|
+
{
|
|
72
|
+
typedef vector_space_algebra algebra_type;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
template< class T , class L , class A >
|
|
76
|
+
struct algebra_dispatcher< boost::numeric::ublas::matrix< T , L , A > >
|
|
77
|
+
{
|
|
78
|
+
typedef vector_space_algebra algebra_type;
|
|
79
|
+
};
|
|
80
|
+
//*/
|
|
81
|
+
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
#endif
|