### Godot version

4.1.rc3

### System information

Linux 5.10.181-2-MANJARO

### Issue description

`sign(NAN)` and `signf(NAN)` both return `1`. But this doesn't seem right, as `NAN > 0` is false (as all other `NAN` comparison are). These should really return `NAN` not `1`.

### Steps to reproduce

run 
```gdscript
print(sign(NAN), " ", signf(NAN))
```
output is: 
`1 1`

### Minimal reproduction project

N/A
CHECK(Math::atan2((T)450.0, (T)1.0) == doctest::Approx((T)1.5685741082));
}
TEST_CASE_TEMPLATE("[Math] pow/log/log2/exp/sqrt", T, float, double) {
	CHECK(Math::pow((T)-0.1, (T)2.0) == doctest::Approx((T)0.01));
	CHECK(Math::pow((T)0.1, (T)2.5) == doctest::Approx((T)0.0031622777));
	CHECK(Math::pow((T)0.5, (T)0.5) == doctest::Approx((T)0.7071067812));
	CHECK(Math::pow((T)1.0, (T)1.0) == doctest::Approx((T)1.0));
	CHECK(Math::pow((T)1.5, (T)-1.0) == doctest::Approx((T)0.6666666667));
	CHECK(Math::pow((T)450.0, (T)-2.0) == doctest::Approx((T)0.0000049383));
	CHECK(Math::pow((T)450.0, (T)0.0) == doctest::Approx((T)1.0));
	CHECK(Math::is_nan(Math::log((T)-0.1)));
	CHECK(Math::log((T)0.1) == doctest::Approx((T)-2.302585093));
	CHECK(Math::log((T)0.5) == doctest::Approx((T)-0.6931471806));
	CHECK(Math::log((T)1.0) == doctest::Approx((T)0.0));
	CHECK(Math::log((T)1.5) == doctest::Approx((T)0.4054651081));
	CHECK(Math::log((T)450.0) == doctest::Approx((T)6.1092475828));
	CHECK(Math::is_nan(Math::log2((T)-0.1)));
	CHECK(Math::log2((T)0.1) == doctest::Approx((T)-3.3219280949));
	CHECK(Math::log2((T)0.5) == doctest::Approx((T)-1.0));
	CHECK(Math::log2((T)1.0) == doctest::Approx((T)0.0));
	CHECK(Math::log2((T)1.5) == doctest::Approx((T)0.5849625007));
	CHECK(Math::log2((T)450.0) == doctest::Approx((T)8.8137811912));
	CHECK(Math::exp((T)-0.1) == doctest::Approx((T)0.904837418));
	CHECK(Math::exp((T)0.1) == doctest::Approx((T)1.1051709181));
	CHECK(Math::exp((T)0.5) == doctest::Approx((T)1.6487212707));
	CHECK(Math::exp((T)1.0) == doctest::Approx((T)2.7182818285));
	CHECK(Math::exp((T)1.5) == doctest::Approx((T)4.4816890703));
	CHECK(Math::is_nan(Math::sqrt((T)-0.1)));
	CHECK(Math::sqrt((T)0.1) == doctest::Approx((T)0.316228));
	CHECK(Math::sqrt((T)0.5) == doctest::Approx((T)0.707107));