Sorry, emails crossed...
Am Donnerstag, 5. Juli 2018 19:57:15 UTC+2 schrieb Ralf Hemmecke:
>
> >> Wouldn't it be wiser to add functions to Expression in order to
> >> decompose an element.
> >
> > No, not in the case of the Sage interface to FriCAS.
>
> Can you give a reason why?
>
> A function that would enable to go step by step through an expression
> tree in FriCAS wouln't be such a bad idea even though the representation
> of Expression(INT) is a rational function, but still the idea is
> "expression tree".
>
As far as I understand, InputForm is achieving precisely this, except that
it is not restricted to EXPR:
(2) -> integrate(sin(x^2), x)::INFORM
(2) (/ (fresnelS (* x (^ (/ 2 (pi)) (/ 1 2)))) (^ (/ 2 (pi)) (/ 1 2)))
Type:
InputForm
is an expression tree.
(3) -> 1.23::INFORM
(3) (float 181515961685301987901 - 67 2)
Type:
InputForm
Of course, some (type) information may be lost - not by design, but rather
because of implementation details. But in general, things work well:
(12) -> (matrix [[(i+j)::PF(2) for i in 1..3] for j in 1..3])::INFORM
(12)
(matrix
(construct
(construct (($elt (PrimeField 2) index) 2)
(($elt (PrimeField 2) index) 1) (($elt (PrimeField 2) index) 2))
(construct (($elt (PrimeField 2) index) 1)
(($elt (PrimeField 2) index) 2) (($elt (PrimeField 2) index) 1))
(construct (($elt (PrimeField 2) index) 2)
(($elt (PrimeField 2) index) 1) (($elt (PrimeField 2) index) 2))
)
)
Type:
InputForm
The sage interface uses this information:
sage: fricas("(matrix [[(i+j)::IntegerMod(2) for i in 1..3] for j in
1..3])").sage().parent()
Full MatrixSpace of 3 by 3 dense matrices over Ring of integers modulo 2
just noticed a bug that PrimeField is not translated :-)
sage: fricas("(matrix [[(i+j)::PF(2) for i in 1..3] for j in 1..3])").sage()
...
NotImplementedError: The translation of FriCAS type (PrimeField 2) to sage
is not yet implemented.
All the best,
Martin
--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.