{"id":28014,"library":"openequivariance","title":"OpenEquivariance","description":"A fast GPU JIT kernel generator for the Clebsch-Gordon Tensor Product, currently at version 0.6.6. Released about monthly. Supports PyTorch and JAX backends.","status":"active","version":"0.6.6","language":"python","source_language":"en","source_url":"https://github.com/OpenEquivariance/openequivariance","tags":["equivariance","tensor product","GPU","JIT","machine learning","symmetry"],"install":[{"cmd":"pip install openequivariance","lang":"bash","label":"PyPI install"}],"dependencies":[{"reason":"Required for torch backend","package":"torch","optional":false},{"reason":"Required for JAX backend","package":"jax","optional":true}],"imports":[{"note":"Top-level module is 'oe', not package name. Use 'from openequivariance import oe'.","wrong":"import openequivariance","symbol":"oe","correct":"from openequivariance import oe"},{"note":"","wrong":"","symbol":"TPProblem","correct":"from openequivariance import TPProblem"}],"quickstart":{"code":"import torch\nfrom openequivariance import oe\n\nirreps_in1 = [(1, (1, 1)), (1, (1, 2)), (1, (2, 1)), (1, (2, 2))]\nirreps_in2 = [(1, (1, 1)), (1, (1, 2)), (1, (2, 1)), (1, (2, 2))]\nirreps_out = [(1, (1, 1)), (1, (1, 2)), (1, (2, 1)), (1, (2, 2))]\ninstruction = [(0, 0, 0, \"uvu\", True), (1, 1, 1, \"uvu\", True)]\n\n# Create TP problem\ntp = TPProblem(irreps_in1, irreps_in2, irreps_out, instruction, dtype=torch.float32, device='cpu')\n\n# Input tensors\nN = 8\nx1 = torch.randn(N, 16)\nx2 = torch.randn(N, 16)\n\n# Forward pass\nresult = tp(x1, x2)\nprint(result.shape)","lang":"python","description":"Minimal tensor product using Torch backend on CPU."},"warnings":[{"fix":"Change `import openequivariance` to `from openequivariance import oe`.","message":"Import path changed: in early versions (pre-0.6), the module was importable as `import openequivariance`. Since 0.6, use `from openequivariance import oe`.","severity":"breaking","affected_versions":">=0.6"},{"fix":"Ensure irreps are specified as list of (mult, (l, parity)) tuples.","message":"Irrep specifications changed from tuples of (multiplicity, (l, p)) to (multiplicity, (l, p)) where p is parity (1 or -1). Old code using integers may break.","severity":"gotcha","affected_versions":"all"},{"fix":"Always pass `dtype=torch.float32` or `jnp.float32` explicitly.","message":"The `TPProblem` constructor's `dtype` argument requires explicit float types; implicit type promotion may be removed in future.","severity":"deprecated","affected_versions":">=0.6"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Replace `import openequivariance` with `from openequivariance import oe`.","cause":"Incorrect import: `import openequivariance` does not expose `oe`. Need to use `from openequivariance import oe`.","error":"AttributeError: module 'openequivariance' has no attribute 'oe'"},{"fix":"Pass `dtype=torch.float32` (or `torch.float64`) in the TPProblem constructor.","cause":"Did not specify `dtype` argument or passed a non-supported type like torch.int.","error":"RuntimeError: Unsupported dtype"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}