Skip to main content

General-purpose matrices for the layman

Project description

MatrixLib

General-purpose matrices for the layman.

Implements a family of general-purpose matrix types, with comprehensive type-checking capabilities, and seamless integration with core Python services.

>>> from collections.abc import Iterable
>>> from math import fsum, sqrt, isclose
>>> from typing import Literal as L
>>>
>>> from matrixlib import ROW, RealMatrix, IntegerMatrix
>>>
>>> def norm(a: Iterable[float]) -> float:
...     return sqrt(fsum(map(lambda x: x * x, a)))
...
>>> a = IntegerMatrix[L[3], L[3], int](
...     (
...         1, 2, 3,
...         4, 5, 6,
...         7, 8, 9,
...     ),
...     shape=(3, 3),
... )
>>>
>>> b = RealMatrix[L[3], L[3], float](
...     (
...         val
...         for row in a.slices(by=ROW)
...         for val in row / norm(row)
...     ),
...     shape=a.shape,
... )
>>>
>>> print(b)
| 0.26726 0.53452 0.80178 |
| 0.45584 0.56980 0.68376 |
| 0.50257 0.57436 0.64616 |
(3 × 3)
>>>
>>> assert all(isclose(norm(row), 1) for row in b.slices(by=ROW))

Getting Started

This project is available through pip (requires Python 3.9 or later, 3.11 recommended):

pip install matrixlib

Warning: MatrixLib is currently in its infancy, and may see future changes that are not always backwards compatible.

The current iteration of this library is in beta. Further testing is being conducted at the moment.

Contributing

This project is currently maintained by Braedyn L. Feel free to report bugs or make a pull request through this repository.

License

Distributed under the MIT license. See the LICENSE file for more details.

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

matrixlib-0.3.2.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

matrixlib-0.3.2-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file matrixlib-0.3.2.tar.gz.

File metadata

  • Download URL: matrixlib-0.3.2.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for matrixlib-0.3.2.tar.gz
Algorithm Hash digest
SHA256 1bee1ffd045cd8b63731a007b7a79ebd377877a226cae91ccaad1b22fc94e2d8
MD5 64f13dd33507c0cc20d3ebaf6107b14a
BLAKE2b-256 07055eaa137efd421035e42179be037976a083a2e37685e21023de35c0fedee7

See more details on using hashes here.

File details

Details for the file matrixlib-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: matrixlib-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 16.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for matrixlib-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4d556f3898204ca1bdf70f0c9a678ca4df8f5820b396ba2c7c7b55e1f8275418
MD5 c63267d56c2213dd4c30fde90fdc949b
BLAKE2b-256 7c58832bf107193147d0617a4099c7d32235255399ace1a5a243feeca2d75bd1

See more details on using hashes here.

Supported by

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