aelzenaar / bella Goto Github PK
View Code? Open in Web Editor NEWNew computational package for small-rank matrix groups
License: BSD 3-Clause "New" or "Revised" License
New computational package for small-rank matrix groups
License: BSD 3-Clause "New" or "Revised" License
MWE:
from bella import slices
# Compute a whole bunch of level sets, and stick them into one pandas dataframe
depth = 20
p = 3
q = 6
elliptic_slice = slices.elliptic_exterior(p, q, depth)
print(elliptic_slice[43])
The polynomial solver fails to converge, and we see:
bella.slices.ConvergenceFailedException: Convergence failed at r/s = 2/3, polynomial 3.0 -
12.12435565298214105469212439054110656859963677667266439639064885616353111836160025956802330730074003·x +
15.0·x² -
5.196152422706631880582339024517617100828415761431141884167420938355799050726400111243438560271745727·x³
But:
>>> print(farey.farey_polynomial_classic(2,3,3,6)+2)
3.732050807568877293527446341505872366942805253810380628055806979451933016908800037081146186757248576 -
1.0·x +
1.732050807568877293527446341505872366942805253810380628055806979451933016908800037081146186757248576·x² -
1.0·x³
so the wrong Farey polynomial is computed by slices.elliptic_exterior
. (It even fails to be monic!)
GroupCache.subgroup() should take a list of words, i.e. [(0,), (3,),...]; instead it takes just matrices so is essentially useless.
RileyGroup should also expose a subgroup method that takes XY strings.
Right now the examples are kind of messy. Write specific well-documented examples to showcase particular features, or at least document the existing ones clearer.
Implement computation of approximations of Riley slices following https://github.com/aelzenaar/riley/blob/main/riley.py.
One needs to find a good (fast) method for solving the polynomials produced by the (existing) bella.farey module.
MPmath does not support using numeric types from the pyadic package.
Traceback (most recent call last):
File "/Users/amar630/anaconda3/envs/py3-11/lib/python3.11/site-packages/dask/backends.py", line 136, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/Users/amar630/anaconda3/envs/py3-11/lib/python3.11/site-packages/dask/dataframe/io/csv.py", line 760, in read
return read_pandas(
^^^^^^^^^^^^
File "/Users/amar630/anaconda3/envs/py3-11/lib/python3.11/site-packages/dask/dataframe/io/csv.py", line 533, in read_pandas
raise OSError(f"{urlpath} resolved to no files")
OSError: atom/*.csv resolved to no files
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/amar630/Downloads/bella-main/examples/atom.py", line 70, in <module>
df = dd.read_csv("atom/*.csv")
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/amar630/anaconda3/envs/py3-11/lib/python3.11/site-packages/dask/backends.py", line 138, in wrapper
raise type(e)(
OSError: An error occurred while calling the read_csv method registered to the pandas backend.
I tried uncommenting the commented code, but then I get an error that G is not defined.
I am running Python 3.11.
@ariymarkowitz please copy the error message here thx
Add functions to:
Add functions to:
Add back in this function removed in de0855b and add a new "left-to-right" mode. This is of interest in computing zooms of limit sets and cannot be done in the "fast" way so it is worth having the function back even though it is slow at "normal" limit sets.
Use the power of dask and/or pandas to parallelise limit set computations.
Add a method to GroupCache
which can produce a set of isometric circles, similar in interface to GroupCache.coloured_limit_set()
.
Currently riley.riley_slice_exterior
is very slow. This is a factor of three variables:
mp.dps = 100
(__init__.py)maxsteps = 500
(in farey.solve_polynomial)extraprec = 1000
(in farey.solve_polynomial)First of all, we should have an internal mpmath context to avoid setting the dps globally. We should then choose maxsteps and extraprec to be minimal to ensure convergence. This could be done as follows:
I often wish to do computations of the following form:-
See e.g. the example "dunfield_tiozzo".
Part (2) is easy to do in bella, if the generators are available in numerical form. Part (1) requires a computer algebra system such as Sage. However it is nontrivial to plug bella into sage.
We must do the following things, at least (https://doc.sagemath.org/html/en/developer/coding_in_python.html):
_latex_
Part 4 is fairly nontrivial, as since early versions we have fairly strong dependencies on mpmath (e.g. mp.inf is used a lot).
In farey.py
implement:
peripherals.py
example to use this.Use holoviews.Graph to plot
If the parameters p, q to RileyGroup are non-integral then an error should not occur.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.