How do I get the infinity corresponding to a type? Is there an analog of `zero(T)`

? Something like:

```
inf(Float16)
```

Here is how I would define it myself:

```
function inf(::Type{T})::T where T
one(T) / zero(T)
end
```

Is there a better way?

How do I get the infinity corresponding to a type? Is there an analog of `zero(T)`

? Something like:

```
inf(Float16)
```

Here is how I would define it myself:

```
function inf(::Type{T})::T where T
one(T) / zero(T)
end
```

Is there a better way?

For any subtype of `Number`

, `zero(T)`

is just a shorthand for `convert(T, 0)`

. See: https://github.com/JuliaLang/julia/blob/6a23e234e6cc5b4361b5f88614a9ed423dc2c12a/base/number.jl#L238

And for *any* type T, if you haven’t defined a constructor `T(x)`

, then it will also fall back to `convert(T, x)`

. See: https://github.com/JuliaLang/julia/blob/6a23e234e6cc5b4361b5f88614a9ed423dc2c12a/base/sysimg.jl#L114

Because `zero`

works for types that are not numbers. e.g. matrices. Any type supporting `+`

should also define a `zero`

function to return the additive identity.

In contrast, `Inf`

is pretty much only meaningful for numeric types, specifically floating-point types.