В Джулии, у меня есть функция, как это:типа стабильных функции Джулии для общего распределения при работе с точечными входами плавающих
function f(x::Float64, c::Float64)
if x <= 0
return(0.0)
elseif x <= c
return(x/c)
else
return(1.0)
end
end
Функция типа стабильные и так будет работать быстро. Тем не менее, я хочу включить функцию в пакет для общего распространения, в том числе для 32-разрядных машин. Что здесь лучше всего? Должен ли я писать другую версию функции для Float32
(это может раздражать, если у меня много таких функций)? Могу ли я использовать FloatingPoint
для типов ввода? Если я это сделаю, как бы обеспечить, чтобы функция оставалась стабильной по типу, поскольку 0.0
и 1.0
: Float64
, а x/c
может быть Float32
или Float16
? Возможно, я мог бы использовать параметры типа, например. T<:FloatingPoint
, а затем введите x::T
и c::T
, а затем используйте 0.0::T
и 1.0::T
в теле функции, чтобы убедиться, что она устойчива к типу?
Любое руководство здесь будет оценено.
32 битных машины поддерживают 'Float64' штраф. Разделение 32/64 бит применяется только к целым числам. –
@MrAlpha Спасибо, это полезная информация, –