Opened 3 years ago

Last modified 3 years ago

#24838 closed defect

Upgrade to pynac-0.7.18 — at Version 24

Reported by: rws Owned by:
Priority: major Milestone: sage-8.3
Component: symbolics Keywords:
Cc: fbissey, gh-timokau Merged in:
Authors: Ralf Stephan Reviewers:
Report Upstream: N/A Work issues:
Branch: u/rws/upgrade_to_pynac_0_7_17 (Commits, GitHub, GitLab) Commit: ae5eac77131fca0266d63ee7c9b9f2b8ecf72ee8
Dependencies: Stopgaps:

Status badges

Description (last modified by rws)

In the new version:

  • correct sinh/cosh/tanh return type (#24299)
  • atan2 fixes
  • potential memleaks fixed
  • fixes in Giac interface
  • subs can now substitute numeric terms (#23964)
  • fix memleak in in-place PyObject numerics (#24745)
  • fix endless computation (#24883)
  • Python interface / Py3 fixes and improvements (thx Erik Bray, #24561, #24752, #24522)
  • fix internal asin/acos of complex balls
  • draw factors out of add^rational (#24768)
  • exp(f(x)), exp(c*f(x)), f inv. hyperbolic simplifications (#24841)
  • always extend trig/hyperbolic functions to complex domain (#24428)
  • extensive code readability improvements

https://github.com/pynac/pynac/releases/download/pynac-0.7.18/pynac-0.7.18.tar.bz2

Change History (24)

comment:1 Changed 3 years ago by rws

  • Branch set to u/rws/upgrade_to_pynac_0_7_17

comment:2 Changed 3 years ago by rws

  • Authors set to Ralf Stephan
  • Commit set to d3511ce1cbd35b9d625b0f4215ee014e6cc99931
  • Description modified (diff)
  • Status changed from new to needs_review

New commits:

e470685version / chkum / rm patch
d3511ce24838: doctest fixes

comment:3 Changed 3 years ago by fbissey

  • Cc fbissey added

comment:4 Changed 3 years ago by rws

  • Description modified (diff)

comment:5 Changed 3 years ago by jdemeyer

Just a question: is this supposed to fix #24522 too?

comment:6 follow-up: Changed 3 years ago by rws

  • Description modified (diff)

Yes, that PR is merged. I'll probably add a hotfix for #24883 here as patch, too.

comment:7 in reply to: ↑ 6 Changed 3 years ago by jdemeyer

Replying to rws:

I'll probably add a hotfix for #24883 here as patch, too.

Then I'm setting this to needs_work. If you change your mind, feel free to set this back to needs_review.

comment:8 Changed 3 years ago by rws

The issue is no longer there. Please review.

Last edited 3 years ago by rws (previous) (diff)

comment:9 Changed 3 years ago by jdemeyer

  • Status changed from needs_review to needs_work

This used to return a purely imaginary number, now there is a small real part:

sage: arccosh(x).subs(x=0.9)
-9.66146955461936e-22 + 0.451026811796262*I
Last edited 3 years ago by jdemeyer (previous) (diff)

comment:10 Changed 3 years ago by rws

This is an artifact of conversion to CC:

sage: CC(ComplexBallField(68)(0.9).arccosh())
-9.66146955461936e-22 + 0.451026811796262*I

We use arb with precision+15 and convert back to parent, all to make up for missing or limited (in the calculus sense, not the algebraic, note recent discussion) member functions of parent (RR in this case). Before this pynac version we had specific logic to zero the real part but this was error-prone. IMHO CC conversion of complex balls should be fixed.

comment:12 follow-up: Changed 3 years ago by rws

You may also want to know why I'm using arb and not mpfr:

sage: r=srange(-2.5,2.5,.01)
sage: rr = [CC(i) for i in r]
sage: %timeit for x in rr: _=x.arccosh()
100 loops, best of 3: 11.9 ms per loop
sage: rr = [CBF(i) for i in r]
sage: %timeit for x in rr: _=x.arccosh()
1000 loops, best of 3: 649 µs per loop
Last edited 3 years ago by rws (previous) (diff)

comment:13 Changed 3 years ago by rws

What do you prefer, patching arb or the arb interface?

comment:15 in reply to: ↑ 12 Changed 3 years ago by jdemeyer

Replying to rws:

You may also want to know why I'm using arb and not mpfr:

Despite what you think, you are not using mpfr, but PARI:

    def arccosh(self):
        """
        Return the hyperbolic arccosine of ``self``.

        EXAMPLES::

            sage: (1+CC(I)).arccosh()
            1.06127506190504 + 0.904556894302381*I
        """
        return self._parent(self.__pari__().acosh())

If you want to compare with something, it should be mpc (in Sage: CC = MPComplexField(53))

comment:16 Changed 3 years ago by rws

Interestingly,

sage: arccosh(x).subs(x=MPComplexField(53)(0.9))
...
TypeError: no canonical coercion from Complex Field with 53 bits of precision to Symbolic Ring

comment:17 in reply to: ↑ 14 Changed 3 years ago by rws

Replying to rws:

See https://github.com/fredrik-johansson/arb/pull/210

This is now merged. Do we want that patch in this ticket? If not, anything else?

comment:18 Changed 3 years ago by rws

  • Status changed from needs_work to needs_review

comment:19 Changed 3 years ago by git

  • Commit changed from d3511ce1cbd35b9d625b0f4215ee014e6cc99931 to 9f86eb7b725b44939f22df4cb7f5a6b05935a6c8

Branch pushed to git repo; I updated commit sha1. New commits:

e85fa6cMerge branch 'develop' into t/24838/upgrade_to_pynac_0_7_17
9f86eb724838: pynac-0.7.18 doctest fixes

comment:20 Changed 3 years ago by rws

  • Status changed from needs_review to needs_work

New release incoming.

comment:21 Changed 3 years ago by rws

  • Description modified (diff)
  • Summary changed from Upgrade to pynac-0.7.17 to Upgrade to pynac-0.7.18

comment:22 Changed 3 years ago by git

  • Commit changed from 9f86eb7b725b44939f22df4cb7f5a6b05935a6c8 to ae5eac77131fca0266d63ee7c9b9f2b8ecf72ee8

Branch pushed to git repo; I updated commit sha1. New commits:

ae5eac724838: version/chksum

comment:23 Changed 3 years ago by rws

  • Status changed from needs_work to needs_review

comment:24 Changed 3 years ago by rws

  • Description modified (diff)
Note: See TracTickets for help on using tickets.