#include <iostream>
#include <limits>

int main()
{
	std::cout << "float, double, long double" << std::endl;

	std::cout << "sizeof = "
	          << sizeof(      float) << ", "
	          << sizeof(     double) << ", "
	          << sizeof(long double) << std::endl;

	std::cout << "digits = "
	          << std::numeric_limits<      float>::digits << ", "
	          << std::numeric_limits<     double>::digits << ", "
	          << std::numeric_limits<long double>::digits << std::endl;

	std::cout << "digits10 = "
	          << std::numeric_limits<      float>::digits10 << ", "
	          << std::numeric_limits<     double>::digits10 << ", "
	          << std::numeric_limits<long double>::digits10 << std::endl;

	std::cout << "max_digits10 = "
	          << std::numeric_limits<      float>::max_digits10 << ", "
	          << std::numeric_limits<     double>::max_digits10 << ", "
	          << std::numeric_limits<long double>::max_digits10 << std::endl;

	std::cout << "min_exponent10 = "
	          << std::numeric_limits<      float>::min_exponent10 << ", "
	          << std::numeric_limits<     double>::min_exponent10 << ", "
	          << std::numeric_limits<long double>::min_exponent10 << std::endl;

	std::cout << "max_exponent10 = "
	          << std::numeric_limits<      float>::max_exponent10 << ", "
	          << std::numeric_limits<     double>::max_exponent10 << ", "
	          << std::numeric_limits<long double>::max_exponent10 << std::endl;

	std::cout << "epsilon = "
	          << std::numeric_limits<      float>::epsilon() << ", "
	          << std::numeric_limits<     double>::epsilon() << ", "
	          << std::numeric_limits<long double>::epsilon() << std::endl;

	std::cout << "min = "
	          << std::numeric_limits<      float>::min() << ", "
	          << std::numeric_limits<     double>::min() << ", "
	          << std::numeric_limits<long double>::min() << std::endl;

	std::cout << "lowest = "
	          << std::numeric_limits<      float>::lowest() << ", "
	          << std::numeric_limits<     double>::lowest() << ", "
	          << std::numeric_limits<long double>::lowest() << std::endl;

	std::cout << "max = "
	          << std::numeric_limits<      float>::max() << ", "
	          << std::numeric_limits<     double>::max() << ", "
	          << std::numeric_limits<long double>::max() << std::endl;
}
