Does copy() always create a valid copy of BigFloat?

I found a little faster way for bool^float than Speed up `x::Bool ^ y::Float64` and decided to tinker a bit with float^bool /

pow_fast_1(x::T, y::Bool) where T <: AbstractFloat = y ? x : T(1)
pow_fast_2(x::BigFloat, y::Bool) = y ? copy(x) : big(1.0)

I found that pow_fast_2 is faster than pow_fast_1 and native ^ for BigFloat, but copy() in pow_fast_2 is not really needed

what do you mean “make PR” ?