std/lenientops
Исходный код РедактироватьЭтот модуль предлагает реализации общих бинарных операций, таких как +, -, *, /, и операций сравнения, которые работают с смешанными операндами с плавающей запятой/целыми числами. Все операции преобразуют целочисленный операнд в тип операнда с плавающей запятой. Для числовых выражений возвращаемый тип всегда является типом числа с плавающей запятой, участвующего в выражении, т. е. нет автоматического преобразования с float32 на float64.
Примечание: В общем случае автоматическое преобразование из целого числа в число с плавающей запятой приводит к потере информации, поэтому эти операторы находятся в отдельном модуле. Используйте с осторожностью.
Что касается бинарного сравнения, этот модуль предоставляет только операторы неравенства. Оператор равенства == опущен, поскольку в зависимости от конкретного случая использования может быть предпочтительнее либо приведение к числу с плавающей запятой, либо округление до целого числа, и пользователи должны явно сделать выбор.
Процедуры
func `*`[I: SomeInteger; F: SomeFloat](f: F; i: I): F {.inline.}- Исходный код Редактировать
func `*`[I: SomeInteger; F: SomeFloat](i: I; f: F): F {.inline.}- Исходный код Редактировать
func `+`[I: SomeInteger; F: SomeFloat](f: F; i: I): F {.inline.}- Исходный код Редактировать
func `+`[I: SomeInteger; F: SomeFloat](i: I; f: F): F {.inline.}- Исходный код Редактировать
func `-`[I: SomeInteger; F: SomeFloat](f: F; i: I): F {.inline.}- Исходный код Редактировать
func `-`[I: SomeInteger; F: SomeFloat](i: I; f: F): F {.inline.}- Исходный код Редактировать
func `/`[I: SomeInteger; F: SomeFloat](f: F; i: I): F {.inline.}- Исходный код Редактировать
func `/`[I: SomeInteger; F: SomeFloat](i: I; f: F): F {.inline.}- Исходный код Редактировать
func `<`[I: SomeInteger; F: SomeFloat](f: F; i: I): bool {.inline.}- Исходный код Редактировать
func `<`[I: SomeInteger; F: SomeFloat](i: I; f: F): bool {.inline.}- Исходный код Редактировать
func `<=`[I: SomeInteger; F: SomeFloat](f: F; i: I): bool {.inline.}- Исходный код Редактировать
func `<=`[I: SomeInteger; F: SomeFloat](i: I; f: F): bool {.inline.}- Исходный код Редактировать
© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/lenientops.html