Skip to content

Discussing some choices made so far #7

Open
@cjdoris

Description

@cjdoris

Thanks for starting this package. I've been getting used to it before adding my stuff.

Here are a few things I've noticed in the implementation so far that I think need to be justified or addressed:

  1. Is NotANumber really necessary? Why not just raise an exception?
  2. I don't think we should have constructors RealInfinity(signbit::Bool) and ComplexInfinity(angle::Real): the convention in Julia Base is that for a numeric type T that T(x::Number) is the same as convert(T, x). There should be constructors private to the module called realinffromsignbit or something.
  3. Why is there checked arithmetic when this is for integers, and infinity is not an integer?
  4. Why is fld(x, Infinity()) == -1 when x<0? I am guessing that you are defining fld(x, Infinity()) as the limit as y gets big of fld(x, y), but an equally good definition is simply that it is floor(x / Infinity()) == 0. The latter definition is the one in the Julia documentation, and arguably the one people would expect.
  5. Given ComplexInfinity is not ordered, why are mod, div, fld, isless, <, min, etc. defined? They aren't defined for Complex.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions