Opened 4 years ago

Closed 4 years ago

#19425 closed defect (fixed)

Order in symbolic ring: error calling operator

Reported by: dkrenn Owned by:
Priority: major Milestone: sage-6.10
Component: symbolics Keywords:
Cc: Merged in:
Authors: Benjamin Hackl Reviewers: Ralf Stephan
Report Upstream: N/A Work issues:
Branch: 7a2e948 (Commits) Commit: 7a2e948bdb80c0292cf70fa2286e0c532e66cf13
Dependencies: Stopgaps:

Description (last modified by dkrenn)

sage: R.<r> = ZZ[[]]
sage: o = SR(r.O(2)).operands()[1]; o
Order(r^2)
sage: o.operator()
...
RuntimeError: cannot find SFunction in table

or

x.Order().operator()
...
RuntimeError: cannot find SFunction in table

Change History (7)

comment:1 follow-up: Changed 4 years ago by cheuberg

sage: (x+x^2).series(x, 2).operator() is None
True

comment:2 Changed 4 years ago by dkrenn

  • Description modified (diff)

comment:3 in reply to: ↑ 1 ; follow-up: Changed 4 years ago by rws

Replying to cheuberg:

sage: (x+x^2).series(x, 2).operator() is None
True

The topmost operator in symbolic series pseries is not a registered function, but it can be seen in the expression tree:

sage: (x+x^2).series(x, 2)._dbgprinttree()
pseries @0x4e2c3b0, hash=0x0, flags=0x3
    1 (numeric) @0x35d70d0, hash=0x0, flags=0x7
    1 (numeric) @0x35d70d0, hash=0x0, flags=0x7
    -----
    function Order @0x4c197f0, serial=12, hash=0x0, flags=0x3, nops=1
        1 (numeric) @0x35d70d0, hash=0x0, flags=0x7
        =====
    2 (numeric) @0x35d7130, hash=0x0, flags=0x7
    -----
    x (symbol) @0x3e5d6d0, serial=5, hash=0xf4f4bfee, flags=0xf, domain=0, iflags=0000000000000000
    0 (numeric) @0x3647180, hash=0x0, flags=0x7

You can see that the function Order is there too. GiNaC::Order is registered in Pynac and imported to Sage (symbolic/ginac.pxd). But it somehow doesn't get into Sage's registry sfunction_serial_dict which is created and used in symbolic/function.pyx.

comment:4 in reply to: ↑ 3 Changed 4 years ago by behackl

  • Authors set to Benjamin Hackl
  • Branch set to u/behackl/function/Order-registration
  • Commit set to 7a2e948bdb80c0292cf70fa2286e0c532e66cf13
  • Status changed from new to needs_review

Replying to rws:

But it somehow doesn't get into Sage's registry sfunction_serial_dict which is created and used in symbolic/function.pyx.

This was because Order was not registered. Should be fixed now.


New commits:

84aa1e2register Order-function
318dd7badd examples and tests
7a2e948add seealso-block

comment:5 Changed 4 years ago by rws

  • Reviewers set to Ralf Stephan

Passes tests in selected directories. As soon as a patchbot run passes this can be set positive.

comment:6 Changed 4 years ago by rws

  • Status changed from needs_review to positive_review

comment:7 Changed 4 years ago by vbraun

  • Branch changed from u/behackl/function/Order-registration to 7a2e948bdb80c0292cf70fa2286e0c532e66cf13
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.