Eigen::NumTraits
template<typename T>
class Eigen::NumTraits< T >
Содержит информацию о различных числовых (т.е. скалярных) типах, разрешенных в Eigen.
- Параметры шаблона
-
T числовой тип
Этот класс хранит перечисления, определения типов и статические методы, предоставляющие информацию о числовом типе.
Предоставленные данные состоят из:
- Определение типа
Real, дающий тип "вещественной части" T. Если T уже вещественный, тоReal— это просто определение типа T. Если T являетсяstd::complex<U>, тоReal— это определение типа U. - Определение типа
NonInteger, дающий тип, который следует использовать для операций, порождающих нецелые значения, такие как частные, квадратные корни и т.д. Если T — тип с плавающей точкой, то это определение типа просто даёт T. Однако обратите внимание, что многие функции Eigen, такие как internal::sqrt, просто отказываются принимать целые числа. Вне нескольких случаев Eigen не выполняет автоматическое повышение типа. Таким образом, это определение типа предназначено только в качестве вспомогательного средства для кода, которому необходимо явно повышать типы. - Определение типа
Literal, дающий тип, который следует использовать для числовых литералов, таких как "2" или "0.5". Например, дляstd::complex<U>, Literal определяется какU. Конечно, этот тип должен быть полностью совместим с T. В случае сомнений просто используйте T. - Определение типа Nested, дающее тип, который следует использовать для вложения значения в дерево выражений. Если вы не знаете, что это значит, просто используйте T.
- Значение перечисления IsComplex. Оно равно 1, если T — тип
std::complexи 0 в противном случае. - Значение перечисления IsInteger. Оно равно
1если T — целочисленный тип, такой какint, и0в противном случае. - Значения перечисления ReadCost, AddCost и MulCost, представляющие приблизительную оценку количества циклов ЦП, необходимых для команд перемещения, сложения и умножения соответственно, предполагая, что данные уже хранятся в регистрах ЦП. Оставайтесь неясными. Нет необходимости делать архитектурно-специфические вещи. Если вы не знаете, что это значит, просто используйте
Eigen::HugeCost. - Значение перечисления IsSigned. Оно равно
1если T — знаковый тип и 0, если T — беззнаковый. - Значение перечисления RequireInitialization. Оно равно
1если конструктор числового типа T должен быть вызван, и 0, если его можно не вызывать. По умолчанию 0, если T — арифметический тип, и 1 в противном случае. - Функция epsilon(), которая, в отличие от std::numeric_limits::epsilon(), возвращает Real вместо T.
- Функция dummy_precision(), возвращающая слабое значение epsilon. Она в основном используется в качестве значения по умолчанию для операторов нестрогого сравнения.
- Функции highest() и lowest(), возвращающие соответственно наибольшие и наименьшие возможные значения.
- Функция digits(), возвращающая количество разрядных цифр (цифр без знака для целых чисел, мантиссы для чисел с плавающей точкой). Это аналог std::numeric_limits<T>::digits, который используется в качестве реализации по умолчанию при специализации.
- Функция digits10(), возвращающая количество десятичных цифр, которые могут быть представлены без изменений. Это аналог std::numeric_limits<T>::digits10, который используется в качестве реализации по умолчанию при специализации.
- Функции min_exponent() и max_exponent(), возвращающие соответственно наибольшее и наименьшее возможные значения, такие, что основание, возведенное в степень exponent-1, является нормализованным числом с плавающей точкой. Эти функции эквивалентны std::numeric_limits<T>::min_exponent/ std::numeric_limits<T>::max_exponent.
- Функция infinity(), возвращающая представление положительной бесконечности, если доступно.
- Функция quiet_NaN, возвращающая несигнализирующее "не число", если доступно.
Наследуется от Eigen::GenericNumTraits< T >.
Документация для этого класса была сгенерирована из следующего файла:
© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/structEigen_1_1NumTraits.html