[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## [Axiom-developer] [Manipulating Expressions]

**From**: |
Bill Page |

**Subject**: |
[Axiom-developer] [Manipulating Expressions] |

**Date**: |
Sun, 06 Nov 2005 20:20:30 -0600 |

Changes http://wiki.axiom-developer.org/ManipulatingExpressions/diff
--
++added:
Other Operations
The domain FunctionSpace includes the following operations::
isExpt(p,f:Symbol) returns [x, n] if p = x**n and n <> 0 and x = f(a)
isExpt(p,op:BasicOperator) returns [x, n] if p = x**n and n <> 0 and x =
op(a)
isExpt(p) returns [x, n] if p = x**n and n <> 0
isMult(p) returns [n, x] if p = n * x and n <> 0
isPlus(p) returns [m1,...,mn] if p = m1 +...+ mn and n > 1
isPower(p) returns [x, n] if p = x**n and n <> 0
isTimes(p) returns [a1,...,an] if p = a1*...*an and n > 1
If these conditions are not met, then the above operations
return "failed".
For example,
\begin{axiom}
isMult(3*x)
\end{axiom}
but
\begin{axiom}
isMult(x*y)
\end{axiom}
In the context of 'Expression Integer', or 'Polynomial Integer'
the parameter n must be an Integer. The Symbol 'y' is not an
'Integer'.
Not exactly analogously
\begin{axiom}
isPower(x**y)
\end{axiom}
whereas
\begin{axiom}
isPower(x**10)
\end{axiom}
In the first case the 'Integer' is assume to be 1.
We have:
\begin{axiom}
isTimes(x*y*z)
isPlus(x+y+z*y)
\end{axiom}
Whereas
\begin{axiom}
isTimes((x+y)*z)
\end{axiom}
That is because the expression is internally treated as a
'MultivariatePolynomial' like this:
\begin{axiom}
((x+y)*z)::MPOLY([x,y,z],INT)
\end{axiom}
If you say:
\begin{axiom}
isPlus((x+y)*z)
\end{axiom}
perhaps the result makes sense?
For some of the details of these operations I consulted the
actual algebra code at:
http://wiki.axiom-developer.org/axiom--test--1/src/algebra/FspaceSpad
Click on 'pdf' or 'dvi' to see the documentation.
You can also enter expressions like 'isTimes' in the search box
on the upper right and see all the places in the algebra where
this operation is defined and used.
--
forwarded from http://wiki.axiom-developer.org/address@hidden

[Prev in Thread] |
**Current Thread** |
[Next in Thread] |

**[Axiom-developer] [Manipulating Expressions]**,
*Bill Page* **<=**