Skip to main content

Simple fixed-point solver implemented in JAX

Project description

PyPI version CI CD

Fixed-point solver

FixedPointJAX is a simple implementation of a fixed-point iteration algorithm for root finding in JAX. The implementation allow the user to solve the system of fixed point equations by standard fixed point iterations and the SQUAREM accelerator, see Du and Varadhan (2020).

Installation

pip install fxp-jax

Usage

import jax
import jax.numpy as jnp
from jax import random

from fxp_jax import fxp_root

jax.config.update("jax_enable_x64", True)

accelerator = "squarem"

N = 100

a = random.uniform(random.PRNGKey(111), (N,1))
b = random.uniform(random.PRNGKey(112), (1,1))

def fun(x: jnp.ndarray) -> tuple[jnp.ndarray, jnp.ndarray]:
    y = a + x @ b
    return y, y - x

fxp = fxp_root(fun, accelerator=accelerator)

result = fxp.solve(jnp.zeros_like(a))

y, z = fxp.fun(result.x)

print('--------------------------------------------------------')
print(f'System of fixed-point equations is solved: {jnp.allclose(result.x, y)}.')
print(f'Roots are zero: {jnp.allclose(z, 0.0)}.')
print('--------------------------------------------------------')

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

fxp_jax-0.2.1.tar.gz (29.9 kB view details)

Uploaded Source

Built Distribution

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

fxp_jax-0.2.1-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

Details for the file fxp_jax-0.2.1.tar.gz.

File metadata

  • Download URL: fxp_jax-0.2.1.tar.gz
  • Upload date:
  • Size: 29.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for fxp_jax-0.2.1.tar.gz
Algorithm Hash digest
SHA256 9db729ecdcdbd9eb99954f9affc5956f40222858abc5d183178f8cc995952bd0
MD5 54d929e035cd7ad4c0a041b40e024b40
BLAKE2b-256 857fe621bfa6a09a38f6cc08bf43f5a498fce66d0cbe1cc0f84243f2e151f2a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for fxp_jax-0.2.1.tar.gz:

Publisher: cd.yml on esbenscriver/fxp-jax

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fxp_jax-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: fxp_jax-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 4.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for fxp_jax-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 144c9025789815798b419bf4a5bc6f9869ad8516b66398ed0e73f576f762b6dc
MD5 05cc8b1e57477272d8d9e24fbaf67fe4
BLAKE2b-256 d507d98f6ac1aede92202ebf1bd7a3e0e1d2ced00984891b486603961e24e019

See more details on using hashes here.

Provenance

The following attestation bundles were made for fxp_jax-0.2.1-py3-none-any.whl:

Publisher: cd.yml on esbenscriver/fxp-jax

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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