The existing bridge to/from Pynac has to include the forget() call, of
course, and your example only shows that it works.

https://github.com/sagemath/sage/blob/master/src/sage/symbolic/expression.pyx#L1916
https://github.com/sagemath/sage/blob/master/src/sage/symbolic/expression.pyx#L1994
https://github.com/sagemath/sage/blob/master/src/sage/symbolic/assumptions.py#L559
https://github.com/pynac/pynac/blob/master/ginac/assume.cpp#L43

On Tue, Jun 20, 2017, 16:04 Stan Schymanski <schym...@gmail.com> wrote:

> Actually, ex.is_real() queries the assumptions() data base, not the
> GiNaC/Pynac info flags. Example:
> var('test', domain='real')
> print test.is_real()
> forget()
> print test.is_real()
>
> Returns:
> True
> False
>
> I think your proposal below would be great. Remove assume() from variable
> creation, but get the information from Pynac and convert to assumptions
> when calling maxima.
>
>
>
>
> On 06/15/2017 08:17 AM, Ralf Stephan wrote:
>
> The "more persistent domains() database" exists already in part as
> GiNaC/Pynac info flags that are set in parallel to Maxima's assumptions.
> They can be queried with ex.is_real() etc...What is not saved in Pynac are
> less elementary assumptions like x>1, y+z==pi. Now instead of caching all
> assumptions in a database (either Python or C++) and sending to Maxima on
> demand in bulk, another possibility could be, as you say, to just remove
> the assume calls on variable creation because they are all elementary
> assumptions. Then when Maxima needs them for integration, solving etc take
> the information from Pynac and do assumes for just those variables that are
> needed. Am I missing something?
>
> On Wednesday, June 14, 2017 at 6:14:39 PM UTC+2, Stan wrote:
>>
>> As mentioned in https://trac.sagemath.org/ticket/23138, the assume()
>> command takes a lot of time, which is very annoying when defining a lot of
>> variables using var() including a domain information. var('x',
>> domain='real') passes the domain information to ginac and adds it as an
>> assumption to assumptions(), so that it can be considered by maxima.
>> However, since assumptions() can both store much more information than just
>> the domain information, and on the other hand all the information is lost
>> when someone executes forget(), I am wondering if this code should not be
>> removed from src/sage/symbolic/ring.pyx, Lines 1017-1027, in favour of a
>> more persistent domains() database, which could be injected into
>> assumptions() by the user if needed. Any thoughts on this?
>>
>> Cheers
>> Stan
>>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "sage-devel" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/sage-devel/-A8ZzSKvYsA/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> sage-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-devel@googlegroups.com.
> Visit this group at https://groups.google.com/group/sage-devel.
> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> ________________________________________
>
> Stan Schymanski
> Riedstrasse 60
> 8604 Volketswil
> Schweiz
>
> Ph: +41 (0)43 5420487
> _________________________________________
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "sage-devel" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/sage-devel/-A8ZzSKvYsA/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> sage-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-devel@googlegroups.com.
> Visit this group at https://groups.google.com/group/sage-devel.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to