diff options
author | Anas Nashif <anas.nashif@intel.com> | 2012-10-30 12:57:26 -0700 |
---|---|---|
committer | Anas Nashif <anas.nashif@intel.com> | 2012-10-30 12:57:26 -0700 |
commit | 1a78a62555be32868418fe52f8e330c9d0f95d5a (patch) | |
tree | d3765a80e7d3b9640ec2e930743630cd6b9fce2b /boost/units/physical_dimensions | |
download | boost-1a78a62555be32868418fe52f8e330c9d0f95d5a.tar.gz boost-1a78a62555be32868418fe52f8e330c9d0f95d5a.tar.bz2 boost-1a78a62555be32868418fe52f8e330c9d0f95d5a.zip |
Imported Upstream version 1.49.0upstream/1.49.0
Diffstat (limited to 'boost/units/physical_dimensions')
61 files changed, 2092 insertions, 0 deletions
diff --git a/boost/units/physical_dimensions/absorbed_dose.hpp b/boost/units/physical_dimensions/absorbed_dose.hpp new file mode 100644 index 0000000000..c62ed09b6d --- /dev/null +++ b/boost/units/physical_dimensions/absorbed_dose.hpp @@ -0,0 +1,30 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_ABSORBED_DOSE_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_ABSORBED_DOSE_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for absorbed dose : L^2 T^-2 +typedef derived_dimension<length_base_dimension,2, + time_base_dimension,-2>::type absorbed_dose_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_ABSORBED_DOSE_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/acceleration.hpp b/boost/units/physical_dimensions/acceleration.hpp new file mode 100644 index 0000000000..8f25c86364 --- /dev/null +++ b/boost/units/physical_dimensions/acceleration.hpp @@ -0,0 +1,30 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_ACCELERATION_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_ACCELERATION_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for acceleration : L T^-2 +typedef derived_dimension<length_base_dimension,1, + time_base_dimension,-2>::type acceleration_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_ACCELERATION_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/action.hpp b/boost/units/physical_dimensions/action.hpp new file mode 100644 index 0000000000..cf38d324bd --- /dev/null +++ b/boost/units/physical_dimensions/action.hpp @@ -0,0 +1,32 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_ACTION_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_ACTION_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for action : L^2 M T^-1 +typedef derived_dimension<length_base_dimension,2, + mass_base_dimension,1, + time_base_dimension,-1>::type action_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_ACTION_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/activity.hpp b/boost/units/physical_dimensions/activity.hpp new file mode 100644 index 0000000000..035cd44433 --- /dev/null +++ b/boost/units/physical_dimensions/activity.hpp @@ -0,0 +1,28 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_ACTIVITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_ACTIVITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for activity : T^-1 +typedef derived_dimension<time_base_dimension,-1>::type activity_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_ACTIVITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/amount.hpp b/boost/units/physical_dimensions/amount.hpp new file mode 100644 index 0000000000..6d9d4b3a48 --- /dev/null +++ b/boost/units/physical_dimensions/amount.hpp @@ -0,0 +1,49 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_AMOUNT_BASE_DIMENSION_HPP +#define BOOST_UNITS_AMOUNT_BASE_DIMENSION_HPP + +#include <boost/units/config.hpp> +#include <boost/units/base_dimension.hpp> + +namespace boost { + +namespace units { + +/// base dimension of amount +struct amount_base_dimension : + boost::units::base_dimension<amount_base_dimension,-4> +{ }; + +} // namespace units + +} // namespace boost + +#if BOOST_UNITS_HAS_BOOST_TYPEOF + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_REGISTER_TYPE(boost::units::amount_base_dimension) + +#endif + +namespace boost { + +namespace units { + +/// dimension of amount of substance (N) +typedef amount_base_dimension::dimension_type amount_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_AMOUNT_BASE_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/angular_acceleration.hpp b/boost/units/physical_dimensions/angular_acceleration.hpp new file mode 100644 index 0000000000..79a3a14beb --- /dev/null +++ b/boost/units/physical_dimensions/angular_acceleration.hpp @@ -0,0 +1,30 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_ANGULAR_ACCELERATION_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_ANGULAR_ACCELERATION_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/plane_angle.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for angular acceleration : T^-2 QP +typedef derived_dimension<time_base_dimension,-2, + plane_angle_base_dimension,1>::type angular_acceleration_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_ANGULAR_ACCELERATION_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/angular_momentum.hpp b/boost/units/physical_dimensions/angular_momentum.hpp new file mode 100644 index 0000000000..0a86f88bc6 --- /dev/null +++ b/boost/units/physical_dimensions/angular_momentum.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_ANGULAR_MOMENTUM_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_ANGULAR_MOMENTUM_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/plane_angle.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for angular momentum : L^2 M T^-1 QP^-1 +typedef derived_dimension<length_base_dimension,2, + mass_base_dimension,1, + time_base_dimension,-1, + plane_angle_base_dimension,-1>::type angular_momentum_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_ANGULAR_MOMENTUM_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/angular_velocity.hpp b/boost/units/physical_dimensions/angular_velocity.hpp new file mode 100644 index 0000000000..5d7ea879b7 --- /dev/null +++ b/boost/units/physical_dimensions/angular_velocity.hpp @@ -0,0 +1,30 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_ANGULAR_VELOCITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_ANGULAR_VELOCITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/plane_angle.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for angular velocity : T^-1 QP +typedef derived_dimension<time_base_dimension,-1, + plane_angle_base_dimension,1>::type angular_velocity_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_ANGULAR_VELOCITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/area.hpp b/boost/units/physical_dimensions/area.hpp new file mode 100644 index 0000000000..0d8cb0991e --- /dev/null +++ b/boost/units/physical_dimensions/area.hpp @@ -0,0 +1,28 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_AREA_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_AREA_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for area : L^2 +typedef derived_dimension<length_base_dimension,2>::type area_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_AREA_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/capacitance.hpp b/boost/units/physical_dimensions/capacitance.hpp new file mode 100644 index 0000000000..e7019a7c5b --- /dev/null +++ b/boost/units/physical_dimensions/capacitance.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_CAPACITANCE_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_CAPACITANCE_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/current.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for capacitance : L^-2 M^-1 T^4 I^2 +typedef derived_dimension<length_base_dimension,-2, + mass_base_dimension,-1, + time_base_dimension,4, + current_base_dimension,2>::type capacitance_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_CAPACITANCE_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/conductance.hpp b/boost/units/physical_dimensions/conductance.hpp new file mode 100644 index 0000000000..8405f92d39 --- /dev/null +++ b/boost/units/physical_dimensions/conductance.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_CONDUCTANCE_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_CONDUCTANCE_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/current.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for conductance : L^-2 M^-1 T^3 I^2 +typedef derived_dimension<length_base_dimension,-2, + mass_base_dimension,-1, + time_base_dimension,3, + current_base_dimension,2>::type conductance_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_CONDUCTANCE_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/conductivity.hpp b/boost/units/physical_dimensions/conductivity.hpp new file mode 100644 index 0000000000..d255915a5c --- /dev/null +++ b/boost/units/physical_dimensions/conductivity.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_CONDUCTIVITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_CONDUCTIVITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/current.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for conductivity : L^-3 M^-1 T^3 I^2 +typedef derived_dimension<length_base_dimension,-3, + mass_base_dimension,-1, + time_base_dimension,3, + current_base_dimension,2>::type conductivity_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_CONDUCTIVITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/current.hpp b/boost/units/physical_dimensions/current.hpp new file mode 100644 index 0000000000..6fa0e8924c --- /dev/null +++ b/boost/units/physical_dimensions/current.hpp @@ -0,0 +1,49 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_CURRENT_BASE_DIMENSION_HPP +#define BOOST_UNITS_CURRENT_BASE_DIMENSION_HPP + +#include <boost/units/config.hpp> +#include <boost/units/base_dimension.hpp> + +namespace boost { + +namespace units { + +/// base dimension of current +struct current_base_dimension : + boost::units::base_dimension<current_base_dimension,-6> +{ }; + +} // namespace units + +} // namespace boost + +#if BOOST_UNITS_HAS_BOOST_TYPEOF + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_REGISTER_TYPE(boost::units::current_base_dimension) + +#endif + +namespace boost { + +namespace units { + +/// dimension of electric current (I) +typedef current_base_dimension::dimension_type current_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_CURRENT_BASE_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/dose_equivalent.hpp b/boost/units/physical_dimensions/dose_equivalent.hpp new file mode 100644 index 0000000000..ae13d2f385 --- /dev/null +++ b/boost/units/physical_dimensions/dose_equivalent.hpp @@ -0,0 +1,30 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_DOSE_EQUIVALENT_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_DOSE_EQUIVALENT_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for dose equivalent : L^2 T^-2 +typedef derived_dimension<length_base_dimension,2, + time_base_dimension,-2>::type dose_equivalent_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_DOSE_EQUIVALENT_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/dynamic_viscosity.hpp b/boost/units/physical_dimensions/dynamic_viscosity.hpp new file mode 100644 index 0000000000..029f1fabea --- /dev/null +++ b/boost/units/physical_dimensions/dynamic_viscosity.hpp @@ -0,0 +1,32 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_DYNAMIC_VISCOSITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_DYNAMIC_VISCOSITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for dynamic viscosity : M L^-1 T^-1 +typedef derived_dimension<mass_base_dimension,1, + length_base_dimension,-1, + time_base_dimension,-1>::type dynamic_viscosity_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_DYNAMIC_VISCOSITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/electric_charge.hpp b/boost/units/physical_dimensions/electric_charge.hpp new file mode 100644 index 0000000000..36836462c9 --- /dev/null +++ b/boost/units/physical_dimensions/electric_charge.hpp @@ -0,0 +1,30 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_ELECTRIC_CHARGE_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_ELECTRIC_CHARGE_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/current.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for electric charge : T^1 I^1 +typedef derived_dimension<time_base_dimension,1, + current_base_dimension,1>::type electric_charge_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_ELECTRIC_CHARGE_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/electric_potential.hpp b/boost/units/physical_dimensions/electric_potential.hpp new file mode 100644 index 0000000000..1ef028c129 --- /dev/null +++ b/boost/units/physical_dimensions/electric_potential.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_ELECTRIC_POTENTIAL_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_ELECTRIC_POTENTIAL_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/current.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for electric potential : L^2 M T^-3 I^-1 +typedef derived_dimension<length_base_dimension,2, + mass_base_dimension,1, + time_base_dimension,-3, + current_base_dimension,-1>::type electric_potential_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_ELECTRIC_POTENTIAL_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/energy.hpp b/boost/units/physical_dimensions/energy.hpp new file mode 100644 index 0000000000..bf0dbe34a9 --- /dev/null +++ b/boost/units/physical_dimensions/energy.hpp @@ -0,0 +1,32 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_ENERGY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_ENERGY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for energy : L^2 M T^-2 +typedef derived_dimension<length_base_dimension,2, + mass_base_dimension,1, + time_base_dimension,-2>::type energy_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_ENERGY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/energy_density.hpp b/boost/units/physical_dimensions/energy_density.hpp new file mode 100644 index 0000000000..d30e1e122b --- /dev/null +++ b/boost/units/physical_dimensions/energy_density.hpp @@ -0,0 +1,32 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_ENERGY_DENSITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_ENERGY_DENSITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for energy density : L^-1 M^1 T^-2 +typedef derived_dimension<length_base_dimension,-1, + mass_base_dimension,1, + time_base_dimension,-2>::type energy_density_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_ENERGY_DENSITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/force.hpp b/boost/units/physical_dimensions/force.hpp new file mode 100644 index 0000000000..a1ed955b16 --- /dev/null +++ b/boost/units/physical_dimensions/force.hpp @@ -0,0 +1,32 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_FORCE_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_FORCE_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for force : L M T^-2 +typedef derived_dimension<length_base_dimension,1, + mass_base_dimension,1, + time_base_dimension,-2>::type force_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_FORCE_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/frequency.hpp b/boost/units/physical_dimensions/frequency.hpp new file mode 100644 index 0000000000..e2af7ee048 --- /dev/null +++ b/boost/units/physical_dimensions/frequency.hpp @@ -0,0 +1,28 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_FREQUENCY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_FREQUENCY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for frequency : T^-1 +typedef derived_dimension<time_base_dimension,-1>::type frequency_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_FREQUENCY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/heat_capacity.hpp b/boost/units/physical_dimensions/heat_capacity.hpp new file mode 100644 index 0000000000..3cbfa57c22 --- /dev/null +++ b/boost/units/physical_dimensions/heat_capacity.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_HEAT_CAPACITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_HEAT_CAPACITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/temperature.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for heat capacity : L^2 M T^-2 Theta^-1 +typedef derived_dimension<length_base_dimension,2, + mass_base_dimension,1, + time_base_dimension,-2, + temperature_base_dimension,-1>::type heat_capacity_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_HEAT_CAPACITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/illuminance.hpp b/boost/units/physical_dimensions/illuminance.hpp new file mode 100644 index 0000000000..a24daf476a --- /dev/null +++ b/boost/units/physical_dimensions/illuminance.hpp @@ -0,0 +1,32 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_ILLUMINANCE_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_ILLUMINANCE_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/luminous_intensity.hpp> +#include <boost/units/physical_dimensions/solid_angle.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for illuminance : L^-2 I QS +typedef derived_dimension<length_base_dimension,-2, + luminous_intensity_base_dimension,1, + solid_angle_base_dimension,1>::type illuminance_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_ILLUMINANCE_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/impedance.hpp b/boost/units/physical_dimensions/impedance.hpp new file mode 100644 index 0000000000..177fc607e4 --- /dev/null +++ b/boost/units/physical_dimensions/impedance.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_IMPEDANCE_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_IMPEDANCE_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/current.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for impedance : L^2 M T^-3 I^-2 +typedef derived_dimension<length_base_dimension,2, + mass_base_dimension,1, + time_base_dimension,-3, + current_base_dimension,-2>::type impedance_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_IMPEDANCE_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/inductance.hpp b/boost/units/physical_dimensions/inductance.hpp new file mode 100644 index 0000000000..1506364c30 --- /dev/null +++ b/boost/units/physical_dimensions/inductance.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_INDUCTANCE_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_INDUCTANCE_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/current.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for inductance : L^2 M T^-2 I^-2 +typedef derived_dimension<length_base_dimension,2, + mass_base_dimension,1, + time_base_dimension,-2, + current_base_dimension,-2>::type inductance_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_INDUCTANCE_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/kinematic_viscosity.hpp b/boost/units/physical_dimensions/kinematic_viscosity.hpp new file mode 100644 index 0000000000..e5c5261eef --- /dev/null +++ b/boost/units/physical_dimensions/kinematic_viscosity.hpp @@ -0,0 +1,30 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_KINEMATIC_VISCOSITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_KINEMATIC_VISCOSITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for kinematic viscosity : L^2 T^-1 +typedef derived_dimension<length_base_dimension,2, + time_base_dimension,-1>::type kinematic_viscosity_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_KINEMATIC_VISCOSITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/length.hpp b/boost/units/physical_dimensions/length.hpp new file mode 100644 index 0000000000..22bbec43c3 --- /dev/null +++ b/boost/units/physical_dimensions/length.hpp @@ -0,0 +1,49 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_LENGTH_BASE_DIMENSION_HPP +#define BOOST_UNITS_LENGTH_BASE_DIMENSION_HPP + +#include <boost/units/config.hpp> +#include <boost/units/base_dimension.hpp> + +namespace boost { + +namespace units { + +/// base dimension of length +struct length_base_dimension : + boost::units::base_dimension<length_base_dimension, -9> +{ }; + +} // namespace units + +} // namespace boost + +#if BOOST_UNITS_HAS_BOOST_TYPEOF + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_REGISTER_TYPE(boost::units::length_base_dimension) + +#endif + +namespace boost { + +namespace units { + +/// dimension of length (L) +typedef length_base_dimension::dimension_type length_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_LENGTH_BASE_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/luminance.hpp b/boost/units/physical_dimensions/luminance.hpp new file mode 100644 index 0000000000..f2e6f24873 --- /dev/null +++ b/boost/units/physical_dimensions/luminance.hpp @@ -0,0 +1,30 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_LUMINANCE_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_LUMINANCE_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/luminous_intensity.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for luminance : L^-2 I +typedef derived_dimension<length_base_dimension,-2, + luminous_intensity_base_dimension,1>::type luminance_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_LUMINANCE_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/luminous_flux.hpp b/boost/units/physical_dimensions/luminous_flux.hpp new file mode 100644 index 0000000000..4c725efeeb --- /dev/null +++ b/boost/units/physical_dimensions/luminous_flux.hpp @@ -0,0 +1,30 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_LUMINOUS_FLUX_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_LUMINOUS_FLUX_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/luminous_intensity.hpp> +#include <boost/units/physical_dimensions/solid_angle.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for luminous flux : I QS +typedef derived_dimension<luminous_intensity_base_dimension,1, + solid_angle_base_dimension,1>::type luminous_flux_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_LUMINOUS_FLUX_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/luminous_intensity.hpp b/boost/units/physical_dimensions/luminous_intensity.hpp new file mode 100644 index 0000000000..1da041d99a --- /dev/null +++ b/boost/units/physical_dimensions/luminous_intensity.hpp @@ -0,0 +1,49 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_LUMINOUS_INTENSITY_BASE_DIMENSION_HPP +#define BOOST_UNITS_LUMINOUS_INTENSITY_BASE_DIMENSION_HPP + +#include <boost/units/config.hpp> +#include <boost/units/base_dimension.hpp> + +namespace boost { + +namespace units { + +/// base dimension of luminous intensity +struct luminous_intensity_base_dimension : + boost::units::base_dimension<luminous_intensity_base_dimension,-3> +{ }; + +} // namespace units + +} // namespace boost + +#if BOOST_UNITS_HAS_BOOST_TYPEOF + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_REGISTER_TYPE(boost::units::luminous_intensity_base_dimension) + +#endif + +namespace boost { + +namespace units { + +/// dimension of luminous intensity (J) +typedef luminous_intensity_base_dimension::dimension_type luminous_intensity_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_LUMINOUS_INTENSITY_BASE_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/magnetic_field_intensity.hpp b/boost/units/physical_dimensions/magnetic_field_intensity.hpp new file mode 100644 index 0000000000..665e5bc26c --- /dev/null +++ b/boost/units/physical_dimensions/magnetic_field_intensity.hpp @@ -0,0 +1,30 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_MAGNETIC_FIELD_INTENSITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_MAGNETIC_FIELD_INTENSITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/current.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for magnetic field intensity : L^-1 I +typedef derived_dimension<length_base_dimension,-1, + current_base_dimension,1>::type magnetic_field_intensity_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_MAGNETIC_FIELD_INTENSITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/magnetic_flux.hpp b/boost/units/physical_dimensions/magnetic_flux.hpp new file mode 100644 index 0000000000..c247e5605d --- /dev/null +++ b/boost/units/physical_dimensions/magnetic_flux.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_MAGNETIC_FLUX_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_MAGNETIC_FLUX_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/current.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for magnetic flux : L^2 M T^-2 I^-1 +typedef derived_dimension<length_base_dimension,2, + mass_base_dimension,1, + time_base_dimension,-2, + current_base_dimension,-1>::type magnetic_flux_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_MAGNETIC_FLUX_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/magnetic_flux_density.hpp b/boost/units/physical_dimensions/magnetic_flux_density.hpp new file mode 100644 index 0000000000..d7fb7bbb14 --- /dev/null +++ b/boost/units/physical_dimensions/magnetic_flux_density.hpp @@ -0,0 +1,32 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_MAGNETIC_FLUX_DENSITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_MAGNETIC_FLUX_DENSITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/current.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for magnetic flux density : M T^-2 I^-1 +typedef derived_dimension<mass_base_dimension,1, + time_base_dimension,-2, + current_base_dimension,-1>::type magnetic_flux_density_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_MAGNETIC_FLUX_DENSITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/mass.hpp b/boost/units/physical_dimensions/mass.hpp new file mode 100644 index 0000000000..7aaa75ccfc --- /dev/null +++ b/boost/units/physical_dimensions/mass.hpp @@ -0,0 +1,49 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_MASS_BASE_DIMENSION_HPP +#define BOOST_UNITS_MASS_BASE_DIMENSION_HPP + +#include <boost/units/config.hpp> +#include <boost/units/base_dimension.hpp> + +namespace boost { + +namespace units { + +/// base dimension of mass +struct mass_base_dimension : + boost::units::base_dimension<mass_base_dimension,-8> +{ }; + +} // namespace units + +} // namespace boost + +#if BOOST_UNITS_HAS_BOOST_TYPEOF + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_REGISTER_TYPE(boost::units::mass_base_dimension) + +#endif + +namespace boost { + +namespace units { + +/// dimension of mass (M) +typedef mass_base_dimension::dimension_type mass_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_MASS_BASE_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/mass_density.hpp b/boost/units/physical_dimensions/mass_density.hpp new file mode 100644 index 0000000000..e632f2474f --- /dev/null +++ b/boost/units/physical_dimensions/mass_density.hpp @@ -0,0 +1,30 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_MASS_DENSITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_MASS_DENSITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for mass density : L^-3 M +typedef derived_dimension<length_base_dimension,-3, + mass_base_dimension,1>::type mass_density_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_MASS_DENSITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/molar_energy.hpp b/boost/units/physical_dimensions/molar_energy.hpp new file mode 100644 index 0000000000..2f83bbf551 --- /dev/null +++ b/boost/units/physical_dimensions/molar_energy.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_MOLAR_ENERGY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_MOLAR_ENERGY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/amount.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for molar energy : L^2 M T^-2 N^-1 +typedef derived_dimension<length_base_dimension,2, + mass_base_dimension,1, + time_base_dimension,-2, + amount_base_dimension,-1>::type molar_energy_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_MOLAR_ENERGY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/molar_heat_capacity.hpp b/boost/units/physical_dimensions/molar_heat_capacity.hpp new file mode 100644 index 0000000000..48e147bdb3 --- /dev/null +++ b/boost/units/physical_dimensions/molar_heat_capacity.hpp @@ -0,0 +1,36 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_MOLAR_HEAT_CAPACITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_MOLAR_HEAT_CAPACITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/temperature.hpp> +#include <boost/units/physical_dimensions/amount.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for molar heat capacity : L^2 M T^-2 Theta^-1 N^-1 +typedef derived_dimension<length_base_dimension,2, + mass_base_dimension,1, + time_base_dimension,-2, + temperature_base_dimension,-1, + amount_base_dimension,-1>::type molar_heat_capacity_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_MOLAR_HEAT_CAPACITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/moment_of_inertia.hpp b/boost/units/physical_dimensions/moment_of_inertia.hpp new file mode 100644 index 0000000000..58c85c80d1 --- /dev/null +++ b/boost/units/physical_dimensions/moment_of_inertia.hpp @@ -0,0 +1,32 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_MOMENT_OF_INERTIA_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_MOMENT_OF_INERTIA_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/plane_angle.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for moment of inertia : L^2 M QP^-2 +typedef derived_dimension<length_base_dimension,2, + mass_base_dimension,1, + plane_angle_base_dimension,-2>::type moment_of_inertia_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_MOMENT_OF_INERTIA_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/momentum.hpp b/boost/units/physical_dimensions/momentum.hpp new file mode 100644 index 0000000000..13e8b8c67c --- /dev/null +++ b/boost/units/physical_dimensions/momentum.hpp @@ -0,0 +1,32 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_MOMENTUM_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_MOMENTUM_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for linear momentum : L M T^-1 +typedef derived_dimension<length_base_dimension,1, + mass_base_dimension,1, + time_base_dimension,-1>::type momentum_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_MOMENTUM_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/permeability.hpp b/boost/units/physical_dimensions/permeability.hpp new file mode 100644 index 0000000000..a0ea30cdaa --- /dev/null +++ b/boost/units/physical_dimensions/permeability.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_PERMEABILITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_PERMEABILITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/current.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for permeability : L M T^-2 I^-2 +typedef derived_dimension<length_base_dimension,1, + mass_base_dimension,1, + time_base_dimension,-2, + current_base_dimension,-2>::type permeability_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_PERMEABILITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/permittivity.hpp b/boost/units/physical_dimensions/permittivity.hpp new file mode 100644 index 0000000000..01994c5cea --- /dev/null +++ b/boost/units/physical_dimensions/permittivity.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_PERMITTIVITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_PERMITTIVITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/current.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for permittivity : L^-3 M^-1 T^4 I^2 +typedef derived_dimension<length_base_dimension,-3, + mass_base_dimension,-1, + time_base_dimension,4, + current_base_dimension,2>::type permittivity_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_PERMITTIVITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/plane_angle.hpp b/boost/units/physical_dimensions/plane_angle.hpp new file mode 100644 index 0000000000..ae700321f8 --- /dev/null +++ b/boost/units/physical_dimensions/plane_angle.hpp @@ -0,0 +1,49 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_PLANE_ANGLE_BASE_DIMENSION_HPP +#define BOOST_UNITS_PLANE_ANGLE_BASE_DIMENSION_HPP + +#include <boost/units/config.hpp> +#include <boost/units/base_dimension.hpp> + +namespace boost { + +namespace units { + +/// base dimension of plane angle +struct plane_angle_base_dimension : + boost::units::base_dimension<plane_angle_base_dimension,-2> +{ }; + +} // namespace units + +} // namespace boost + +#if BOOST_UNITS_HAS_BOOST_TYPEOF + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_REGISTER_TYPE(boost::units::plane_angle_base_dimension) + +#endif + +namespace boost { + +namespace units { + +/// base dimension of plane angle (QP) +typedef plane_angle_base_dimension::dimension_type plane_angle_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_PLANE_ANGLE_BASE_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/power.hpp b/boost/units/physical_dimensions/power.hpp new file mode 100644 index 0000000000..77e04cf4ee --- /dev/null +++ b/boost/units/physical_dimensions/power.hpp @@ -0,0 +1,32 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_POWER_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_POWER_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for power : L^2 M T^-3 +typedef derived_dimension<length_base_dimension,2, + mass_base_dimension,1, + time_base_dimension,-3>::type power_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_POWER_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/pressure.hpp b/boost/units/physical_dimensions/pressure.hpp new file mode 100644 index 0000000000..666b4c704b --- /dev/null +++ b/boost/units/physical_dimensions/pressure.hpp @@ -0,0 +1,32 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_PRESSURE_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_PRESSURE_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for pressure : L^-1 M T^-2 +typedef derived_dimension<length_base_dimension,-1, + mass_base_dimension,1, + time_base_dimension,-2>::type pressure_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_PRESSURE_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/reluctance.hpp b/boost/units/physical_dimensions/reluctance.hpp new file mode 100644 index 0000000000..56be33b480 --- /dev/null +++ b/boost/units/physical_dimensions/reluctance.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_RELUCTANCE_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_RELUCTANCE_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/current.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for reluctance : L^-2 M^-1 T^2 I^2 +typedef derived_dimension<length_base_dimension,-2, + mass_base_dimension,-1, + time_base_dimension,2, + current_base_dimension,2>::type reluctance_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_RELUCTANCE_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/resistance.hpp b/boost/units/physical_dimensions/resistance.hpp new file mode 100644 index 0000000000..3b1491d2bf --- /dev/null +++ b/boost/units/physical_dimensions/resistance.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_RESISTANCE_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_RESISTANCE_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/current.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for resistance : L^2 M T^-3 I^-2 +typedef derived_dimension<length_base_dimension,2, + mass_base_dimension,1, + time_base_dimension,-3, + current_base_dimension,-2>::type resistance_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_RESISTANCE_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/resistivity.hpp b/boost/units/physical_dimensions/resistivity.hpp new file mode 100644 index 0000000000..a82b900c47 --- /dev/null +++ b/boost/units/physical_dimensions/resistivity.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_RESISTIVITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_RESISTIVITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/current.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for resistivity : L^3 M T^-3 I^-2 +typedef derived_dimension<length_base_dimension,3, + mass_base_dimension,1, + time_base_dimension,-3, + current_base_dimension,-2>::type resistivity_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_RESISTIVITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/solid_angle.hpp b/boost/units/physical_dimensions/solid_angle.hpp new file mode 100644 index 0000000000..1d035c02f8 --- /dev/null +++ b/boost/units/physical_dimensions/solid_angle.hpp @@ -0,0 +1,49 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_SOLID_ANGLE_BASE_DIMENSION_HPP +#define BOOST_UNITS_SOLID_ANGLE_BASE_DIMENSION_HPP + +#include <boost/units/config.hpp> +#include <boost/units/base_dimension.hpp> + +namespace boost { + +namespace units { + +/// base dimension of solid angle +struct solid_angle_base_dimension : + boost::units::base_dimension<solid_angle_base_dimension,-1> +{ }; + +} // namespace units + +} // namespace boost + +#if BOOST_UNITS_HAS_BOOST_TYPEOF + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_REGISTER_TYPE(boost::units::solid_angle_base_dimension) + +#endif + +namespace boost { + +namespace units { + +/// base dimension of solid angle (QS) +typedef solid_angle_base_dimension::dimension_type solid_angle_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_SOLID_ANGLE_BASE_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/specific_energy.hpp b/boost/units/physical_dimensions/specific_energy.hpp new file mode 100644 index 0000000000..e74a29371f --- /dev/null +++ b/boost/units/physical_dimensions/specific_energy.hpp @@ -0,0 +1,30 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_SPECIFIC_ENERGY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_SPECIFIC_ENERGY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for specific energy : L^2 T^-2 +typedef derived_dimension<length_base_dimension,2, + time_base_dimension,-2>::type specific_energy_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_SPECIFIC_ENERGY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/specific_heat_capacity.hpp b/boost/units/physical_dimensions/specific_heat_capacity.hpp new file mode 100644 index 0000000000..9e48faec0c --- /dev/null +++ b/boost/units/physical_dimensions/specific_heat_capacity.hpp @@ -0,0 +1,32 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_SPECIFIC_HEAT_CAPACITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_SPECIFIC_HEAT_CAPACITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/temperature.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for specific heat capacity : L^2 T^-2 Theta^-1 +typedef derived_dimension<length_base_dimension,2, + time_base_dimension,-2, + temperature_base_dimension,-1>::type specific_heat_capacity_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_SPECIFIC_HEAT_CAPACITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/specific_volume.hpp b/boost/units/physical_dimensions/specific_volume.hpp new file mode 100644 index 0000000000..85ed8896b7 --- /dev/null +++ b/boost/units/physical_dimensions/specific_volume.hpp @@ -0,0 +1,30 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_SPECIFIC_VOLUME_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_SPECIFIC_VOLUME_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for specific volume : L^3 M^-1 +typedef derived_dimension<length_base_dimension,3, + mass_base_dimension,-1>::type specific_volume_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_SPECIFIC_VOLUME_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/stress.hpp b/boost/units/physical_dimensions/stress.hpp new file mode 100644 index 0000000000..d989c8c405 --- /dev/null +++ b/boost/units/physical_dimensions/stress.hpp @@ -0,0 +1,32 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_STRESS_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_STRESS_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for stress : L^-1 M T^-2 +typedef derived_dimension<length_base_dimension,-1, + mass_base_dimension,1, + time_base_dimension,-2>::type stress_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_STRESS_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/surface_density.hpp b/boost/units/physical_dimensions/surface_density.hpp new file mode 100644 index 0000000000..898e8f4a24 --- /dev/null +++ b/boost/units/physical_dimensions/surface_density.hpp @@ -0,0 +1,30 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_SURFACE_DENSITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_SURFACE_DENSITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for surface density : L^-2 M +typedef derived_dimension<length_base_dimension,-2, + mass_base_dimension,1>::type surface_density_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_SURFACE_DENSITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/surface_tension.hpp b/boost/units/physical_dimensions/surface_tension.hpp new file mode 100644 index 0000000000..630509fd6d --- /dev/null +++ b/boost/units/physical_dimensions/surface_tension.hpp @@ -0,0 +1,31 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_SURFACE_TENSION_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_SURFACE_TENSION_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for surface tension : M T^-2 +typedef derived_dimension<mass_base_dimension,1, + time_base_dimension,-2>::type surface_tension_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_SURFACE_TENSION_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/temperature.hpp b/boost/units/physical_dimensions/temperature.hpp new file mode 100644 index 0000000000..f6bc788203 --- /dev/null +++ b/boost/units/physical_dimensions/temperature.hpp @@ -0,0 +1,49 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_TEMPERATURE_BASE_DIMENSION_HPP +#define BOOST_UNITS_TEMPERATURE_BASE_DIMENSION_HPP + +#include <boost/units/config.hpp> +#include <boost/units/base_dimension.hpp> + +namespace boost { + +namespace units { + +/// base dimension of temperature +struct temperature_base_dimension : + boost::units::base_dimension<temperature_base_dimension,-5> +{ }; + +} // namespace units + +} // namespace boost + +#if BOOST_UNITS_HAS_BOOST_TYPEOF + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_REGISTER_TYPE(boost::units::temperature_base_dimension) + +#endif + +namespace boost { + +namespace units { + +/// dimension of temperature (Theta) +typedef temperature_base_dimension::dimension_type temperature_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_TEMPERATURE_BASE_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/thermal_conductivity.hpp b/boost/units/physical_dimensions/thermal_conductivity.hpp new file mode 100644 index 0000000000..abc82c7f18 --- /dev/null +++ b/boost/units/physical_dimensions/thermal_conductivity.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_THERMAL_CONDUCTIVITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_THERMAL_CONDUCTIVITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/time.hpp> +#include <boost/units/physical_dimensions/temperature.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for thermal_conductivity : L^1 M^1 T^-3 Theta^-1 +typedef derived_dimension<length_base_dimension,1, + mass_base_dimension,1, + time_base_dimension,-3, + temperature_base_dimension,-1>::type thermal_conductivity_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_THERMAL_CONDUCTIVITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/time.hpp b/boost/units/physical_dimensions/time.hpp new file mode 100644 index 0000000000..0b9a3e1f32 --- /dev/null +++ b/boost/units/physical_dimensions/time.hpp @@ -0,0 +1,49 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_TIME_BASE_DIMENSION_HPP +#define BOOST_UNITS_TIME_BASE_DIMENSION_HPP + +#include <boost/units/config.hpp> +#include <boost/units/base_dimension.hpp> + +namespace boost { + +namespace units { + +/// base dimension of time +struct time_base_dimension : + boost::units::base_dimension<time_base_dimension,-7> +{ }; + +} // namespace units + +} // namespace boost + +#if BOOST_UNITS_HAS_BOOST_TYPEOF + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_REGISTER_TYPE(boost::units::time_base_dimension) + +#endif + +namespace boost { + +namespace units { + +/// dimension of time (T) +typedef time_base_dimension::dimension_type time_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_TIME_BASE_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/torque.hpp b/boost/units/physical_dimensions/torque.hpp new file mode 100644 index 0000000000..61c41a139f --- /dev/null +++ b/boost/units/physical_dimensions/torque.hpp @@ -0,0 +1,34 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_TORQUE_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_TORQUE_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/mass.hpp> +#include <boost/units/physical_dimensions/plane_angle.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for torque : L^2 M T^-2 QP^-1 +typedef derived_dimension<length_base_dimension,2, + mass_base_dimension,1, + time_base_dimension,-2, + plane_angle_base_dimension,-1>::type torque_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_TORQUE_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/velocity.hpp b/boost/units/physical_dimensions/velocity.hpp new file mode 100644 index 0000000000..eb3d41215a --- /dev/null +++ b/boost/units/physical_dimensions/velocity.hpp @@ -0,0 +1,30 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_VELOCITY_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_VELOCITY_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> +#include <boost/units/physical_dimensions/time.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for velocity : L T^-1 +typedef derived_dimension<length_base_dimension,1, + time_base_dimension,-1>::type velocity_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_VELOCITY_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/volume.hpp b/boost/units/physical_dimensions/volume.hpp new file mode 100644 index 0000000000..a2cdd88f25 --- /dev/null +++ b/boost/units/physical_dimensions/volume.hpp @@ -0,0 +1,28 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_VOLUME_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_VOLUME_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for volume : l^3 +typedef derived_dimension<length_base_dimension,3>::type volume_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_VOLUME_DERIVED_DIMENSION_HPP diff --git a/boost/units/physical_dimensions/wavenumber.hpp b/boost/units/physical_dimensions/wavenumber.hpp new file mode 100644 index 0000000000..abaf0acc5d --- /dev/null +++ b/boost/units/physical_dimensions/wavenumber.hpp @@ -0,0 +1,28 @@ +// Boost.Units - A C++ library for zero-overhead dimensional analysis and +// unit/quantity manipulation and conversion +// +// Copyright (C) 2003-2008 Matthias Christian Schabel +// Copyright (C) 2008 Steven Watanabe +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_UNITS_WAVENUMBER_DERIVED_DIMENSION_HPP +#define BOOST_UNITS_WAVENUMBER_DERIVED_DIMENSION_HPP + +#include <boost/units/derived_dimension.hpp> +#include <boost/units/physical_dimensions/length.hpp> + +namespace boost { + +namespace units { + +/// derived dimension for wavenumber : L^-1 +typedef derived_dimension<length_base_dimension,-1>::type wavenumber_dimension; + +} // namespace units + +} // namespace boost + +#endif // BOOST_UNITS_WAVENUMBER_DERIVED_DIMENSION_HPP |