mirror of
https://github.com/ml-explore/mlx.git
synced 2025-09-01 12:49:44 +08:00
implemented isposinf and isneginf in one PR (#470)
* ran precommit * updated docs
This commit is contained in:
@@ -1880,6 +1880,52 @@ TEST_CASE("test scatter") {
|
||||
CHECK(array_equal(out, array({1, 0, 1, 0}, {2, 2})).item<bool>());
|
||||
}
|
||||
|
||||
TEST_CASE("test is positive infinity") {
|
||||
array x(1.0f);
|
||||
CHECK_FALSE(isposinf(x).item<bool>());
|
||||
|
||||
array y(std::numeric_limits<float>::infinity());
|
||||
CHECK(isposinf(y).item<bool>());
|
||||
|
||||
array z = identity(7);
|
||||
CHECK_FALSE(all(isposinf(z)).item<bool>());
|
||||
|
||||
array w = array({1.0f, std::numeric_limits<float>::infinity(), 2.0f});
|
||||
CHECK_FALSE(all(isposinf(w)).item<bool>());
|
||||
|
||||
array a(1.0f, bfloat16);
|
||||
CHECK_FALSE(isposinf(a).item<bool>());
|
||||
|
||||
array b(std::numeric_limits<float>::infinity(), float16);
|
||||
CHECK(isposinf(b).item<bool>());
|
||||
|
||||
array c(std::numeric_limits<float>::infinity(), bfloat16);
|
||||
CHECK(isposinf(c).item<bool>());
|
||||
}
|
||||
|
||||
TEST_CASE("test is negative infinity") {
|
||||
array x(1.0f);
|
||||
CHECK_FALSE(isneginf(x).item<bool>());
|
||||
|
||||
array y(-std::numeric_limits<float>::infinity());
|
||||
CHECK(isneginf(y).item<bool>());
|
||||
|
||||
array z = identity(7);
|
||||
CHECK_FALSE(all(isneginf(z)).item<bool>());
|
||||
|
||||
array w = array({1.0f, -std::numeric_limits<float>::infinity(), 2.0f});
|
||||
CHECK_FALSE(all(isneginf(w)).item<bool>());
|
||||
|
||||
array a(1.0f, bfloat16);
|
||||
CHECK_FALSE(isneginf(a).item<bool>());
|
||||
|
||||
array b(-std::numeric_limits<float>::infinity(), float16);
|
||||
CHECK(isneginf(b).item<bool>());
|
||||
|
||||
array c(-std::numeric_limits<float>::infinity(), bfloat16);
|
||||
CHECK(isneginf(c).item<bool>());
|
||||
}
|
||||
|
||||
TEST_CASE("test scatter types") {
|
||||
for (auto t : {bool_, uint8, uint16, int8, int16}) {
|
||||
auto in = zeros({4, 4}, t);
|
||||
|
Reference in New Issue
Block a user