A functional array class with elements computed on demand.
Project description
Functional Arrays
The funcarray package contains a class to construct arrays that generate values on demand, with optimised functions to iterate over it and perform specific operations.
Free software: GNU General Public License v3
Installation
Install using:
pip install funcarray
Usage
Functional arrays are instantiated by passing it a shape and a function that must return each element of the matrix given the index of the element and a set of arguments. The given function must therefore obey the format fun(*index, *args).
from funcarray import array
from numba import jit
import numpy as np
from numpy.random import default_rng
@jit(nopython=True)
def fun(i, j, x, y):
return x[i]*y[j]
N = 10000
rnd = default_rng()
x = rnd.random(N, dtype='f8')
y = rnd.random(N, dtype='f8')
a = array((N, N), fun, x, y)
# Compute sum over all elements
print(a.sum())
Development
Please work on a feature branch and create a pull request to the development branch. If necessary to merge manually do so without fast forward:
git merge --no-ff myfeature
To build a development environment run:
python3 -m venv env
source env/bin/activate
pip install -e '.[dev]'
For testing:
pytest --cov
Credits
This is a project by Leonardo Niccolò Ialongo .
History
0.0.1 (2022-10-03)
First proof of concept release!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for FuncArray-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6d4e7a001d5a548071bd0079602700ab55422a8ad3a4255c5f485cd25c6e500 |
|
MD5 | 8fdbefd41e7b83d7c7d19f112bcaef86 |
|
BLAKE2b-256 | 8b2dd771f1329cf7752d2a3a0313b2be7e3572cf3072169f5ee99db438b5bf5f |