Skip to main content

MLX array supercharged

Project description

MLX eXtended

mlx.core.array supercharged.

Usage

Installation:

  • pip install mlxx
  • uv add mlxx

After importing mlx, do this

import mlx.core as mx
# this will monkey patch `mlx.core.array` class with more convenient methods
import mlxx as _ 

Then you can use some methods like allclose

a = mx.array([1, 2, 3], dtype=mx.float32)
b = mx.array([1, 2, 3], dtype=mx.float32)
print(a.allclose(b))
print(a.inner(b))
c = mx.array([4,5,6])
print(a.add(c))

Available Convenient Methods

Comparison Operations

  • allclose(b, rtol=1e-05, atol=1e-08, equal_nan=False): Check if arrays are close within tolerance
  • isclose(b, rtol=1e-05, atol=1e-08, equal_nan=False): Element-wise comparison within tolerance
  • array_equal(b, equal_nan=False): Check if arrays are exactly equal

Logical Operations

  • logical_and(b): Element-wise logical AND
  • logical_or(b): Element-wise logical OR
  • logical_not(): Element-wise logical NOT

Binary Operations

  • add(other): Element-wise addition
  • divide(other) (alias: div): Element-wise division
  • multiply(other) (alias: mul): Element-wise multiplication
  • logaddexp(other): Element-wise log(exp(a) + exp(b))
  • binary_maximum(b): Element-wise maximum of self and b.
  • binary_minimum(b): Element-wise minimum of self and b.
  • power(exponent): Element-wise power
  • matmul(b): Matrix multiplication
  • addmm(mat1, mat2, beta=1.0, alpha=1.0): Computes beta * self + alpha * (mat1 @ mat2).
  • inner(b): Inner product

Trigonometric Functions

  • arccos(): Inverse cosine
  • arccosh(): Inverse hyperbolic cosine
  • arcsin(): Inverse sine
  • arcsinh(): Inverse hyperbolic sine
  • arctan(): Inverse tangent
  • arctanh(): Inverse hyperbolic tangent
  • cosh(): Hyperbolic cosine
  • sinh(): Hyperbolic sine
  • tan(): Tangent
  • tanh(): Hyperbolic tangent

Reduction Operations

  • nansum(axis=None, keepdims=False, dtype=None): Sum of array elements, treating NaNs as zero.

Mathematical Functions

  • ceil(): Ceiling function
  • floor(): Floor function
  • degrees(): Convert radians to degrees
  • radians(): Convert degrees to radians
  • erf(): Error function
  • erfinv(): Inverse error function
  • expm1(): exp(x) - 1
  • sigmoid(): Sigmoid function
  • sign(): Sign function
  • norm(): Calculate norms, see mlx.core.linalg.norm

Complex Number Operations

  • imag(): Imaginary part (returns 0 for real arrays)
  • real(): Real part (returns self for real arrays)

Infinity and NaN Checks

  • isfinite(): Check for finite values
  • isinf(): Check for infinite values
  • isnan(): Check for NaN values
  • isneginf(): Check for negative infinity
  • isposinf(): Check for positive infinity

Other Operations

  • negative(): Element-wise negation
  • stop_gradient(): Stop gradient computation
  • permute(*axes): Permute axes (alias for transpose)
  • t(): Transpose (alias for transpose)

Note: All methods support an optional stream parameter for controlling computation streams where applicable.

Contributing

Feel free to make PRs!

Setup Dev Env

  1. Run uv sync
  2. Run pre-commit install, or uv run pre-commit install if your shell doesn't autodetect venv

LICENSE

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mlxx-0.2.0.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mlxx-0.2.0-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file mlxx-0.2.0.tar.gz.

File metadata

  • Download URL: mlxx-0.2.0.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for mlxx-0.2.0.tar.gz
Algorithm Hash digest
SHA256 29d8929ceafcfd9d9a1892e4dff70609a6457540f5f0dbee697e25f0e9555d80
MD5 e596d246d7f05e49b709f68b2b9666c4
BLAKE2b-256 dc1b435ba570138c035fb9dea48dbeefadc174be295cb96e720c2ed2a8d0bef7

See more details on using hashes here.

File details

Details for the file mlxx-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: mlxx-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for mlxx-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 421e19c4b694692e8c289e60220bcd7ea3fa4b84996d92b7f67441babc3646a7
MD5 50fe83219fd19d17f9386c032e799d96
BLAKE2b-256 e886bc014cc8b61381fbadb4706953b017b4862870755294109cc3e2bdad3fd5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page