Plugging y=0 it follows that f(f(x))=x, hence the function is bijective. Plugging (x,y)=(0,1) it follows that f(f(0)+f(1))=1=f(f(1)) using injectivity to obtain f(0)=0. Now, taking f from both sides and using f(f(x))=x to obtain f(x)+yf(y)=f(x+∣y∣2). Plugging x=0 yields yf(y)=f(∣y∣2). Hence, f(x)+f(z)=f(x+z) where z=∣y∣2 is non-negative real number. Hence, plugging (x,y)=(0,f(y)) gives yf(y)=f(∣f(y)∣2)=f(∣y∣2). Again, using injectivity, we have ∣f(y)∣=∣y∣. Let x,z>0 be real numbers then
x+z=∣f(x)∣+∣f(z)∣≥∣f(x)+f(z)∣=∣f(x+z)∣=x+z
Hence, the equality case of the triangle inequality occurs. Thus f(z)f(x)>0. Let C=f(1) it follows that f(x)=Cx for all x>0. Now, by yf(y)=f(∣y∣2)=∣y∣f(∣y∣)=C∣y∣2. We find that f(y)=Cy∣y∣2=Cyˉ.
Plugging it into the original functional equation, we obtain,
f(f(x)+yf(y))=C⋅Cxˉ+Cyyˉ=∣C∣2(x+∣y∣2)=x+∣y∣2
Thus, ∣C∣=1.