Giter VIP home page Giter VIP logo

coxeter's People

Contributors

jdemeyer avatar tscrim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

coxeter's Issues

Use std::copy over memcopy

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).

Crash on specific matrix input

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

y = min(y,s);
, the value for y is undef_minnbr, which I think shouldn't happen since we're then using it as an index.

Implement timing test suite

Because speed is the main priority, we should add a test suite to generate timings and tests for speed regressions.

Cleanup namespaces

There are far too many of them and all of the code should be under one unified namespace.

Implement push and pop for List

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.

Cleanup documentation

We should use a more standard C++ documentation formatting, such as that compatible with Doyxgen.

Add unit tests

Because a good testing framework is good to have. We should consider using a standard C++ unit test framework to do so.

Improve MinTable::inOrder

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.

Consider moving sagemath gitlab org?

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.