I did go on to discuss this on the Maxima mailing list:
https://sourceforge.net/p/maxima/mailman/maxima-discuss/thread/CADB8Zm56axVDFXRLbJnxm7xnnbQiixBzg4VX1T91ucj%2B-tuGvA%40mail.gmail.com/#msg58347791

Apparently domain:complex as used by Sage is not a very well tested
configuration of Maxima.

There are most likely other effects besides the documented one about
sqrt(x^2) not simplifying to abs(x):

$ git grep domain src/simp.lisp
src/simp.lisp:(defmvar $limitdomain '$complex)
src/simp.lisp:         (cond ((or (and $logexpand (eq $domain '$real))
src/simp.lisp:            (cond ((or $numer_pbranch (eq $domain '$complex))
src/simp.lisp:                 (or (and (eq $domain '$real) (not
(apparently-complex-to-judge-by-$csign-p (cadr gr))))
src/simp.lisp:                     (and (eq $domain '$complex)
(apparently-real-to-judge-by-$csign-p (cadr gr)))))
src/simp.lisp:                 (or (and (eq $domain '$real) (not
(apparently-complex-to-judge-by-$csign-p (cadr gr))))
src/simp.lisp:                     (and (eq $domain '$complex)
(apparently-real-to-judge-by-$csign-p (cadr gr)))))
src/simp.lisp:                 (and (eq $domain '$real) $radexpand))
src/simp.lisp:           ((or (eq $domain '$complex) (not $radexpand)) (go up)))
src/simp.lisp:                (and (eq $domain '$complex)
src/simp.lisp:                (and (eq $domain '$real)
src/simp.lisp:                              (eq $domain '$real))
src/simp.lisp:                     (eq $domain '$real)
src/simp.lisp:           ((and (eq $domain '$real)
src/simp.lisp:                 (eq $domain '$real)
src/simp.lisp:      (and (eq $domain '$real) (ratnump e) (oddp (caddr e)))))
src/simp.lisp:           ((eq $domain '$real)

--
Oscar

On Mon, 1 Jan 2024 at 21:55, Nils Bruin <nbr...@sfu.ca> wrote:
>
> The documented effect is usually of most impact:
>
> https://maxima.sourceforge.io/docs/manual/maxima_46.html#index-domain
>
> there may be other undocumented effects, but the one above tends to explain a 
> lot already.
>
> On Sunday 3 December 2023 at 06:26:20 UTC-8 Oscar Benjamin wrote:
>>
>> What does "set domain to complex" mean in terms of Maxima's settings?
>>
>> Maxima's solve seems to compute complex solutions by default:
>>
>> (%i21) solve(x^2 + 1);
>> (%o21) [x = - %i, x = %i]
>>
>> On Sun, 3 Dec 2023 at 13:37, Dima Pasechnik <dim...@gmail.com> wrote:
>> >
>> > Yes, Sage modifies the defaults of Maxima, in particular we set domain to 
>> > complex.
>> >
>> > On 3 December 2023 12:28:45 GMT, Oscar Benjamin <oscar.j....@gmail.com> 
>> > wrote:
>> > >On Wed, 29 Nov 2023 at 12:40, Eric Gourgoulhon <egourg...@gmail.com> 
>> > >wrote:
>> > >>
>> > >> Le mardi 28 novembre 2023 à 18:25:04 UTC+1, kcrisman a écrit :
>> > >>
>> > >> Yes. Maxima's attitude is that the square root of negative one is an 
>> > >> expression which might have multiple values, rather than just picking 
>> > >> one you hope might be consistent over branch points.
>> > >>
>> > >> To enforce Maxima to work in the real domain, avoiding to play too much 
>> > >> with complex square roots, one can add at the beginning of the Sage 
>> > >> session:
>> > >>
>> > >> maxima_calculus.eval("domain: real;")
>> > >>
>> > >> Then the second example in the initial message of this thread yields
>> > >>
>> > >> [[x == 2/5*sqrt(6)*sqrt(5), y == 16, l == 1/9*18750^(1/6)], [x == 
>> > >> -2/5*sqrt(6)*sqrt(5), y == 16, l == -1/9*18750^(1/6)]]
>> > >>
>> > >> instead of an empty list.
>> > >
>> > >When using Maxima (5.45.1) directly I get this result with default 
>> > >settings:
>> > >
>> > >(%i1) f: 10*x^(1/3)*y^(2/3)$
>> > >
>> > >(%i2) g: 5*x^2 + 6*y$
>> > >
>> > >(%i3) solve([diff(f,x)=l*diff(g,x), diff(f,y)=l*diff(g,y), g=120], 
>> > >[x,y,l]);
>> > > 1/6
>> > > 2 sqrt(6) 18750
>> > >(%o3) [[x = ---------, y = 16, l = --------],
>> > > sqrt(5) 9
>> > > 1/6
>> > > 2 sqrt(6) 18750
>> > > [x = - ---------, y = 16, l = - --------]]
>> > > sqrt(5) 9
>> > >
>> > >Does Sage modify some Maxima settings related to this or does it call
>> > >something other than solve?
>> > >
>> > >--
>> > >Oscar
>> > >
>> >
>> > --
>> > You received this message because you are subscribed to the Google Groups 
>> > "sage-support" group.
>> > To unsubscribe from this group and stop receiving emails from it, send an 
>> > email to sage-support...@googlegroups.com.
>> > To view this discussion on the web visit 
>> > https://groups.google.com/d/msgid/sage-support/6F4839F2-38B6-40F2-B080-EFCC1C0C3B65%40gmail.com.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sage-support+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sage-support/454c0dbc-ead3-45c4-9557-fdb2391a9ce9n%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-support/CAHVvXxQ_XBUnvordM9BB0qES6bUYxnPEGu7QeaDAKDr9BVLYUA%40mail.gmail.com.

Reply via email to