I’ve just returned from the February 2019 meeting of WG21 held in Kona, Hawaii. This was my fifth meeting; my first was the July 2017 meeting in Toronto, and I’ve been to each since then, except Rapperswill. I joined the U.S. national body INCITS this past December, and so this was my first meeting as a voting member of PL22.16, representing myself (through my consulting company, KEWB Computing).
C++20 Status
There are already a couple of great summaries covering the status of C++20: the first is Herb Sutter’s blog and the second is the Reddit update published by Bryce Lelbach. Both summaries are thorough and well-written; I recommend reading both for their differing perspectives.
I won’t decrease the universal SNR by duplicating what has already been written; I will say, however, that the addition of concepts, ranges, contracts, coroutines, and modules represents the largest update of the language since C++11. A large number of very smart people have worked for several years to make these changes happen, and I think we will all end up benefiting from them.
Linear Algebra Proposal
During this meeting, my collaborator Guy Davidson and I presented two papers describing our proposal to add linear algebra facilities to the standard library.
On Tuesday evening, Guy presented P1166R0, a paper that sets forth a high-level set of features and requirements we believe a linear algebra library must fulfill in order to be useful to a wide range of prospective users. The room was generally receptive, and there were no objections to the feature set Guy described.
On Wednesday afternoon, I presented draft D1385R1 to a session of SG18, the LEWG Incubator, affectionately known as LEWG(I). I gave a repeat performance Friday morning to a joint session of SG14 (game dev and low-latency) and SG19 (machine learning). In the Wednesday session, we received interface design feedback from the language experts in the room, while on Friday we received domain feedback from several numerical processing experts, including Andrew Lumsdaine, the author of MTL (the Matrix Template Library). The technical feedback from both sessions was very thoughtful (and useful), and we believe will help make our final proposal that much stronger.
The official R1 version of the paper, P1385R1, will be in the post-Kona mailing. If you’re interested, look for it after March 16th or so, which is when the link just given will become live. In the meantime, we’ve already begun work on R2 of this paper for Cologne.
I’ll post more about the proposal as work progresses. If you’d like to take a look at our code, see our Github repo. Be forewarned, the code is in a rapid state of flux and will evolve significantly over the coming months.
Thanks for stopping by.
–Bob
Pingback: Telescopes and matrices and audio: Kona trip report – World of hatcat
Dear Bob,
Your proposal for the linear algebra library is flawed
in several regards, I ask you to please think more
carefully and get more practical experience with it
before leading C++ into another valarray blunder.
For starters, we now have concepts and by not
using them you miss a great opportunity to clean up
your library (Concepts are infinitely superior to SFINAE
hacks). That is, your proposal does not take into account
a major change in the design of C++ libraries (specially
the ones with math content.)
Second, you do not seem to have enough experience
with linear algebra, both numerical or theoretical (For instance,
eigenvalues/eigenvectors are relevant for all kinds of square
matrices, not only square ones, as you mention in your text.)
Looking at vectors as special kinds of matrices is a conceptual
blunder. It took centuries for mathematicians to develop the
proper notions in linear algebra. Please don’t mess things up.
Calling attention to row vectors is a good idea, but
they should be thought as elements of the dual space, and
make perfect sense from this perspective.
There are several other issues with your proposal, and
you should throw it away and restart from scratch. If you
are willing to do so then I can collaborate with you and Guy
Davidson and try to come out with a decent proposal.
If not, all I can say is: good luck…
walter.
Walter,
Thanks for your comments. Our proposal is still very much a work in progress. There were many good suggestions made at Kona that we are incorporating into the proposal; these are listed at the end of the R1 version. It is our intent to present the R2 version, which includes these and other updates, at Cologne in a few months. Guy and I would be happy to consider any specific feedback you would like to provide. A good place to leave feedback for both of us is at the Github repo (whose link is given in the text above).
–Bob