Ticket #787 (closed enhancement: fixed)

Opened 3 years ago

Last modified 3 years ago

[with patch] quotient spaces of vector spaces

Reported by: nbruin Owned by: was
Priority: major Milestone: sage-2.8.15
Component: linear algebra Keywords:
Cc: Author(s):
Report Upstream: Reviewer(s):
Merged in: Work issues:

Description

If V is a subspace of W then W.quotient(V) should give the quotient space U=W/V.

Left TODO:

  • overload "/" constructor ?
  • provide a section map U->W ?
  • install appropriate coercions ?

Attachments

fix.patch Download (5.8 KB) - added by nbruin 3 years ago.
implementation
trac787.patch Download (11.3 KB) - added by was 3 years ago.
This I think correctly really implements quotients of vector spaces.
trac787-part2.patch Download (0.9 KB) - added by was 3 years ago.
This is also needed (it fixes a docstring)
trac787-part3.patch Download (11.5 KB) - added by was 3 years ago.
this is also needed.
trac787-bundle.hg Download (84.3 KB) - added by was 3 years ago.
instead of applying those three patches, this is a clean bundle.
trac787-part4.patch Download (6.7 KB) - added by roed 3 years ago.
Changes _repr_

Change History

Changed 3 years ago by nbruin

implementation

Changed 3 years ago by mhansen

  • summary changed from quotient spaces of vector spaces to [with patch] quotient spaces of vector spaces

Changed 3 years ago by was

  • status changed from new to closed
  • resolution set to duplicate

I think this should be replaced by Soroosh's code, which does this and much more.

Changed 3 years ago by was

  • status changed from closed to reopened
  • resolution duplicate deleted
  • milestone changed from sage-2.8.6 to sage-2.9
What? and ditch my 2 lines of haiku-like sage code?

Seriously, though. The attached patch contains quite a bit more than
"quotient", as you are probably woefully aware of. Easiest is probably

 - apply the patch
 - delete "quotient" from sage/modules/free_module.py

Cheers,

Changed 3 years ago by mabshoff

  • milestone changed from sage-2.9 to sage-2.8.8

We need to figure out if this still applies.

Cheers,

Michael

Changed 3 years ago by was

  • milestone changed from sage-2.8.8 to sage-2.8.9

Changed 3 years ago by mabshoff

  • milestone changed from sage-2.8.9 to sage-2.8.10

Changed 3 years ago by was

  • milestone changed from sage-2.9 to sage-2.8.12

Changed 3 years ago by was

This has lingered too long -- I need to deal with it.

Changed 3 years ago by mabshoff

  • milestone changed from sage-2.9 to sage-2.8.13

Changed 3 years ago by was

NOT ready: I still think "I think this should be replaced by Soroosh's code, which does this and much more." I don't know the status of Soroosh's code.

Changed 3 years ago by mabshoff

Soroosh's code, i.e. #1029 got merged. So should we invalidate this ticket?

Cheers,

Michael

Changed 3 years ago by was

Almost done:

was_: sage: R = QQ^3; S = R.span([[1,2,3]])
[10:14am] was_: sage: w = R.quotient(S)
[10:14am] was_: sage: w = R / S
[10:14am] was_: But the last goes boom.
[10:14am] was_: It would be 3-4 lines of code to fix that.
[10:14am] was_: Once that is fixed, then 787 is done

Changed 3 years ago by was

  • status changed from reopened to new

Changed 3 years ago by was

  • status changed from new to assigned

Changed 3 years ago by was

A quick comment. Even as is this is WRONG -- the algorithm used is buggy, evidently, or something, since

sage: A = QQ^3; V = A.span([[1,2,3], [4,5,6]])
sage: Q = V.quotient( V.span([V.0 + V.1]) ); Q
sage: Q[1](V.0 + V.1)
(1)

But Q[1] is the quotient map so should have V.0 + V.1 in its kernel.

Changed 3 years ago by was

This I think correctly really implements quotients of vector spaces.

Changed 3 years ago by was

This is also needed (it fixes a docstring)

Changed 3 years ago by was

this is also needed.

Changed 3 years ago by was

instead of applying those three patches, this is a clean bundle.

Changed 3 years ago by mabshoff

  • status changed from assigned to closed
  • resolution set to fixed

Merged in 2.8.15.alpha2.

Changed 3 years ago by roed

Changes _repr_

Changed 3 years ago by was

This was slightly buggy -- see Trac #1368 for a fix.

Note: See TracTickets for help on using tickets.