Hi, this SG19 meeting will focus on Stats and Graph
Michael Wong is invitingyou to a scheduled Zoom meeting.Topic: SG19 monthlyTime:
2nd Thursdays 02:00 PM Eastern Time (US and Canada) Every month on the Second Thu,Join from PC, Mac, Linux, iOS or Android:https://iso.zoom.us/j/93084591725?pwd=K3QxZjJlcnljaE13ZWU5cTlLNkx0Zz09 Password: 035530Or iPhone one-tap : US: +13017158592,,93084591725# or +13126266799,,93084591725#Or Telephone: Dial(for higher quality, dial a number based on your current location): US: +1 301 715 8592 or +1 312 626 6799 or +1 346 248 7799 or +1408 638 0968 or +1 646 876 9923 or +1 669 900 6833 or +1 253 215 8782 or 877 853 5247 (Toll Free) Meeting ID: 930 8459 1725 Password: 035530 International numbers available: https://iso.zoom.us/u/agewu4X97Or Skype for Business (Lync): https://iso.zoom.us/skype/93084591725Agenda:1. Opening and introductionsThe ISO Code of conduct:https://www.iso.org/files/live/sites/isoorg/files/store/en/PUB100397.pdfIEC Code of Conduct:https://www.iec.ch/basecamp/iec-code-conduct-technical-workISO patent policy.https://isotc.iso.org/livelink/livelink/fetch/2000/2122/3770791/Common_Policy.htm?nodeid=6344764&vernum=-2The WG21 Practices and Procedures and Code of Conduct:https://isocpp.org/std/standing-documents/sd-4-wg21-practices-and-procedures1.1 Roll call of participants
Andrew Lumsdaine, Phil Ratzloff, Bogdan Cyganek, Jens Maurer, Kevin Deweese, Michael Wong, Ozan Irsoy
1.2 Adopt agenda
1.3 Approve minutes from previous meeting, and approve publishing
previously approved minutes to ISOCPP.org
1.4 Action items from previous meetings
2. Main issues (125 min)
2.1 General logistics
Meeting plan, focus on one paper per meeting but does not preclude other paper
updates.
2024 planning
C++23 and C++26 status
Tokyo
* Jan 11, 2024 02:00 PM ET: Graph DONE
* Feb 8, 2024 02:00 PM ET: Graph DONE
* Mar 14, 2024 02:00 PM ET: Cancelled due to Tokyo 3-18-23
* Apr 11, 2024 02:00 PM ET: Stats/Graph
* May 9, 2024 02:00 PM ET: Graph
* June 13, 2024 02:00 PM ET: May cancelled; St.louis 6-24-29
* July 11, 2024 02:00 PM ET: Stats
* Aug 15, 2024 02:00 PM ET: Graph
* Sep 12, 2024 02:00 PM ET: CPPCON Sept 15-20 so canceled
* Oct 10, 2024 02:00 PM ET: Stats
* Nov 14, 2024 02:00 PM ET: Cancelled Wroclaw F2F
* Dec 12, 2024 02:00 PM ET: Graph
ISO meeting status
future C++ Std meetings
2.2 Paper reviews
Review BSI Graph feedback:
Review itemized objections from all sources from Phil's notes 10-apr-2024
#1,2 need clarity when oliver is here
#4 Get the definition right in new paper
#6 electrical circuit example, will replace
#7investigate visitors, coroutines may be novel (why?), but there are generators now in C++23
What is the constexpr idea? Compile time graph?
mention in scope section whether constexpr is in/out?
std::vector may be better then in_place_vector
#8 load_api takes an istream? a range set of edges with projection function that would be loaded into the graph
Jens comments:
size is on par with mdspan
C++26?
new volume of papers to review
investigations that are uncertain
in/out of LEWG in one meeting?
backlog already in the pipeline for LWG
backup deadline after 26 in 2027
Sg19 Tokyo comments:
Guy: on concept names and novel approach. Exposition only
Will hold F2F in St. Louis and Andrew likely will be there.
implementation?
Andrew comments/concerns:
1. edge list
2. some are TBD
3. Philosophy of concepts
4. cant do BFS on vector of vectors, just compose standard library containers and pass into algorithms **** we can do that now
5. some concepts were over constraining, now is not the case
6. existence proofs basic exaample should just work, e.g. kevin bacon, how they relate to sparse matrix/rectangular, page ranks, structurally bipartite, a requirement not a concept, a join
7. rectangular graph
8. join
some is in 3127
Next meeting in May
1. expanded list of issues (add andrews issues) put in google doc to share link with everyone
2. terms/definition paper which will be bikeshed
3. BGL comparison
Try to vote out for June St. Louis F2F meeting, may be a subset
As Oliver (Rosten) said "The basic premise is important, and it would befantastic to have support for graphs in the standard."The main items identified were:Oliver:- This paper is long and incomplete, it has lots of details which I thinkto be irrelevant, however things that are definitely relevant are missingfrom the paper - for example definition of graph - since people havedifferent ideas. We need to add a mathematical perspective to the paper.- The structure of the paper completely changed in the new revision, so nowit’s hard to understand what and why they have done- Another missing part is discussion of graph invariantsTom (Deakin): There’s a big missing part in “Prior art” part, GraphBLAS (https://graphblas.org) eminently.Some other things to add:1. The electrical circuit example needs more explanation, and I think thiswill highlight some deep issues around representing things which areseemingly trivially graphs, as graphs in practice. In what sense is abog-standard resistor directed? I assume the reason that the graph isdirected is because current has a sign and in an undirected graph itbecomes ambiguous which way the current is flowing (also you may wantcomponents like diodes). But the directed representation also has issues:"can current flow from 'Vdd' to 'n0'?" should be immediately answerablefrom the properties of Vdd and its edges. There are other ways to representan electrical circuit. One is as a directed graph but with incident edgesrecorded - but iiuc, this is excluded from the latest version of the paper.Alternatively, one could have a mathematical object, the name of which Iactually don't know: it looks like an undirected graph, but where eachpartial edge has additional, unique, end-point data, as well as the commonweight. Things like this are the reason why I think we need a broader groupto look at this proposal (i.e. beyond SG19) and if we possibly can weshould involve someone from the mathematics community. Otherwise there's areal danger we end up missing important insights.2. My comment about the structure of the paper changing was a reference toprevious comparisons with boost::graph. I'm sure these were in an earlierversion, or am I misremembering? Either way, it would be very helpful tohave a proper discussion of e.g. the move away from visitors.3. Re. the definition of a graph, there needs to be a proper discussionabout whether the paper's definition of graph is what some authors call amultigraph and whether it does/does not include loops. These things arementioned, in passing, when introducing algorithms, but terminology needsto be properly established.4. I think we're trying to do too much in one go in this paper. I think agreat first step would be to build on mdspan and try to standardize (or atleast understand) what might reasonably be called an unstructured span.This could be represented as a vector of vectors or as a vector with someauxiliary storage indicating where the partitions fall. The point is thatan unstructured span, with the right invariants, is an adjacency list. Ifwe can understand unstructured span and its desirable api, I think thiswill be incredibly valuable guidance for what a standardized graphcontainer might look like.5. IIUC, this paper excludes pure connectivity graphs. These are incrediblyhelpful and, if I've understood correctly that they are not supported,would be a major omission. Another good reason, imo, to start withunstructured span!6. I'm not convinced by the load api. We don't have a load api for vectoretc. Moreover, would it not be preferable to have appropriate constructors?2.2.1: ML topics2.2.1.1 Graph Proposal Phil Ratsloff et alLatest paper:Here’s a link to the paper (different than the previous paper reviewed).There are some additional updates I’m planning on making before the meeting.https://docs.google.com/document/d/1OpH-xxRri7tJTtJJIZTYmSHkkrZJkdBwm9zJ7LqolfQ/edit?usp=sharingP1709R3:https://docs.google.com/document/d/1kLHhbSTX7j0tPeTYECQFSNx3R35Mu3xO5_dyYdRy4dM/edit?usp=sharinghttps://docs.google.com/document/d/1QkfDzGyfNQKs86y053M0YHOLP6frzhTJqzg1Ug_vkkE/edit?usp=sharing<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2119r0.html><https://docs.google.com/document/d/175wIm8o4BNGti0WLq8U6uZORegKVjmnpfc-_E8PoGS0/edit?ts=5fff27cd#heading=h.9ogkehmdmtel*>*Array copy semantics:array copy-semantics paper P1997 "Relaxing Restrictions on Arrays",https://wg21.link/p1997Stats feedback:P2376R0<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2376r0.pdf>Commentson Simple Statistical Functions (p1708r4): Contracts, Exceptions andSpecial cases Johan Lundberg2.2.1.2 Reinforcement Learning Larry Lewis Jorge SilvaReinforcement Learning proposal:2.2.1.3 Differential Calculus:https://docs.google.com/document/d/175wIm8o4BNGti0WLq8U6uZORegKVjmnpfc-_E8PoGS0/edit?ts=5fff27cd#heading=h.9ogkehmdmtel2.2.1.4: Stats paperP2681R0<https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2681r0.pdf> MoreStats Functions Richard Dosselmann, Michael WongCurrent githubhttps://github.com/cplusplus/papers/issues/475https://github.com/cplusplus/papers/issues/979Stats review Richard Dosselman et alhttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1708r4.pdfFeedback from Johan Lundberg and Oleksandr Korvalhttps://isocpp.org/files/papers/D2376R0.pdfP1708R3: Math proposal for Machine Learning: 3rd reviewPXXXX: combinatorics: 1st Review*> std.org/jtc1/sc22/wg21/docs/papers/2020/p1708r2<http://std.org/jtc1/sc22/wg21/docs/papers/2020/p1708r2>**> above is the stats paper that was reviewed in Prague**> http://wiki.edg.com/bin/view/Wg21prague/P1708R2SG19<http://wiki.edg.com/bin/view/Wg21prague/P1708R2SG19>**>**> Review Jolanta Polish feedback.**> http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2119r0.html<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2119r0.html>*2.2.1.4: Matrix paper2.2.3 any other proposal for reviews?2.3 Other Papers and proposalsP1416R1: SG19 - Linear Algebra for Data Science and Machine Learninghttps://docs.google.com/document/d/1IKUNiUhBgRURW-UkspK7fAAyIhfXuMxjk7xKikK4Yp8/edit#heading=h.tj9hitg7dbtrP1415: Machine Learning Layered listhttps://docs.google.com/document/d/1elNFdIXWoetbxjO1OKol_Wj8fyi4Z4hogfj5tLVSj64/edit#heading=h.tj9hitg7dbtr2.2.2 SG14 Linear Algebra progress:Different layers of proposalhttps://docs.google.com/document/d/1poXfr7mUPovJC9ZQ5SDVM_1Nb6oYAXlK_d0ljdUAtSQ/edit2.5 Future F2F meetings:2.6 future C++ Standard meetings:https://isocpp.org/std/meetings-and-participation/upcoming-meetingsNone3. Any other businessNew reflectorhttp://lists.isocpp.org/mailman/listinfo.cgi/sg19Old Reflectorhttps://groups.google.com/a/isocpp.org/forum/#!newtopic/sg19<https://groups.google.com/a/isocpp.org/forum/?fromgroups=#!forum/sg14>Code and proposal Staging area4. Review4.1 Review and approve resolutions and issues [e.g., changes to SG'sworking draft]4.2 Review action items (5 min)5. Closing process5.1 Establish next agenda5.2 Future meeting* Jan 11, 2024 02:00 PM ET: Graph DONE* Feb 8, 2024 02:00 PM ET: Graph DONE* Mar 14, 2024 02:00 PM ET: Cancelled due to Tokyo 3-18-23* Apr 11, 2024 02:00 PM ET: Stats/Graph* May 9, 2024 02:00 PM ET: Graph* June 13, 2024 02:00 PM ET: Embedded; St.louis 6-24-29* July 11, 2024 02:00 PM ET: Stats* Aug 15, 2024 02:00 PM ET: Graph* Sep 12, 2024 02:00 PM ET: CPPCON Sept 15-20 so cancelled* Oct 10, 2024 02:00 PM ET: Stats* Nov 14, 2024 02:00 PM ET: Cancelled Wroclaw F2F* Dec 12, 2024 02:00 PM ET: Graph