Code Monkey home page Code Monkey logo

Comments (10)

Euler-37 avatar Euler-37 commented on June 12, 2024

fortran intrinsic function popcnt looks better. https://gcc.gnu.org/onlinedocs/gfortran/POPCNT.html

from stdlib.

PierUgit avatar PierUgit commented on June 12, 2024

Looks like, but then why is it not used in bit_count_large()?

from stdlib.

jvdp1 avatar jvdp1 commented on June 12, 2024

If I remember well, bitset_large was developed as an externsion of bitset_64. For bitset_64, popcnt cannot be used because some bits may not be used. The solution with btest() is therefore legitimate. The extension of bit_count for bitset_large from bitset_64 was straighfoward.

However, I agree that @PierUgit 's solution or using popcnt in this loop would be a more efficient implementation.

@PierUgit , do you still have such an implementation (i recognize that my answer is quite late!)? If so, would you like to open a PR with your solution/optimization?

from stdlib.

PierUgit avatar PierUgit commented on June 12, 2024

@jvdp1 I don't have a code ready in Github, I did some tests independently on a code of mine... To be honest I have first to learn how to use fpm and build the stdlib before being able to submit PRs here...

from stdlib.

jvdp1 avatar jvdp1 commented on June 12, 2024

@jvdp1 I don't have a code ready in Github, I did some tests independently on a code of mine...

Is it ok for you if I submit a PR and ask you for reviewing/testing it?

To be honest I have first to learn how to use fpm and build the stdlib before being able to submit PRs here...

I usually use CMake for building stdlib. However, I agree that the doc is not clear enough for building stdlib with fpm. I believe that @jalvesz will submit soon a PR with more detailed information for building stdlib with fpm. Your review of this proposal (if you want of course) could be useful too.

from stdlib.

PierUgit avatar PierUgit commented on June 12, 2024

It was actually much easier than expected! I could build stdlib with fpm, modify the code, and add a test case (this routine was not tested). I will submit a PR soon.

I did it from the stdlib-fpm branch, though, and it looks quite behind the master branch...

from stdlib.

jvdp1 avatar jvdp1 commented on June 12, 2024

It was actually much easier than expected! I could build stdlib with fpm, modify the code, and add a test case (this routine was not tested). I will submit a PR soon.

I did it from the stdlib-fpm branch, though, and it looks quite behind the master branch...

Actually development should be always from the master branch. The branch stdlib-fpm is just generated for the users. It contains all .f90 generated from the .fypp files, because fpm does not support the fypp preprocessor yet. But it seems fine for your PR.

from stdlib.

PierUgit avatar PierUgit commented on June 12, 2024

Probably I should close the PR and restart from the master branch...

from stdlib.

jvdp1 avatar jvdp1 commented on June 12, 2024

Probably I should close the PR and restart from the master branch...

Ok. Indeed, probably better and easier.

from stdlib.

jalvesz avatar jalvesz commented on June 12, 2024

Regarding the build with fpm, what I do and want to include as info in the readme is the following:

source ./ci/fpm-deployment.sh
cd stdlib-fpm/
fpm test --profile release

The fpm-deployment.sh scrit takes care of processing the files and creating the stdlib-fpm which contains only .f90

BTW, in my PR regarding str2num I included a change to this script as we realized that the .fypp files in the test folder were not processed.

from stdlib.

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.