Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

cpp_rational

Boost , Chapter 1. Boost.Multiprecision , Rational Number Types

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

#включает </мультиплексия/cpp_int.hpp>

namespace boost{ namespace multiprecision{
typedef rational_adaptor<cpp_int_backend<> >    cpp_rational_backend;
typedef number<cpp_rational_backend>         cpp_rational;
}} // namespaces

Тип cpp_rational_backend используется через typedef boost::multiprecision::cpp_rational. Он обеспечивает рациональный тип чисел, который является заменой для родных типов чисел C++, но с неограниченной точностью.

Как и обычные преобразования из арифметических и струнных типов, экземпляры cpp_rational являются копируемыми и присваиваемыми из типа cpp_int.

Существует также два конструктора аргументов, которые принимают числитель и знаменатель: оба типа cpp_int.

Существуют также функции, не являющиеся членами:

cpp_int numerator(const cpp_rational&);
cpp_int denominator(const cpp_rational&);

который возвращает числитель и знаменатель числа.

Что вы должны знать при использовании этого типа:

  • По умолчанию построенные cpp_rationals имеют значение ноль.
  • Разделение на ноль приводит к выпадению std::overflow_error.
  • Конверсия из строки приводит к тому, что std::runtime_error выбрасывается, если строка не может быть интерпретирована как действительное рациональное число.
Example:
#include <boost/multiprecision/cpp_int.hpp>
#include <iostream>
int main()
{
   using namespace boost::multiprecision;
   cpp_rational v = 1;
   // Do some arithmetic:
   for(unsigned i = 1; i <= 1000; ++i)
      v *= i;
   v /= 10;
   std::cout << v << std::endl; // prints 1000! / 10
   std::cout << numerator(v) << std::endl;
   std::cout << denominator(v) << std::endl;
   cpp_rational w(2, 3);  // component wise constructor
   std::cout << w << std::endl; // prints 2/3
   return 0;
}

PrevUpHomeNext

Статья cpp_rational раздела Chapter 1. Boost.Multiprecision Rational Number Types может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Rational Number Types ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 19:08:23/0.0063838958740234/0