Coder Social home page Coder Social logo

Comments (12)

moble avatar moble commented on August 22, 2024 2

I'd just like to suggest that since Cl is pretty much the main callable in this library, it might be helpful to have a more descriptive name for the new argument. Maybe desired_grades or even just grades?

from clifford.

hugohadfield avatar hugohadfield commented on August 22, 2024 1

Thanks for the table @enkimute interesting how fast the javascript startup times are!
just added to my PR here: #43
this should bring the start up times down very significantly

from clifford.

hugohadfield avatar hugohadfield commented on August 22, 2024

Thanks for the detailed issue @Stefan-Endres ! High dimensional algebra support is a big priority for us at the moment as it is the biggest performance killer in this library at the moment and people are interested in it, it would be great to get your contributions.
I have been thinking about our problems here for a little while, check out #17
I'm just digging into this even odd issue now and it is pretty nasty

from clifford.

hugohadfield avatar hugohadfield commented on August 22, 2024

Ok, this commit adds a bit of speedup and hopefully simplifies the code a little as a start for us to understand what is going on!
f67bcef

from clifford.

hugohadfield avatar hugohadfield commented on August 22, 2024

These even and odd permutation tables appear to be used only in _gmtElement. I think modifying _genEvenOdd to use your kr parameter and limiting the for i in range(self.gaDims): to the indices of your sparse algebra will work fine and will bring big speedups

from clifford.

Stefan-Endres avatar Stefan-Endres commented on August 22, 2024

Wow! Thank you, it's already much faster. I'm going to play around with weaving kr into the _genEvenOdd loop hopefully we can squeeze even more speed out of a sparse initialization.

from clifford.

hugohadfield avatar hugohadfield commented on August 22, 2024

Fantastic, drop us a PR when you are ready and we can merge it in

from clifford.

enkimute avatar enkimute commented on August 22, 2024

Just for comparison, ganja.js absolutely not optimized generation times :

1-dimensional clifford: 0.674072265625ms
2-dimensional clifford: 0.808837890625ms
3-dimensional clifford: 2.743896484375ms
4-dimensional clifford: 10.283935546875ms
5-dimensional clifford: 22.559814453125ms
6-dimensional clifford: 83.708984375ms
7-dimensional clifford: 439.293212890625ms
8-dimensional clifford: 2795.296875ms
9-dimensional clifford: 18897.85400390625ms

from clifford.

enkimute avatar enkimute commented on August 22, 2024

After fixing some very obvious things :

1-dimensional clifford: 0.63427734375ms
2-dimensional clifford: 0.7509765625ms
3-dimensional clifford: 1.22021484375ms
4-dimensional clifford: 3.337158203125ms
5-dimensional clifford: 11.001953125ms
6-dimensional clifford: 38.415283203125ms
7-dimensional clifford: 148.318115234375ms
8-dimensional clifford: 603.589599609375ms
9-dimensional clifford: 2689.2021484375ms
10-dimensional clifford: 11346.662841796875ms

from clifford.

hugohadfield avatar hugohadfield commented on August 22, 2024

@Stefan-Endres with the latest release of the library we are in a place where higher dimensional algebra initialisation is pretty fast, do you think sparse algebra support is still necessary? Or should we close the issue?

from clifford.

Stefan-Endres avatar Stefan-Endres commented on August 22, 2024

I think it would be better to close the issue for now. The last time I worked on this I was not able to make all the desirable operations work seamlessly, what I did relies on some very ugly/unmaintanable hacks. If I find a better solution some day I'll open a new PR if there are applications requiring very high dimensions (meaning to the point where the memory requirements of combinatorial growth of the blades of "middle" grades are intractable) and/or a good maintainable solution, but for now I don't think it would benefit the library (on a personal note it's working really well for my applications at the moment as I do not use extremely high dimensions).

Thanks for the great work on the initialisation improvements!

from clifford.

hugohadfield avatar hugohadfield commented on August 22, 2024

:) glad it is working out for you, it's nice to see this library being used in some wider applications!

from clifford.

Related Issues (20)

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.