Skip to content

Adding more functionality in Array and iop (to match Array API) #4

Open

Description

@nicola-bastianello

there are several dunder methods and functions in the interop layer that need to be implemented to match the Array API

when I have time I will populate this issue with a list, divided by priority

Activity

  1. Simpag commented on May 24, 2026

    @Simpag
    Collaborator

    If all frameworks implement the specific method, just pass through the dunders, dont go through iop

  2. changed the title [-]Matching Array API[/-] [+]Adding more functionality in Array and iop (to match Array API)[/+] on May 27, 2026
  3. nicola-bastianello commented on May 27, 2026

    @nicola-bastianello
    MemberAuthor

    done in #7

    for Array:

    • arithmetic operations: __pos__, __floordiv__, __mod__
    • bitwise operations: __invert__, __or__; low priority: __xor__, __lshift__, __rshift__
    • in-place: __ifloordiv__, __ipow__, __imod__, __imatmul__, __iand__, __ior__; low priority: __ixor__, __ilshift__, __irshift__
    • reflected: __rfloordiv__, __rpow__, __rmod__, __ror__; low priority: __rxor__, __rlshift__, __rrshift__
    • attributes: Array.dtype, mT (matrix transpose)
    • methods: __bool__, __index__, __int__
  4. nicola-bastianello commented on May 27, 2026

    @nicola-bastianello
    MemberAuthor

    for iop:

    • constants: newaxis
    • creation functions: meshgrid; low priority: full, full_like, tril, triu
    • data type functions (all low priority): can_cast, finfo, iinfo, isdtype, result_type
    • element-wise functions: ceil, clip, floor, log, log10, logical_and, logical_not, logical_or, logical_xor, minimum, reciprocal, round; low priority/maybe not: acos, acosh, asin, asinh, atan, atan2, atanh, conj, copysign, cos, cosh, expm1, hypot, imag, log1p, log2, nextafter, real, signbit, sin, sinh, square, tan, tanh, trunc
    • indexing functions: take, take_along_axis
    • inspection: maybe: default_device, default_dtypes, devices, dtypes
    • linear algebra: tensordot
    • manipulation functions: concat, repeat, tile, unstack; low priority: broadcast_arrays, broadcast_shapes, broadcast_to, flip, moveaxis, permute_dims, roll
    • searching functions: count_nonzero, nonzero; low priority: searchsorted
    • set functions: isin; low priority: unique_all, unique_counts, unique_inverse, unique_values
    • sorting: argsort, sort
    • statistical: prod, std; low priority: cumulative_prod, cumulative_sum, var
    • diff

    done

    • creation: arange, empty, empty_like, eye, linspace
    • element-wise functions: positive, remainder, bitwise_left_shift, bitwise_invert, bitwise_or, bitwise_right_shift, bitwise_xor, floor_divide, exp, logaddexp
    • linear algebra: matrix_transpose
    • constants: inf, nan, e, pi
    • element-wise functions: isfinite, isinf, isnan
    • searching: where
  5. nicola-bastianello commented on Jun 8, 2026

    @nicola-bastianello
    MemberAuthor

    for iop, linear algebra extension:

    • high priority: eig, eigh, eigvals, matrix_norm
    • low priority: cholesky, cross, det, inv, matrix_power, matrix_rank, outer, pinv, qr, slogdet, svd, svdvals, trace

    done

    • eigvalsh, solve
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions