### 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::is_inf(Math::atanh((T)-1.0)));
	CHECK(Math::atanh((T)-1.0) < (T)0.0);
	CHECK(Math::atanh((T)-0.1) == doctest::Approx((T)-0.1003353477));
	CHECK(Math::atanh((T)0.1) == doctest::Approx((T)0.1003353477));
	CHECK(Math::atanh((T)0.5) == doctest::Approx((T)0.5493061443));
	CHECK(Math::is_inf(Math::atanh((T)1.0)));
	CHECK(Math::atanh((T)1.0) > (T)0.0);
	CHECK(Math::is_inf(Math::atanh((T)1.5)));
	CHECK(Math::atanh((T)1.5) > (T)0.0);
	CHECK(Math::is_inf(Math::atanh((T)450.0)));
	CHECK(Math::atanh((T)450.0) > (T)0.0);
}
TEST_CASE_TEMPLATE("[Math] sinc/sincn/atan2", T, float, double) {
	CHECK(Math::sinc((T)-0.1) == doctest::Approx((T)0.9983341665));
	CHECK(Math::sinc((T)0.1) == doctest::Approx((T)0.9983341665));
	CHECK(Math::sinc((T)0.5) == doctest::Approx((T)0.9588510772));
	CHECK(Math::sinc((T)1.0) == doctest::Approx((T)0.8414709848));
	CHECK(Math::sinc((T)1.5) == doctest::Approx((T)0.6649966577));
	CHECK(Math::sinc((T)450.0) == doctest::Approx((T)-0.0015184083));
	CHECK(Math::sincn((T)-0.1) == doctest::Approx((T)0.9836316431));
	CHECK(Math::sincn((T)0.1) == doctest::Approx((T)0.9836316431));
	CHECK(Math::sincn((T)0.5) == doctest::Approx((T)0.6366197724));
	CHECK(Math::sincn((T)1.0) == doctest::Approx((T)0.0));
	CHECK(Math::sincn((T)1.5) == doctest::Approx((T)-0.2122065908));
	CHECK(Math::sincn((T)450.0) == doctest::Approx((T)0.0));
	CHECK(Math::atan2((T)-0.1, (T)0.5) == doctest::Approx((T)-0.1973955598));
	CHECK(Math::atan2((T)0.1, (T)-0.5) == doctest::Approx((T)2.9441970937));
	CHECK(Math::atan2((T)0.5, (T)1.5) == doctest::Approx((T)0.3217505544));
	CHECK(Math::atan2((T)1.0, (T)2.5) == doctest::Approx((T)0.3805063771));
	CHECK(Math::atan2((T)1.5, (T)1.0) == doctest::Approx((T)0.9827937232));