Alexander Solovets wrote:
>
> One more thing I want to ask you about: can you compose some tests
> which would produce expressions with INDEFINTEGRAL, VCONCAT, TAG,
> EQUATNUM, ZAG, SIGMA/SIGMA2/PI/PI2(in terms of binary operation),
> RARROW. Also I completely do not know how to get partial
> derivatives(differentials).
>
Little comment: I think that subscripts and superscrips are most
visible missing part (they are also used for derivatives).
RARROW does not appear in FriCAS (it is only in your
'texmacs.spad.pamphlet'). TAG means right arrow:
(27) -> mT := MoebiusTransform(Fraction(Integer))
(27) MoebiusTransform(Fraction(Integer))
Type: Type
(28) -> moebius(2, 1,1, 1)$mT
2%x + 1
(28) %x -> -------
1%x + 1
Type: MoebiusTransform(Fraction(Integer))
(29) -> ((moebius(2, 1,1, 1)$mT )::OutputForm)::SEX
(29) (TAG %x (/ (+ (* 2 %x) 1) (+ (* 1 %x) 1)))
Type: SExpression
EQUATNUM is produced by 'label' function, it is in examples I gave
you. AFAICS there is no other way to get it in TexmacsFormat
(for text output EQUATNUM is used to attach the number, but
this happens inside i-output.boot and do not propagate to
TexmacsFormat).
AFAICS currently INDEFINTEGRAL is unused. My impression is
that INTSIGN was intended for definite integrals, but currently
it is used for indefinite integrals and INDEFINTEGRAL is unused.
As Ralf wote continuedFraction(314159/100000) gives you ZAG:
(1) -> (continuedFraction(314159/100000)::OutputForm)::SEX
(1)
(+ 3
(+
(+ (+ (+ (+ (+ (ZAG 1 7) (ZAG 1 15)) (ZAG 1 1)) (ZAG 1 25)) (ZAG 1 1))
(ZAG 1 7))
(ZAG 1 4))
)
Type: SExpression
AFAICS you handle this. But somewhat nested ZAG-s cause trouble.
Differentials:
(4) -> D(besselJ(v, x), v)
(4) besselJ (v,x)
,1
Type: Expression(Integer)
(30) -> (D(besselJ(v, x), v)::OutputForm)::SEX
(30) ((SUB besselJ (CONCAT , 1)) v x)
Type: SExpression
(5) -> D(hypergeometricF([a, b], [c, d], z), c)
(5) hypergeometricF ([a,b],[c,d],z)
,3
Type: Expression(Integer)
Sums:
(6) -> (sum(n^n, n=1..m)::OutputForm)::SEX
(6) (SIGMA2 (= n 1) m (^ n n))
Type: SExpression
(7) -> (sum(n^n, n)::OutputForm)::SEX
(7) (SIGMA n (^ n n))
Type: SExpression
(8) -> sum(n^n, n=1..m)
m
--+ n
(8) > n
--+
n= 1
Type: Expression(Integer)
(9) -> sum(n^n, n)
--+ n
(9) > n
--+
n
Type: Expression(Integer)
Products:
(11) -> (product(n^n, n=1..m)::OutputForm)::SEX
(11) (PI2 (= n 1) m (^ n n))
Type: SExpression
(12) -> (product(n^n, n)::OutputForm)::SEX
(12) (PI n (^ n n))
Type: SExpression
(13) -> product(n^n, n=1..m)
m
++-++ n
(13) | | n
| |
n= 1
Type: Expression(Integer)
(14) -> product(n^n, n)
++-++ n
(14) | | n
| |
n
Type: Expression(Integer)
VCONCAT is rarely used and real eaxmple would require some effort,
but artifical is easy:
(19) -> of1 := ('f)::OutputForm
(19) f
Type: OutputForm
(20) -> of2 := ('z)::OutputForm
(20) z
Type: OutputForm
(21) -> vconcat(of1, of2)
(21) f
z
Type: OutputForm
(22) -> vconcat(of1, of2)::SEX
(22) (VCONCAT f z)
Type: SExpression
As you see the intent is to put one part on top of the other.
--
Waldek Hebisch
[email protected]
--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/fricas-devel?hl=en.