Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doc #44

Open
wants to merge 15 commits into
base: main
Choose a base branch
from
Open

Doc #44

wants to merge 15 commits into from

Conversation

jrouquie
Copy link

@jrouquie jrouquie commented Dec 16, 2024

This is a documentation only PR.

Populate the pages

Add introductory text on main Doxygen page.
Remove some repetitions.
Plus smaller stuff.

@james-d-mitchell
Copy link
Member

Thanks for the PR @jrouquie, could you maybe say a few words about what changes you've made and why please?

@hivert
Copy link
Collaborator

hivert commented Dec 16, 2024

Hi James. @jrouquie is a potential "real world" user of HPCombi. To learn how to use it, he is reading the doc and obviously find a lot of place to improve it. In particular, for different implementation of the same function, I copied with @copydoc the doc. It is indeed better to have only one doc and all the other saying that this is a different implementations of the same functionality.

include/hpcombi/epu8.hpp Outdated Show resolved Hide resolved
@slel
Copy link

slel commented Dec 17, 2024

In README.md, line 8, "compiler" should be "compilers".
One could rephrase the sentence and reflow as follows.

 High Performance Combinatorics in C++ using vector instructions v1.0.1

 HPCombi is a C++17 header-only library using the SSE and AVX instruction sets,
-and some equivalents, for very fast manipulation of small combinatorial objects such
-as transformations, permutations, and boolean matrices. The goal
-of this project is to implement various new algorithms and benchmark them on
-various compiler and architectures.
+and some equivalents, for very fast manipulation of small combinatorial objects
+such as transformations, permutations, and boolean matrices. HPCombi implements
+new algorithms and benchmarks them on various compilers and architectures.
```

Jean-Baptiste Rouquier added 13 commits December 18, 2024 12:07
Avoid copy-pasting doc: it's a waste of time for the reader.
Just point to relevant docs but have them
Let the reader know they have already read some text
(and don't need to read this doc),
just point to it if they need to read it again.
@james-d-mitchell
Copy link
Member

Thanks @jrouquie, I've just rebased this onto main after fixing the ci in #45.

Copy link
Member

@james-d-mitchell james-d-mitchell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this @jrouquie, this is a big improvement to the documentation. Except for the minor comments in the review, can you also please run clang-format on every *.*pp file that you've touched in this PR? Then we can merge this.

include/hpcombi/bmat8_impl.hpp Outdated Show resolved Hide resolved
@@ -30,3 +34,73 @@
#include "vect_generic.hpp"

#endif // HPCOMBI_HPCOMBI_HPP_

/*! \mainpage HPCombi
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to me that it might be better to just include README.md file as we were previously here, otherwise there's a good chance that the contents of this section and the README.md will become out of sync of over time. Was there a reason for having both? Might it not be better to just update README.md to include the extra material that's included here?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The contents of this section and the README.md contain distinct information, without repetition. There is no need to check for synchronization. No risk of out of sync.

Indeed, that was precisely the point of this modification : do not copy paste, do not let the reader notice (after having wasted some time) that they have already read this file. Avoid circular link where https://libsemigroups.github.io/HPCombi/ advises to go read "The Doxygen auto generated API" and actually points to itself.

Alternatively one could move the contents of "/*! \mainpage HPCombi" (in hpcombi.hpp) into the readm, and in the main page of the Doxygen doc just point to the readme (instead of duplicating it). I prefered to separate the authors/contributors/thanks list and the technical information, but feel free to implement this alternative solution.

\section sec_tips Tips to the user

Note that memory access can become a problem. It you store many things, most of the time will be spent in fetching from RAM, not computing.
Data structure should preserve locality. You might want to compute some stats on data structure usage and write custom ones.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Data structure should preserve locality. You might want to compute some stats on data structure usage and write custom ones.
Data structures should preserve locality. You might want to compute some stats on data structure usage and write custom ones.

Fix grammar, also: these two sentences are probably too general to convey much information: what data structures? what sort of stats? custom data structures for what?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added more details.

include/hpcombi/hpcombi.hpp Outdated Show resolved Hide resolved
include/hpcombi/hpcombi.hpp Outdated Show resolved Hide resolved
include/hpcombi/hpcombi.hpp Outdated Show resolved Hide resolved
include/hpcombi/hpcombi.hpp Outdated Show resolved Hide resolved
@@ -145,7 +154,9 @@ struct Transf16 : public PTransf16 {
explicit operator uint64_t() const;
};

//! Partial permutation of @f$\{0, \dots, 15\}@f$
/** Partial permutation of @f$\{0\dots 15\}@f$; see HPCombi::Perm16;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/** Partial permutation of @f$\{0\dots 15\}@f$; see HPCombi::Perm16;
/** Partial permutation of @f$\{0\dots 15\}@f$; see HPCombi::PPerm16;

?

Copy link
Author

@jrouquie jrouquie Dec 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The doc of PPerm suggests to have a look at Perm. Rewritten as
see also HPCombi::Perm16;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants