Skip to content

Comprehensive / single-page API reference #816

@bdice

Description

@bdice

Problem

The old Thrust documentation website at https://thrust.github.io/doc/namespacethrust.html has a single page containing a list of all Thrust APIs. This is extremely helpful as a "cheat sheet" for finding specific algorithms or overloads (via Ctrl+F) or simply referencing the breadth of the library's functionality. Similarly, the left sidebar of pages like this one for thrust::find shows a list of algorithms that is helpful for quick access.

The new Thrust documentation website at https://nvidia.github.io/thrust/ has categories like API / Algorithms / Reductions / Comparisons / thrust::equal but it seems to be missing a comparable list of algorithms for quick reference. It also seems that the number of clicks needed to navigate the new site's menu structure is higher, and it can be challenging to know which category contains a given API when searching for its docs. As a somewhat separate observation, the large amount of text on each page (and lower readability of the theme in both font size and contrast) makes it difficult to quickly compare the available overloads for a method.

Comparison to other algorithms libraries

Similar libraries like the C++ STL have reference pages like https://en.cppreference.com/w/cpp/numeric that list all algorithms in a given header, as well as a comprehensive list of headers / categories as shown in https://en.cppreference.com/w/cpp.

Proposed solution

Some mixture of tables of contents, all-in-one reference pages, or "cheat sheets" would be a highly valuable addition to the new Thrust documentation, especially if they can balance conciseness and readability with completeness as well as the old site did.

I would be happy to work on this at some point, but don't let that stop anyone else from jumping in if I haven't gotten to it yet!

cc: @karthikeyann @upsj @PointKernel who also showed interest in this kind of reference material.

Metadata

Metadata

Assignees

No one assigned

    Labels

    thrustFor all items related to Thrust.

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions