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.3.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.3-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fxp_jax-0.2.3.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.3.tar.gz
Algorithm Hash digest
SHA256 6714e7837f66b6982663d7ecb9d8523bcb0c3ba3d2118db59b9eaece056ae00b
MD5 d6684337ce9d65b08ab83ba8d46cc88f
BLAKE2b-256 f47b9a149cbccac0b13438267a78dfe0f552841f9a625dc9df842537ed568ac9

See more details on using hashes here.

Provenance

The following attestation bundles were made for fxp_jax-0.2.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: fxp_jax-0.2.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c6f470fffb7e7c7254b74afb9fe59cd4ba5c57c6225d79fc1d959c4ee27e3779
MD5 22cadd50fa5e2634c69c0d19d990f01c
BLAKE2b-256 837b9a7670c0fe3bfb9f4bbcc7e6a8961b72a21e721a0909f57aff1e7c19f476

See more details on using hashes here.

Provenance

The following attestation bundles were made for fxp_jax-0.2.3-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