tscrim / coxeter Goto Github PK
View Code? Open in Web Editor NEWCoxeter is a library for the study of combinatorial aspects of Coxeter group theory
Coxeter is a library for the study of combinatorial aspects of Coxeter group theory
As noted on http://trac.sagemath.org/ticket/19178.
I've seen some posts saying that the former is faster than the latter. Moreover, there are some places where handling the copying directly could be faster (e.g., List::erase).
Hi!
Entering the following matrix
1 0 2 3
0 1 0 2
2 0 1 0
3 2 0 1
yields an Address Boundary Error
.
Running ddd
on that seems to indicate that the error comes from
(anonymous namespace)::InitMinTable::fillReflectionRow (this=0x7ffff7f46650, G=..., r=5, s=2 '\002') at minroots.cpp:837
I've looked at the code at this place but couldn't easily find the source of the bug.
I'll try to look into it more carefully.
EDIT: (the matrix was input interactively)
EDIT2: After further investigation, it seems that at this line
Line 835 in 7b5a1f0
undef_minnbr
, which I think shouldn't happen since we're then using it as an index.Because speed is the main priority, we should add a test suite to generate timings and tests for speed regressions.
There are far too many of them and all of the code should be under one unified namespace.
These will be very fast list operations that we currently do not have. In particular, Bruhat ordering in #10 pops elements off the back and comments have said this is a bottleneck.
We should use a more standard C++ documentation formatting, such as that compatible with Doyxgen.
Because a good testing framework is good to have. We should consider using a standard C++ unit test framework to do so.
The basic implementation of MinTable::inOrder()
uses recursion and copying of the Coxeter element at every step. We can avoid the recursion and the extra copying by making an entry point which makes one copy and then uses an iterative version of the check. We can also do a similar improvement to the one which records the positions.
Hi @tscrim ,
We've been putting some math packages for which maintenance has been largely taken over by the Sage community (including, similarly to this library, symmetrica: https://gitlab.com/sagemath/symmetrica)
Would you be okay if we set up a repo for this on gitlab and moved all the issues over there? That will make it easier also to have a new release upstream for use in Sage as well as downstream packagers. I could also take over reworking the build system if you want. This is motivated in part by https://trac.sagemath.org/ticket/29150
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.