#include <kv/constants.hpp>
#include <kv/interval.hpp>
#include <kv/rdouble.hpp>
#include <kv/dd.hpp>
#include <kv/rdd.hpp>

int main()
{
	std::cout.precision(17);

	std::cout << kv::constants<double>::pi() << "\n";
	std::cout << kv::constants<double>::e() << "\n";
	std::cout << kv::constants<double>::ln2() << "\n";
	std::cout << kv::constants<double>::str("1.18") << "\n";

	std::cout << kv::constants< kv::interval<double> >::pi() << "\n";
	std::cout << kv::constants< kv::interval<double> >::e() << "\n";
	std::cout << kv::constants< kv::interval<double> >::ln2() << "\n";
	std::cout << kv::constants< kv::interval<double> >::str("1.18") << "\n";
	std::cout << kv::constants< kv::interval<double> >::str("1.18", "1.19") << "\n";

	std::cout.precision(34);

	std::cout << kv::constants<kv::dd>::pi() << "\n";
	std::cout << kv::constants<kv::dd>::e() << "\n";
	std::cout << kv::constants<kv::dd>::ln2() << "\n";
	std::cout << kv::constants<kv::dd>::str("1.18") << "\n";

	std::cout << kv::constants< kv::interval<kv::dd> >::pi() << "\n";
	std::cout << kv::constants< kv::interval<kv::dd> >::e() << "\n";
	std::cout << kv::constants< kv::interval<kv::dd> >::ln2() << "\n";
	std::cout << kv::constants< kv::interval<kv::dd> >::str("1.18") << "\n";
	std::cout << kv::constants< kv::interval<kv::dd> >::str("1.18", "1.19") << "\n";
}
