Giter Site home page Giter Site logo

Comments (5)

ryanhaining avatar ryanhaining commented on August 10, 2024

Sorry for the delayed response. You're not the first person to ask for something similar (see #41). The issue is that product is able to handle different types, and so must compute a lot at compile time. The flexibility you'd need would require a totally different product implementation that did work at runtime unless you know the repeat value that you need at compile time. Is that the case? So that something like product_repeat<3>(digits) could work for you?

from cppitertools.

simonzack avatar simonzack commented on August 10, 2024

Oh I basically need the same type but repeated different times, but the repeat value is not known at compile time.

A couple days ago I just did this manually by representing each possibility as a number, and extracting the digits. My set of digits were {1, 3, 7, 9}, and 1 encoded as 0, 3 encoded as 1, 7 encoded as 2, 9 encoded as 3, 11 encoded as 4 and so on. But some product() like Python's itertools I think will be more flexible.

The number of repeats is in a loop, so product_repeat<3>(digits) wouldn't work too well. It would if the loop was templated in some way, but that's not very nice.

Is it hard to make this a real parameter or would it slow things down lots? I'm guessing it'll be slower than the encoding scheme I had above, but hopefully not too much.

from cppitertools.

ryanhaining avatar ryanhaining commented on August 10, 2024

from cppitertools.

simonzack avatar simonzack commented on August 10, 2024

Well I know the lower bound but not the upper bound.

And yes consteval & template stuff is not very elegant and seems like it's hard-coded. I barely know how to code template meta-programming stuff anyway.

I think the ideal form is something like Python and making it an argument. I think that's perfect if there's not a massive decrease in performance compared to just using a loop, encoding the indexes as numbers, and decoding it. That works but is rather tedious to code.

from cppitertools.

ryanhaining avatar ryanhaining commented on August 10, 2024

from cppitertools.

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.