Skip to main content

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


Download files

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

Source Distribution

FuncArray-0.0.1.tar.gz (20.7 kB view hashes)

Uploaded Source

Built Distribution

FuncArray-0.0.1-py3-none-any.whl (4.2 kB view hashes)

Uploaded Python 3

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