ForwardDiff - slowed down by Real vs. Float operations

I can be completely lost as I do not use this kinda of optimization, but

using JuMP, Ipopt

function myfun(x :: T, y :: T) where {T <: Real}
    X = zeros(T, 10,10);
    X .+= x;
    res1 = x^2 - sqrt(y);
    res2 = x + log(y);
    return maximum(abs.([res1;res2]));
end
model = Model(Ipopt.Optimizer)
JuMP.register(model, :myfun, 2, myfun, autodiff=true)

@variable(model, x >= 0.0, start=2.0)
@variable(model, y >= 0.0, start=0.7)
@NLobjective(model, Min, myfun(x,y))
optimize!(model)

gives

ERROR: LoadError: DomainError with -9.995576033539066e-9:
sqrt will only return a complex result if called with a complex argument. Try sqrt(Complex(x))

and my tentative of fixing it (that may not be correct)

    res1 = x^2 - sqrt(abs(y));
    res2 = x + log(abs(y));

Seems to work.