ORNL / ORNL/cpp-proposals-pub

P1673: LWG review 2023/10/25

Open
#421 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
29
Forks
26
PR merge metrics
No merged PRs in 30d

Description

P1673: LWG review 2023/10/25

matrix_one_norm

Last week, we stopped after matrix_frob_norm and before matrix_one_norm.

Add Note for BLAS Standard function name, even though not in Reference BLAS.

(In theory, a user could have a matrix with a layout for which submdspan isn't defined.)

"28.9.13.13.2 One norm with default result type" doesn't have a stable name. Remove that heading and make this part of the whole section. (Christian already has that implemented in his branch.) Ditto for the "see-below" changes (delete "see-below" and just return auto); flatten those functions to one line (Christian already did).

matrix_inf_norm

Ditto.

[linalg.alg.blas2.gemv]

2.1: Do we always have the same names of A, x, y, and z, in (e.g.,) possibly-multiplyable(decltype(A), decltype(x), decltype(y))? Christian: Yes, that's the idea, though we should check.

Shorten Complexity wording in para 4. "A count of mdspan array accesses and arithmetic operations that is linear in x.extent(0) times A.extent(1)."

Delete "Overwriting matrix-vector product" and "Updating matrix-vector product" headers. Make those headers just a new paragraph underneath: "This function performs an overwriting matrix-vector product."

Para 1: Replace "in this section" with "in [linalg.algs.blas2.gemv]." (Also, it's a "subclause," not a "section.")

Example for GEMV: Change scaled_matvec_2 to scaled_transposed_matvec. Use * instead of "times" in the comment over the last function.

[linalg.algs.blas2.symv]

Change "in this section" to the stable name of the parent, as above.

Remove subheadings "Overwriting symmetric matrix-vector product" etc., as above.

Edit Complexity as above. "A count of ... x.extent(0) times A.extent(1)." Perhaps even just "O(x.extent(0) * A.extent(1))."

^^^ Generally change Complexity to use brief big-Oh notation. The Oh is curly, math font. Fix this generally.

Add a cross-reference to [linalg.general], that explains the Triangle template parameter. "This function performs an overwriting symmetric matrix-vector product accessing the elements specified by t ([linalg.general])."

[linalg.algs.blas2.hemv]

Analogous changes as above.

[linalg.algs.blas2.trmv]

Analogous changes as above.

"taking account of the Triangle and DiagonalStorage parameters ([linalg.general])."

Note: "... other ExecutionPolicy specific optimizations" (remove hyphen) -- [linalg.algs.blas2.trmv.in-place].

Stop before [linalg.algs.blas2.trsv].

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the document sections named [linalg.alg.blas2.gemv], [linalg.algs.blas2.symv], [linalg.algs.blas2.hemv], and [linalg.algs.blas2.trmv], along with matrix_one_norm and matrix_inf_norm. Review the surrounding wording and [linalg.general], then apply the requested heading, cross-reference, complexity, example, and terminology edits through trmv, stopping before [linalg.algs.blas2.trsv]. Done means all listed review comments are reflected consistently in the paper.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.