In the first case, you have recursion in the outer constructor Log_Float(x, y).
In the second case, the inner constructor method takes precedence for the recursive call.
Without seeing the outer constructor code for the first case, it’s impossible to say what exactly is wrong.