sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.34k stars 452 forks source link

Add the downward monotonic cone to the cone catalogue #30200

Closed orlitzky closed 4 months ago

orlitzky commented 4 years ago

Depends on #30128 Depends on #30153 Depends on #32877

Component: geometry

Author: Michael Orlitzky

Branch/Commit: u/mjo/ticket/30200 @ 7268365

Issue created by migration from https://trac.sagemath.org/ticket/30200

orlitzky commented 4 years ago

Branch: u/mjo/ticket/30200

orlitzky commented 4 years ago

Last 10 new commits:

554282aTrac #30128: enforce sourcing of sage-env-config before src/bin/sage-env.
7a91c05build/make/Makefile.in: Add target SPKG-no-deps for all SPKGs
4fc909csrc/bin/sage: Repair ./sage -b etc. by using make sagelib-clean, make sagelib-no-deps
03a2dbebuild/make/Makefile.in: Make SPKG-no-deps targets phony; for script packages, create the correct installation stamp file
62ddd02build/make/Makefile.in [SPKG-no-deps]: Do not forget to source sage-env-config
830843btrac 30153: add, clarify some comments
1a0e5c3Trac #30153: factor out $(1)-no-deps targets in build/make/Makefile.in.
7456bf5Trac #30200: add the global Niez1998 reference.
8a9a83aTrac #30200: add the downward-monotonic cone to the cone catalogue.
e137879Trac #30200: fix the implementation of the "majorization order."
orlitzky commented 4 years ago

Commit: e137879

orlitzky commented 4 years ago

Author: Michael Orlitzky

orlitzky commented 4 years ago

Dependencies: #30128, #30153

mkoeppe commented 4 years ago
comment:2

This looks clean but I am not sure how widespread the name "downward monotonic cone" really is. Google finds only 10 hits of this phrase (and 0 hits for "downward monotone cone"). In fact, looking at the ticket I somehow expected to see an implementation of the nonpositive orthant...

So how about calling it cones.nonincreasing_sequences instead.

orlitzky commented 4 years ago
comment:3

Replying to @mkoeppe:

This looks clean but I am not sure how widespread the name "downward monotonic cone" really is. Google finds only 10 hits of this phrase (and 0 hits for "downward monotone cone"). In fact, looking at the ticket I somehow expected to see an implementation of the nonpositive orthant...

So how about calling it cones.nonincreasing_sequences instead.

I tortured myself about this name for hours in order to include a split-second mention of it in a recent paper. The first application of it is to isotone or isotonic regression, where of course "iso" only means "same" and doesn't specify the direction. More recently and in other contexts, "monotone" has become more popular but suffers the same problem. You can find the ambiguous "monotone cone" in recent work on cone projections by Németh et al., for example.

In any case, I'm forced to add an adjective to either of those, which have the only claim to being "official." I've chosen "downward monotonic" because it's the only option that

So even though there aren't that many mentions of it, the name "downward monotonic" at least appears in a few published papers, and then always to mean the cone that I've implemented. The "cone of nonincreasing sequences" on the other hand, has been used instead to refer to the same cone in a little-ell space. "Isotonic" has likewise been used much more generally.

Finally, at least Gourion and Seeger have defined the "upward monotonic cone" officially, so if in the future we need to add its counterpart we have a reference for that.

mkoeppe commented 4 years ago
comment:4

Replying to @orlitzky:

The "cone of nonincreasing sequences" on the other hand, has been used instead to refer to the same cone in a little-ell space.

Well, the factory could be generalized to cones.nonincreasing_sequences(oo) to cover that, if/when you add support for non-polyhedral cones.

orlitzky commented 4 years ago
comment:5

"nonincreasing sequences" is indeed a better name, but I'd rather not come up with Yet Another Name for the thing unless it's a spectacularly better name, or the name change is forced on us by some (e.g.) python restriction. No one has ever called it the cone of nonincreasing sequences before, so it's hard for me to justify making up a new name whose only google hits will be in the sage documentation. (Note that "downward monotonic" already appears in the docs for the Schur cone.)

mkoeppe commented 4 years ago
comment:6

Replying to @orlitzky:

No one has ever called it the cone of nonincreasing sequences before

This is unsubstantiated.

Note that it is not a "new name" of a cone. It is a description of its elements -- which is immediately accessible to anyone who has taken a calculus class.

orlitzky commented 4 years ago
comment:7

Replying to @mkoeppe:

Replying to @orlitzky:

No one has ever called it the cone of nonincreasing sequences before

This is unsubstantiated.

Indeed, Niezgoda also calls it the cone of nonincreasing sequences once in "Bifractional inequalities and convex cones," but that's the only paper I was able to find using that name.

Note that it is not a "new name" of a cone. It is a description of its elements -- which is immediately accessible to anyone who has taken a calculus class.

To match the other adjective-form names I would prefer "nonincreasing sequential," but I still think "downward monotonic" is a more evocative name. If we ever wind up with both, having "nonincreasing sequential" and "nondecreasing sequential" where the "increasing" one is decreasing and the "decreasing" one is increasing is more confusing than it has to be. The notation for the downward monotonic cone also justifies its name; the symbol x^{\downarrow} is standard to indicate the vector whose components are the components of x but arranged in nonincreasing order. The downward-monotonic cone is thus (R<sup>{n})</sup>{\downarrow}, and the upward-monotonic cone is (R<sup>{n})</sup>{\uparrow}. Since the downward cone is just R^n with a "down" after it and likewise for the upward cone, they're easy to remember.

In any case, I'm not prepared to argue about this forever. I didn't invent the cone, and isotonic/monotonic are the common names for it, with "monotonic" going back at least to Hardy, Littlewood, and Polya. I see no good reason to rename it (beyond the necessary mention of the direction of monotonicity) in sage.

mkoeppe commented 4 years ago
comment:8

The cone of nonincreasing sequences is an "everyday" mathematical object. If we add it to Sage, it should be named in a way that is as universally understood -- not using jargon from a narrow list of papers.

By the way, also "monotonic cone" only has 21 Google hits (I know, I know, Polya was more a fan of Bing than of Google search), and "monotone cone" only 70.

orlitzky commented 4 years ago
comment:9

This doesn't "need work" any more now than it would if I changed the name. Your own search results show that I've chosen the more popular name of the two, and this for inclusion in a catalogue of cones whose sole purpose is to make them easily accessible by name. Please just let someone else review it.

mkoeppe commented 4 years ago
comment:10

Replying to @orlitzky:

I've chosen the more popular name of the two

of what two?

orlitzky commented 4 years ago
comment:11

downward monotonic cone and cone of nonincreasing sequences

mkoeppe commented 3 years ago
comment:13

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

mkoeppe commented 3 years ago
comment:14

Setting a new milestone for this ticket based on a cursory review.

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 2 years ago

Changed commit from e137879 to 931ca5f

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 2 years ago

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

f976e17Trac #32877: remove set_random_seed() calls from doctests.
840b753Trac #30200: add the global Niez1998 reference.
5b4f844Trac #30200: add the downward-monotonic cone to the cone catalogue.
931ca5fTrac #30200: fix the implementation of the "majorization order."
orlitzky commented 2 years ago

Changed dependencies from #30128, #30153 to #30128, #30153, #32877

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 2 years ago

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

63fa368Trac #30200: add the global Niez1998 reference.
1805a14Trac #30200: add the downward-monotonic cone to the cone catalogue.
7268365Trac #30200: fix the implementation of the "majorization order."
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 2 years ago

Changed commit from 931ca5f to 7268365