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/[EMAIL PROTECTED]


_______________________________________________
Axiom-developer mailing list
Axiom-developer@nongnu.org
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to