Skip to main content

Representation and Decomposition with Sums of Product for Operations in separated dimensions

Project description

Sums Of Product

SoPy

Representation and Decomposition with Sums of Product for Operations in separated dimensions

Conceptual

Let multidimensional distributions be handled in the new-old fashion way... Methods as old as the census and modernized by Beylkin and Mohlenkamp 2005 for physics. Wherein is a suite of code to hold and decompose SoP vectors. We engage with the word decomposition not as a dimensional reduction, but as a canonical-rank reducer. See, data already is in SoP form, why write it in dense hyper dimensions?

Since 2018, we have been aware that Coulomb and other functions can be written in SoP ways, but thats the published secret sauce. We simply are publishing our best understanding of how the SoP vector should be decomposed. Including some tricks which have not seen the light of day before that fundamentally improve the process, see Fibonacci.

Expect a paper to be published when time can be found to do so.

How to install

pip install sopy-quantum

import sopy as sp

New features

pySCF

Take an arbitrary electronic structure system defined in pySCF, you can put it into SoP 3D space. A stage towards various applications. Go to examples/pySCF_wavefunction.ipynb to follow my logic.

Fourier Transform

The work here, should not fall into the trap of native-Fast Fourier Transform. Multiply an arbritary vector by exp(i k X^). Using really sophisicated operator logic embedded in recent work.

Tensorly interface

Unclear when its appropriate, but you can use examples/ext to expand SoP into space and use Tensorly to reduce it again.

Functions

First set a lattice,

lattices = 2*[np.linspace(-10,10,100)]

2D gaussian at (2,6) with sigmas (1,1), and polynominal 0,0

u = sp.vector().gaussian(a = 1,positions = [2,6],sigmas = [1,1],ls = [0,0], lattices = lattices, wavenumbers = [0,0], phis = [0,0])

2D gaussian at (0.1,-0.6) with sigmas (1,1), and polynominal 0,0

k = sp.vector().gaussian(a = 1,positions = [0.1,-0.6],sigmas = [1,1],ls = [0,0], lattices = lattices, wavenumbers = [0,0], phis = [0,0])

2D gaussian at (-1,-2) with sigmas (1,1), and polynominal 1,1

k = k.gaussian(a = 2,positions = [-1,-2],sigmas = [1,1],ls = [1,1], lattices = lattices, wavenumbers = [0,0], phis = [0,0])

2D gaussian at (-2,-5) with sigmas (1,1), and polynominal 1,0

v = k.copy().gaussian(a = 2,positions = [-2,-5],sigmas = [1,1],ls = [1,0], lattices = lattices, wavenumbers = [0,0], phis = [0,0])

Multiply operand by exp_i(k ^X ) for k = (1,0)

cv = sp.operand( u, sp.vector() )

cv.exp_i([1,0]).cot(cv)

linear dependence factor...

alpha = 0

take v and remove k from it, and decompose into vector u ; outputing to vector q

q = u.learn(v-k,  alpha = alpha, iterate = 1)

Get the Euclidean distance from vector v-k and q

q.dist(v-k)

Reduce v with Fibonacci procedure

[ v.fibonacci( partition = partition, iterate = 10, total_iterate = 10).dist(v) for partition in range(1,len(v))]

Compare with standard approaches

[ v.decompose( partition = partition, iterate = 10, total_iterate = 10).dist(v) for partition in range(1,len(v))]

Use boost

[ v.boost().fibonacci(  partition = partition, iterate = 10 ,alpha = 1e-2).unboost().dist(v) for partition in range(1,len(v))]

How to Contribute

  • Write to disk/database/json
  • Develop amplitude/component to various non-local resources
    • Engage with Quantum Galaxies deploying matrices in separated dimensions

Contact Info

SoPy Website

Quantum Galaxies Articles

Quantum Galaxies Corporation

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

sopy_quantum-1.2.1.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

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

sopy_quantum-1.2.1-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file sopy_quantum-1.2.1.tar.gz.

File metadata

  • Download URL: sopy_quantum-1.2.1.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for sopy_quantum-1.2.1.tar.gz
Algorithm Hash digest
SHA256 de2aa391841000fa78d26e50fa5fa861b44d59a8c7b0df348910b9e6c90418a1
MD5 aaae214f788c086dd543a80dec29f23c
BLAKE2b-256 9cae6451a8b01abf50b181d3135869b045c5f1fca7eab33bae3faee5bc35cf59

See more details on using hashes here.

File details

Details for the file sopy_quantum-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: sopy_quantum-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for sopy_quantum-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e4df4abae290f59c9e7894237d992a32baaa5c891aaeae4c67224113e0f08f91
MD5 e81c6efa4850e31f7402a2a7e1c6614f
BLAKE2b-256 873d9c5c50465efb6c541a144468c59add6661a994bcb532d9ebf424e74d52dd

See more details on using hashes here.

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