conversion_factor.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. // Boost.Units - A C++ library for zero-overhead dimensional analysis and
  2. // unit/quantity manipulation and conversion
  3. //
  4. // Copyright (C) 2003-2008 Matthias Christian Schabel
  5. // Copyright (C) 2008 Steven Watanabe
  6. //
  7. // Distributed under the Boost Software License, Version 1.0. (See
  8. // accompanying file LICENSE_1_0.txt or copy at
  9. // http://www.boost.org/LICENSE_1_0.txt)
  10. /**
  11. \file
  12. \brief conversion_factor.cpp
  13. \details An example of using conversion_factor.
  14. Output:
  15. @verbatim
  16. //[conversion_factor_output
  17. 1e-005
  18. 100
  19. 1e-005
  20. 100
  21. 0.01
  22. //]
  23. @endverbatim
  24. **/
  25. #include <iostream>
  26. #include <boost/units/cmath.hpp>
  27. #include <boost/units/io.hpp>
  28. #include <boost/units/quantity.hpp>
  29. #include <boost/units/systems/cgs/acceleration.hpp>
  30. #include <boost/units/systems/si/acceleration.hpp>
  31. #include <boost/units/systems/si/force.hpp>
  32. #include <boost/units/systems/cgs/force.hpp>
  33. #include <boost/units/systems/si/mass.hpp>
  34. #include <boost/units/systems/cgs/mass.hpp>
  35. #include <boost/units/systems/si/momentum.hpp>
  36. #include <boost/units/systems/cgs/momentum.hpp>
  37. int main()
  38. {
  39. using namespace boost;
  40. using namespace boost::units;
  41. //[conversion_factor_snippet_1
  42. double dyne_to_newton =
  43. conversion_factor(cgs::dyne,si::newton);
  44. std::cout << dyne_to_newton << std::endl;
  45. double force_over_mass_conversion =
  46. conversion_factor(si::newton/si::kilogram,cgs::dyne/cgs::gram);
  47. std::cout << force_over_mass_conversion << std::endl;
  48. double momentum_conversion =
  49. conversion_factor(cgs::momentum(),si::momentum());
  50. std::cout << momentum_conversion << std::endl;
  51. double momentum_over_mass_conversion =
  52. conversion_factor(si::momentum()/si::mass(),cgs::momentum()/cgs::gram);
  53. std::cout << momentum_over_mass_conversion << std::endl;
  54. double acceleration_conversion =
  55. conversion_factor(cgs::gal,si::meter_per_second_squared);
  56. std::cout << acceleration_conversion << std::endl;
  57. //]
  58. return 0;
  59. }