1 Rosetta Translations
1.1 Introduction
The following is a collection of synonyms for various operations in
the computer algebra systems [Axiom]?, [Derive]?, [GAP]?, [Gmp]?, DoCon?,
[Macsyma]?, [Magnus]?, [Maxima]?, [Maple]?, [Mathematica]?, [MuPAD]?, [Octave]?,
[Pari]?, [Reduce]?, [Scilab]?, [Sumit]? and [Yacas]?. This collection does not
attempt to be comprehensive, but hopefully it will be useful in giving
an indication of how to translate between the syntaxes used by the
different systems in many common situations. Note that a blank entry
means either (a) that there may be an exact translation of a
particular operation for the indicated system, but we don't know what
it is or (b) there is no exact translation but it may still be
possible to work around this lack with a related functionality.
While commercial systems are not provided on this CD the intent of the
Rosetta effort is to make it possible for experienced Computer Algebra
users to experiment with other systems. Thus the commands for
commercial systems are included to allow users of those systems to
translate.
Some of these systems are special purpose and do not support a lot of
the functionality of the more general purpose systems. Where they do
support an interpreter the commands are provided.
Originally written by Michael Wester.
Modified for Rosetta by Timothy Daly, Alexander Hulpke (GAP).
1.2 System availability
System |
Type |
Interpreted or Compiled |
Axiom |
General Purpose |
both |
Derive |
General Purpose |
|
DoCon? |
General Purpose |
Interpreted in Haskell |
GAP |
Group Theory |
|
Gmp |
arb. prec. arithmetic |
|
Macsyma |
General Purpose |
|
Magnus |
Infinite Group Theory |
|
Maxima |
General Purpose |
|
Maple |
General Purpose |
|
Mathematica |
General Purpose |
|
MuPAD? |
General Purpose |
|
Octave |
Numerical Computing |
|
Pari |
Number Theory |
|
Reduce |
General Purpose |
|
Scilab |
General Purpose |
|
Sumit |
Functional Equations |
|
Yacas |
General Purpose |
|
1.3 Programming and Miscellaneous
=0pt
=1pt
|
Unix/Microsoft user initialization file |
Axiom |
~/axiom.input |
|
GAP |
~/.gaprc |
GAP.RC |
Gmp |
|
|
DoCon? |
|
|
Derive |
|
derive.ini |
Macsyma |
~/macsyma-init.macsyma |
mac-init.mac |
Magnus |
|
|
Maxima |
~/macsyma-init.macsyma |
mac-init.mac |
Maple |
~/.mapleinit |
maplev5.ini |
Mathematica |
~/init.m |
init.m |
MuPAD? |
~/.mupad/userinit.mu |
\mupad\bin\userinit.mu |
Octave |
|
|
Pari |
|
|
Reduce |
~/.reducerc |
reduce.rc |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Describe keyword |
Find keywords containing pattern |
Axiom |
|
)what operations pattern |
Derive |
|
|
DoCon? |
|
|
GAP |
?keyword |
??keyword |
Gmp |
|
|
Macsyma |
describe("keyword")$ |
apropos("pattern"); |
Magnus |
|
|
Maxima |
describe("keyword")$ |
apropos("pattern"); |
Maple |
?keyword |
?pattern 1 |
Mathematica |
?keyword |
?pattern |
MuPAD? |
?keyword |
?pattern |
Octave |
help -i keyword |
|
Pari |
|
|
Reduce |
|
|
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
|
|
|
Prev. |
Case |
Variables |
|
Comment |
|
Line continuation |
expr. |
sensitive |
assumed
|
Axiom |
-- comment |
|
input _<CR>input |
% |
Yes |
real |
Derive |
"comment" |
|
input ~<CR>input |
|
No |
real |
DoCon? |
|
|
|
|
|
|
GAP |
# comment |
|
input\<CR>input |
last |
Yes |
no assumption |
Gmp |
|
|
|
|
|
|
Macsyma |
/ comment / |
|
input<CR>input; |
% |
No |
real |
Magnus |
|
|
|
|
|
|
Maxima |
/ comment / |
|
input<CR>input; |
% |
No |
real |
Maple |
# comment |
|
input<CR>input; |
% |
Yes |
complex |
Mathematica |
( comment ) |
|
input<CR>input |
% |
Yes |
complex |
MuPAD? |
/ comment / or // comment |
|
input<CR>input; |
% |
Yes |
complex |
Octave |
## |
|
|
|
Yes |
|
Pari |
|
|
|
|
|
|
Reduce |
% comment |
|
input<CR>input; |
ws |
No |
complex |
Scilab |
|
|
|
|
|
|
Sumit |
|
|
|
|
|
|
Yacas |
|
|
|
|
|
|
|
Load a file |
Time a command |
Quit |
Axiom |
)read "file" )quiet |
)set messages time on |
)quit |
Derive |
[Transfer Load Derive] |
|
[Quit] |
DoCon? |
|
|
|
GAP |
Read("file"); |
time; (also see Runtime();) |
quit; |
Gmp |
|
|
|
Macsyma |
load("file")$ |
showtime: all$ |
quit(); |
Magnus |
|
|
|
Maxima |
load("file")$ |
showtime: all$ |
quit(); |
Maple |
read("file"): |
readlib(showtime): on; |
quit |
Mathematica |
<< file |
Timing[command]? |
Quit[] |
MuPAD? |
read("file"): |
time(command); |
quit |
Octave |
load file |
tic(); cmd ; toc() |
quit or exit |
Pari |
|
|
|
Reduce |
in "file"$ |
on time; |
quit; |
Scilab |
|
|
quit |
Sumit |
|
|
|
Yacas |
|
|
|
|
Display |
Suppress |
|
|
output |
output |
Substitution: f(x, y) ® f(z, w) |
Axiom |
input |
input; |
subst(f(x, y), [x = z, y = w]) |
Derive |
input |
var:= input |
[Manage Substitute] |
DoCon? |
|
|
|
GAP |
input; |
input;; |
Value(f,[x,y],[z,w]);2 |
Gmp |
|
|
|
Macsyma |
input; |
input$ |
subst([x = z, y = w], f(x, y)); |
Magnus |
|
|
|
Maxima |
input; |
input$ |
subst([x = z, y = w], f(x, y)); |
Maple |
input; |
input: |
subs({x = z, y = w}, f(x, y)); |
Mathematica |
input |
input; |
f[x, y] /. {x -> z, y -> w} |
MuPAD? |
input; |
input: |
subs(f(x, y), [x = z, y = w]); |
Octave |
input |
input; |
|
Pari |
|
|
|
Reduce |
input; |
input$ |
sub({x = z, y = w}, f(x, y)); |
Scilab |
|
|
|
Sumit |
|
|
|
Yacas |
|
|
|
|
Set |
List |
Matrix |
Axiom |
set [1, 2] |
[1, 2] |
matrix([[1, 2],[3, 4]]?) |
Derive |
{1, 2} |
[1, 2]? |
[[1,2], [3,4]]? |
DoCon? |
|
|
|
GAP |
Set([1,2]?) |
[1, 2] |
[[1,2], [3,4]]?3 |
Gmp |
|
|
|
Macsyma |
[1, 2] |
[1, 2] |
matrix([1, 2], [3, 4]?) |
Magnus |
|
|
|
Maxima |
[1, 2] |
[1, 2] |
matrix([1, 2], [3, 4]?) |
Maple |
{1, 2} |
[1, 2] |
matrix([[1, 2], [3, 4]]?) |
Mathematica |
{1, 2} |
{1, 2} |
{{1, 2}, {3, 4}} |
MuPAD? |
{1, 2} |
[1, 2] |
matrix([![1, 2], [3, 4]]) |
Octave |
|
|
|
Pari |
|
|
|
Reduce |
{1, 2} |
{1, 2} |
mat((1, 2), (3, 4)) |
Scilab |
|
list(1,2) |
A=[1,2;3,4] |
Sumit |
|
|
|
Yacas |
|
|
|
|
Equation |
List element |
Matrix element |
Length of a list |
Axiom |
x = 0 |
l . 2 |
m(2, 3) |
#l |
Derive |
x = 0 |
l SUB 2 |
m SUB 2 SUB 3 |
DIMENSION(l) |
DoCon? |
|
|
|
|
GAP |
x=0 |
l[2] |
m[2][3] |
Length(l) |
Gmp |
|
|
|
|
Macsyma |
x = 0 |
l[2] |
m[2, 3] |
length(l) |
Magnus |
|
|
|
|
Maxima |
x = 0 |
l[2]? |
m[2, 3]? |
length(l) |
Maple |
x = 0 |
l[2] |
m[2, 3] |
nops(l) |
Mathematica |
x == 0 |
l[[2]] |
m[[2, 3]] |
Length[l] |
MuPAD? |
x = 0 |
l[2] |
m[2, 3] |
nops(l) |
Octave |
|
|
|
|
Pari |
|
|
|
|
Reduce |
x = 0 |
part(l, 2) |
m(2, 3) |
length(l) |
Scilab |
|
l(2) |
|
|
Sumit |
|
|
|
|
Yacas |
|
|
|
|
|
Prepend/append an element to a list |
Append two lists |
Axiom |
cons(e, l) |
concat(l, e) |
append(l1, l2) |
Derive |
APPEND([e]?, l) |
APPEND(l, [e]?) |
APPEND(l1, l2) |
DoCon? |
|
|
|
GAP |
Concatenation([e]?,l) |
Add(l,e) |
Append(l1, l2) |
Gmp |
|
|
|
Macsyma |
cons(e, l) |
endcons(e, l) |
append(l1, l2) |
Magnus |
|
|
|
Maxima |
cons(e, l) |
endcons(e, l) |
append(l1, l2) |
Maple |
[e, op(l)]? |
[op(l), e]? |
[op(l1), op(l2)]? |
Mathematica |
Prepend[l, e] |
Append[l, e] |
Join[l1, l2] |
MuPAD? |
[e] . l |
append(l, e) |
l1 . l2 |
Octave |
|
|
|
Pari |
|
|
|
Reduce |
e . l |
append(l, e) |
append(l1, l2) |
Scilab |
|
|
|
Sumit |
|
|
|
Yacas |
|
|
|
|
Matrix column dimension |
Convert a list into a column vector |
Axiom |
ncols(m) |
transpose(matrix([l])) |
Derive |
DIMENSION(m SUB 1) |
[l]?` |
DoCon? |
|
|
GAP |
Length(mat[1]?) |
objects are identical |
Gmp |
|
|
Macsyma |
mat_ ncols(m) |
transpose(matrix(l)) |
Magnus |
|
|
Maxima |
mat_ ncols(m) |
transpose(matrix(l)) |
Maple |
linalg[coldim]?(m) |
linalg[transpose]?(matrix([l]?)) |
Mathematica |
Dimensions[m][[2]] |
Transpose[{l}] |
MuPAD? |
linalg::ncols(m) |
linalg::transpose(matrix([l])) |
Octave |
|
|
Pari |
|
|
Reduce |
load_ package(linalg)$ |
matrix v(length(l), 1)$ |
|
column_dim(m) |
for i:=1:length(l) do |
|
|
v(i, 1):= part(l, i) |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Convert a column vector into a list |
Axiom |
parts(v) |
Derive |
v` SUB 1 |
DoCon? |
|
GAP |
objects are identical |
Gmp |
|
Macsyma |
part(transpose(v), 1) |
Magnus |
|
Maxima |
part(transpose(v), 1) |
Maple |
op(convert(linalg[transpose]?(v), listlist)) |
Mathematica |
Flatten[v] |
MuPAD? |
[op(v)] |
Octave |
|
Pari |
|
Reduce |
load_ package(linalg)$ |
|
for i:=1:row_ dim(v) collect(v(i, 1)) |
Scilab |
|
Sumit |
|
Yacas |
|
|
True |
False |
And |
Or |
Not |
Equal |
Not equal
|
Axiom |
true |
false |
and |
or |
not |
= |
~= |
Derive |
TRUE |
FALSE |
AND |
OR |
NOT |
= |
/= |
DoCon? |
|
|
|
|
|
|
|
GAP |
true |
false4 |
and |
or |
not |
= |
<> |
Gmp |
|
|
|
|
|
|
|
Macsyma |
true |
false |
and |
or |
not |
= |
# |
Magnus |
|
|
|
|
|
|
|
Maxima |
true |
false |
and |
or |
not |
= |
# |
Maple |
true |
false |
and |
or |
not |
= |
<> |
Mathematica |
True |
False |
&& |
|| |
! |
== |
!= |
MuPAD? |
TRUE |
FALSE |
and |
or |
not |
= |
<> |
Octave |
|
|
|
|
|
|
|
Pari |
|
|
|
|
|
|
|
Reduce |
t |
nil |
and |
or |
not |
= |
neq |
Scilab |
%t |
%f |
|
|
|
|
|
Sumit |
|
|
|
|
|
|
|
Yacas |
|
|
|
|
|
|
|
|
If+then+else statements |
Strings (concatenated) |
Axiom |
if then else if then else _ |
concat(["x", "y"]) |
Derive |
IF(, , IF(, , _)) |
"xy" |
DoCon? |
|
|
GAP |
if then elif then else _ fi |
Concatenation("x","y") |
Gmp |
|
|
Macsyma |
if then else if then else _ |
concat("x", "y") |
Magnus |
|
|
Maxima |
if then else if then else _ |
concat("x", "y") |
Maple |
if then elif then else _ fi |
"x" . "y" |
Mathematica |
[, , If![, , _][, , If![, , _]] |
"x" <> "y" |
MuPAD? |
if then elif then else _ |
"x" . "y" |
|
end_if |
|
Octave |
|
|
Pari |
|
|
Reduce |
if then else if then else _ |
"xy" or mkid(x, y) |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Simple loop and Block |
Generate the list [1, 2, ..., n] |
Axiom |
for i in 1..n repeat ( x; y ) |
[f(i) for i in 1..n]? |
Derive |
VECTOR([x, y]?, i, 1, n) |
VECTOR(f(i), i, 1, n) |
DoCon? |
|
|
GAP |
for i in [1..n] do _ od; |
[1..n]? or [1,2..n]? |
Gmp |
|
|
Macsyma |
for i:1 thru n do (x, y); |
makelist(f(i), i, 1, n); |
Magnus |
|
|
Maxima |
for i:1 thru n do (x, y); |
makelist(f(i), i, 1, n); |
Maple |
for i from 1 to n do x; y od; |
[f(i) $ i = 1..n]; |
Mathematica |
Do[x; y, {i, 1, n}] |
Table[f[i], {i, 1, n}] |
MuPAD? |
for i from 1 to n do x; y |
[f(i) $ i = 1..n]; |
|
end_for; |
|
Octave |
|
|
Pari |
|
|
Reduce |
for i:=1:n do <<x; y>>; |
for i:=1:n collect f(i); |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Complex loop iterating on a list |
Axiom |
for x in [2, 3, 5] while x**2 < 10 repeat output(x) |
Derive |
|
DoCon? |
|
GAP |
for x in [2, 3, 5] do while x^2<10 do Print(x);od;od; |
Gmp |
|
Macsyma |
for x in [2, 3, 5] while x^2 < 10 do print(x)$ |
Magnus |
|
Maxima |
for x in [2, 3, 5] while x^2 < 10 do print(x)$ |
Maple |
for x in [2, 3, 5] while x^2 < 10 do print(x) od: |
Mathematica |
For[l = {2, 3, 5}, l != {} && l[[1]]?^2 < 10, |
|
l = Rest[l], Print[l[[1]]] ] |
MuPAD? |
for x in [2, 3, 5] do if x^2 < 10 then print(x) end_if |
|
end_for: |
Octave |
|
Pari |
|
Reduce |
for each x in {2, 3, 5} do if x^2 < 10 then write(x)$ |
Scilab |
|
Sumit |
|
Yacas |
|
|
Assignment |
Function definition |
Clear vars and funs |
Axiom |
y:= f(x) |
f(x, y) == x*y |
)clear properties y f |
Derive |
y:= f(x) |
f(x, y):= x*y |
y:= f:= |
DoCon? |
|
|
|
GAP |
y:= f(x); |
f:=function(x, y) return x*y; end; |
There are
no symbolic variables |
Gmp |
|
|
|
Macsyma |
y: f(x); |
f(x, y):= x*y; |
remvalue(y)$ |
|
|
|
remfunction(f)$ |
Magnus |
|
|
|
Maxima |
y: f(x); |
f(x, y):= x*y; |
remvalue(y)$ |
|
|
|
remfunction(f)$ |
Maple |
y:= f(x); |
f:= proc(x, y) x*y end; |
y:= 'y': f:= 'f': |
Mathematica |
y = f[x]? |
f[x, y ]:= x*y |
Clear[y, f] |
MuPAD? |
y:= f(x) |
(x, y) -> x*y |
delete y, f |
|
|
f:= proc(x, y) |
|
|
|
begin x*y end_proc |
|
Octave |
|
|
|
Pari |
|
|
|
Reduce |
y:= f(x); |
procedure f(x, y); x*y; |
clear y, f; |
Scilab |
|
|
|
Sumit |
|
|
|
Yacas |
|
|
|
|
Function definition with a local variable |
Axiom |
f(x) == (local n; n:= 2; n*x) |
Derive |
|
DoCon? |
|
GAP |
f:=function(x) local n; n:=2;return n*x; end; |
Gmp |
|
Macsyma |
f(x):= block([n]?, n: 2, n*x); |
Magnus |
|
Maxima |
f(x):= block([n], n: 2, n*x); |
Maple |
f:= proc(x) local n; n:= 2; n*x end; |
Mathematica |
f[x_ ]:= Module[{n}, n = 2; n*x]? |
MuPAD? |
f:= proc(x) local n; begin n:= 2; n*x end_proc; |
Octave |
|
Pari |
|
Reduce |
procedure f(x); begin scalar n; n:= 2; return(n*x) end; |
Scilab |
|
Sumit |
|
Yacas |
|
|
Return unevaluated symbol |
Define a function from an expression |
Axiom |
e:= x*y; 'e |
function(e, f, x, y) |
Derive |
e:= x*y 'e |
f(x, y):== e |
DoCon? |
|
|
GAP |
No unevaluated symbols6 |
|
Gmp |
|
|
Macsyma |
e: x*y$ 'e; |
define(f(x, y), e); |
Magnus |
|
|
Maxima |
e: x*y$ 'e; |
define(f(x, y), e); |
Maple |
e:= x*y: 'e'; |
f:= unapply(e, x, y); |
Mathematica |
e = x*y; HoldForm?[e]? |
f[x, y ]? = e |
MuPAD? |
e:= x*y: hold(e); |
f:= hold(func)(e, x, y); |
Octave |
|
|
Pari |
|
|
Reduce |
e:= x*y$ |
for all x, y let f(x, y):= e; |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Fun. of an indefinite number of args |
Apply ``+'' to sum a list |
Axiom |
|
reduce(+, [1, 2]?) |
Derive |
LST l:= l |
|
DoCon? |
|
|
GAP |
lst:=function(args) _ end; |
Sum([1,2]?) |
Gmp |
|
|
Macsyma |
lst([l]?):= l; |
apply("+", [1, 2]) |
Magnus |
|
|
Maxima |
lst([l]):= l; |
apply("+", [1, 2]?) |
Maple |
lst:=proc() [args[1..nargs]]? end; |
convert([1, 2], `+`) |
Mathematica |
lst[l _ ]:= {l} |
Apply[Plus, {1, 2}] |
MuPAD? |
lst:= proc() begin [args()]? |
_plus(op([1, 2]?)) |
|
end_ proc; |
|
Octave |
|
|
Pari |
|
|
Reduce |
|
xapply(+, {1, 2}) 5 |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Apply a fun. to a |
|
|
list of its args |
Map an anonymous function onto a list |
Axiom |
reduce(f, l) |
map(x +-> x + y, [1, 2]?) |
Derive |
|
x:= [1, 2] |
|
|
VECTOR(x SUB i + y, i, 1, DIMENSION(x)) |
DoCon? |
|
|
GAP |
List(l,f) |
List([1,2],x->x+y) |
Gmp |
|
|
Macsyma |
apply(f, l) |
map(lambda([x], x + y), [1, 2]) |
Magnus |
|
|
Maxima |
apply(f, l) |
map(lambda([x], x + y), [1, 2]) |
Maple |
f(op(l)) |
map(x -> x + y, [1, 2]) |
Mathematica |
Apply[f, l] |
Map[# + y &, {1, 2}]? |
MuPAD? |
f(op(l)) |
map([1, 2], x -> x + y) |
Octave |
|
|
Pari |
|
|
Reduce |
xapply(f, l) 6 |
for each x in {1, 2} collect x + y |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Pattern matching: f(3 y) + f(z y) ® 3 f(y) + f(z y) |
Axiom |
f:= operator('f); |
|
( rule f((n | integer?(n)) x) == nf(x) )( _ |
|
f(3y) + f(zy)) |
Derive |
|
DoCon? |
|
GAP |
|
Gmp |
|
Macsyma |
matchdeclare(n, integerp, x, true)$ |
|
defrule(fnx, f(nx), nf(x))$ |
|
apply1(f(3y) + f(zy), fnx); |
Magnus |
|
Maxima |
matchdeclare(n, integerp, x, true)$ |
|
defrule(fnx, f(nx), nf(x))$ |
|
apply1(f(3y) + f(zy), fnx); |
Maple |
map(proc(q) local m; |
|
if match(q = f(n*y), y, m ) and |
|
type(rhs(op(m)), integer) then |
|
subs(m, n * f(y)) else q fi |
|
end, |
|
f(3y) + f(zy)); |
Mathematica |
f[3*y] + f[z*y] /. f[n_Integer x_ ]? -> nf[x]? |
MuPAD? |
|
Octave |
|
Pari |
|
Reduce |
operator f; |
|
f(3y) + f(zy) |
|
where {f(~n ~x) => nf(x) when fixp(n)}; |
Scilab |
|
Sumit |
|
Yacas |
|
|
Define a new infix operator and then use it |
Axiom |
|
Derive |
|
DoCon? |
|
GAP |
One can overload existing infix operators for ones own purposes |
Gmp |
|
Macsyma |
infix("~")$ "~"(x, y):= sqrt(x^2 + y^2)$ 3 ~ 4; |
Magnus |
|
Maxima |
infix("~")$ "~"(x, y):= sqrt(x^2 + y^2)$ 3 ~ 4; |
Maple |
`&~`:= (x, y) -> sqrt(x^2 + y^2): 3 &~ 4;
|
Mathematica |
x_ \[Tilde]? y_:= Sqrt[x^2 + y^2]?; 3 \[Tilde]? 4 |
MuPAD? |
tilde:= proc(x, y) begin sqrt(x^2 + y^2) end_ proc: |
|
operator("~", tilde, Binary, 100): |
|
3 ~ 4; |
Octave |
|
Pari |
|
Reduce |
infix |$ procedure |(x, y); sqrt(x^2 + y^2)$ 3 | 4; |
Scilab |
|
Sumit |
|
Yacas |
|
|
Main expression |
|
|
|
operator |
11 th st nd rd operand |
List of expression operands |
Axiom7 |
|
kernels(e) . 1 |
kernels(e) |
Derive |
|
|
various8 |
DoCon? |
|
|
|
GAP |
There are no formal unevaluated expressions |
Gmp |
|
|
|
Macsyma |
part(e, 0) |
part(e, 1) |
args(e) |
Magnus |
|
|
|
Maxima |
part(e, 0) |
part(e, 1) |
args(e) |
Maple |
op(0, e) |
op(1, e) |
[op(e)]? |
Mathematica |
Head[e]? |
e[[1]]? |
ReplacePart?[e, List, 0]? |
MuPAD? |
op(e, 0) |
op(e, 1) |
[op(e)]? |
Octave |
|
|
|
Pari |
|
|
|
Reduce |
part(e, 0) |
part(e, 1) |
for i:=1:arglength(e) |
|
|
|
collect part(e, i) |
Scilab |
|
|
|
Sumit |
|
|
|
Yacas |
|
|
|
|
Print text and results |
Axiom |
output(concat(["sin(", string(0), ") = ", |
|
string(sin(0))])); |
Derive |
"sin(0)" = sin(0) |
DoCon? |
|
GAP |
Print("There is no sin, but factors(10)= ",Factors(10),
"\n") |
Gmp |
|
Macsyma |
print("sin(", 0, ") =", sin(0))$ |
Magnus |
|
Maxima |
print("sin(", 0, ") =", sin(0))$ |
Maple |
printf("sin(%a) = %a\n", 0, sin(0)): |
Mathematica |
Print[StringForm["sin(``) = ``", 0, Sin[0]]?]; |
MuPAD? |
print(Unquoted, "sin(".0.")" = sin(0)): |
Octave |
|
Pari |
|
Reduce |
write("sin(", 0, ") = ", sin(0))$ |
Scilab |
|
Sumit |
|
Yacas |
|
|
Generate FORTRAN |
Generate TeX?/LATEX |
Axiom |
outputAsFortran(e) |
outputAsTex(e) |
Derive |
[Transfer Save Fortran]? |
|
DoCon? |
|
|
GAP |
|
Print(LaTeX?(e)); |
Gmp |
|
|
Macsyma |
fortran(e)$ or gentran(eval(e))$ |
tex(e); |
Magnus |
|
|
Maxima |
fortran(e)$ or gentran(eval(e))$ |
tex(e); |
Maple |
fortran([e]?); |
latex(e); |
Mathematica |
FortranForm?[e]? |
TexForm?[e]? |
MuPAD? |
generate::fortran(e); |
generate::TeX?(e); |
Octave |
|
|
Pari |
|
|
Reduce |
on fort; e; off fort; or |
load_ package(tri)$ |
|
load_ package(gentran)$ gentran e; |
on TeX?; e; off TeX?; |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Import two space separated columns of integers from file |
Axiom |
|
Derive |
[Transfer Load daTa]? (from file.dat) |
DoCon? |
|
GAP |
|
Gmp |
|
Macsyma |
xy: read_num_data_to_matrix("file", nrows, 2)$ |
Magnus |
|
Maxima |
xy: read_num_data_to_matrix("file", nrows, 2)$ |
Maple |
xy:= readdata("file", integer, 2): |
Mathematica |
xy = ReadList?["file", Number, RecordLists -> True]? |
MuPAD? |
data := import::readdata("file") |
Octave |
|
Pari |
|
Reduce |
|
Scilab |
|
Sumit |
|
Yacas |
|
|
Export two space separated columns of integers to file7 |
Axiom |
)set output algebra "file" (creates file.spout) |
|
for i in 1..n repeat output( _ |
|
concat([string(xy(i, 1)), " ", string(xy(i, 2))]?) ) |
|
)set output algebra console |
Derive |
xy [Transfer Print Expressions File]? (creates file.prt) |
DoCon? |
|
GAP |
PrintTo?("file");for i in [1..n]? do |
|
AppendTo?("file",xy[i][1]," ",xy[i][2],"\n");od; |
Gmp |
|
Macsyma |
writefile("file")$ for i:1 thru n do |
|
print(xy[i, 1], xy[i, 2])$ closefile()$ |
Magnus |
|
Maxima |
writefile("file")$ for i:1 thru n do |
|
print(xy[i, 1]?, xy[i, 2]?)$ closefile()$ |
Maple |
writedata("file", xy); |
Mathematica |
outfile = OpenWrite?["file"]; |
|
Do[WriteString?[outfile, |
|
xy[[i, 1]], " ", xy[[i, 2]], "\n"], {i, 1, n}] |
|
Close[outfile]?; |
MuPAD? |
fprint(Unquoted, Text, "file", |
|
(xy[i, 1]?, " ", xy[i, 2], "\n") $ i = 1..n): |
Octave |
|
Pari |
|
Reduce |
out "file"; for i:=1:n do |
|
write(xy(i, 1), " ", xy(i, 2)); shut "file"; |
Scilab |
|
Sumit |
|
Sumit |
|
Yacas |
|
1.4 Mathematics and Graphics
Since
GAP aims at discrete mathematics, it does not provide much of
the calculus functionality listed in the following section.
|
e |
p |
i |
+Â¥ |
2 |
21/3 |
Axiom |
%e |
%pi |
%i |
%plusInfinity |
sqrt(2) |
2**(1/3) |
Derive |
#e |
pi |
#i |
inf |
SQRT(2) |
2^(1/3) |
DoCon? |
|
|
|
|
|
|
GAP |
|
|
E(4) |
infinity |
ER(2)8 |
|
Gmp |
|
|
|
|
|
|
Macsyma |
%e |
%pi |
%i |
inf |
sqrt(2) |
2^(1/3) |
Magnus |
|
|
|
|
|
|
Maxima |
%e |
%pi |
%i |
inf |
sqrt(2) |
2^(1/3) |
Maple |
exp(1) |
Pi |
I |
infinity |
sqrt(2) |
2^(1/3) |
Mathematica |
E |
Pi |
I |
Infinity |
Sqrt[2]? |
2^(1/3) |
MuPAD? |
E |
PI |
I |
infinity |
sqrt(2) |
2^(1/3) |
Octave |
|
|
|
|
|
|
Pari |
|
|
|
|
|
|
Reduce |
e |
pi |
i |
infinity |
sqrt(2) |
2^(1/3) |
Scilab |
|
|
|
|
|
|
Sumit |
|
|
|
|
|
|
Yacas |
|
|
|
|
|
|
|
Euler's constant |
Natural log |
Arctangent |
n! |
Axiom |
|
log(x) |
atan(x) |
factorial(n) |
Derive |
euler_ gamma |
LOG(x) |
ATAN(x) |
n! |
DoCon? |
|
|
|
|
GAP |
|
LogInt?(x,base) |
|
Factorial(n) |
Gmp |
|
|
|
|
Macsyma |
%gamma |
log(x) |
atan(x) |
n! |
Magnus |
|
|
|
|
Maxima |
%gamma |
log(x) |
atan(x) |
n! |
Maple |
gamma |
log(x) |
arctan(x) |
n! |
Mathematica |
EulerGamma? |
Log[x]? |
ArcTan?[x]? |
n! |
MuPAD? |
EULER |
ln(x) |
atan(x) |
n! |
Octave |
|
|
|
|
Pari |
|
|
|
|
Reduce |
Euler_ Gamma |
log(x) |
atan(x) |
factorial(n) |
Scilab |
|
|
|
|
Sumit |
|
|
|
|
Yacas |
|
|
|
|
|
Legendre polynomial |
Chebyshev poly. of the 11 th st nd rd kind |
Axiom |
legendreP(n, x) |
chebyshevT(n, x) |
Derive |
LEGENDRE_ P(n, x) |
CHEBYCHEV_ T(n, x) |
DoCon? |
|
|
GAP |
|
|
Gmp |
|
|
Macsyma |
legendre_ p(n, x) |
chebyshev_ t(n, x) |
Magnus |
|
|
Maxima |
legendre_ p(n, x) |
chebyshev_ t(n, x) |
Maple |
orthopoly[P](n, x) |
orthopoly[T](n, x) |
Mathematica |
LegendreP?[n, x] |
ChebyshevT?[n, x] |
MuPAD? |
orthpoly::legendre(n, x) |
orthpoly::chebyshev1(n, x) |
Octave |
|
|
Pari |
|
|
Reduce |
LegendreP?(n, x) |
ChebyshevT?(n, x) |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Fibonacci number |
Elliptic integral of the 11 th st nd rd kind |
Axiom |
fibonacci(n) |
|
Derive |
FIBONACCI(n) |
ELLIPTIC_ E(phi, k^2) |
DoCon? |
|
|
GAP |
Fibonacci(n) |
|
Gmp |
|
|
Macsyma |
fib(n) |
elliptic_ e(phi, k^2) |
Magnus |
|
|
Maxima |
fib(n) |
elliptic_ e(phi, k^2) |
Maple |
combinat[fibonacci]?(n) |
EllipticE?(sin(phi), k) |
Mathematica |
Fibonacci[n]? |
EllipticE?[phi, k^2]? |
MuPAD? |
numlib::fibonacci(n) |
|
Octave |
|
|
Pari |
|
|
Reduce |
|
EllipticE?(phi, k^2) |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
G(x) |
y(x) |
Cosine integral |
Bessel fun. (11 th st nd rd) |
Axiom |
Gamma(x) |
psi(x) |
real(Ei(%i*x)) |
besselJ(n, x) |
Derive |
GAMMA(x) |
PSI(x) |
CI(x) |
BESSEL_ J(n, x) |
DoCon? |
|
|
|
|
GAP |
|
|
|
|
Gmp |
|
|
|
|
Macsyma |
gamma(x) |
psi[0]?(x) |
cos_ int(x) |
bessel_j[n]?(x) |
Magnus |
|
|
|
|
Maxima |
gamma(x) |
psi[0](x) |
cos_ int(x) |
bessel_j[n](x) |
Maple |
GAMMA(x) |
Psi(x) |
Ci(x) |
BesselJ?(n, x) |
Mathematica |
Gamma[x] |
PolyGamma?[x] |
CosIntegral?[x]? |
BesselJ?[n, x]? |
MuPAD? |
gamma(x) |
psi(x) |
Ci(x) |
besselJ(n, x) |
Octave |
|
|
|
|
Pari |
|
|
|
|
Reduce |
Gamma(x) |
Psi(x) |
Ci(x) |
BesselJ?(n, x) |
Scilab |
|
|
|
|
Sumit |
|
|
|
|
Yacas |
|
|
|
|
|
Hypergeometric fun. 2F1(a, b; c; x) |
Dirac delta |
Unit step fun. |
Axiom |
|
|
|
Derive |
GAUSS(a, b, c, x) |
|
STEP(x) |
DoCon? |
|
|
|
GAP |
|
|
|
Gmp |
|
|
|
Macsyma |
hgfred([a, b]?, [c]?, x) |
delta(x) |
unit_ step(x)
|
Magnus |
|
|
|
Maxima |
hgfred([a, b]?, [c]?, x) |
delta(x) |
unit_ step(x)
|
Maple |
hypergeom([a, b]?, [c]?, x) |
Dirac(x) |
Heaviside(x) |
Mathematica |
HypergeometricPFQ?[{a,b},{c},x]? |
<< Calculus`DiracDelta?` |
MuPAD? |
hypergeom([a,b], [c], x) |
dirac(x) |
heaviside(x) |
Octave |
|
|
|
Pari |
|
|
|
Reduce |
hypergeometric({a, b}, {c}, x) |
|
|
Scilab |
|
|
|
Sumit |
|
|
|
Yacas |
|
|
|
|
Define |x| via a piecewise function |
Axiom |
|
Derive |
a(x):= -xCHI(-inf, x, 0) + xCHI(0, x, inf) |
DoCon? |
|
GAP |
|
Gmp |
|
Macsyma |
a(x):= -xunit_ step(-x) + xunit_ step(x)$ |
Magnus |
|
Maxima |
a(x):= -xunit_ step(-x) + xunit_ step(x)$ |
Maple |
a:= x -> piecewise(x < 0, -x, x): |
Mathematica |
<< Calculus`DiracDelta?` |
|
a[x_]:= -x*UnitStep?[-x]? + x*UnitStep?[x]? |
MuPAD? |
a:= x -> piecewise([x<0, -x]?, [x>=0, x]?) |
|
end_ proc: |
Octave |
|
Pari |
|
Reduce |
|
Scilab |
|
Sumit |
|
Yacas |
|
|
Assume x is real |
Remove that assumption |
Axiom |
|
|
Derive |
x :epsilon Real |
x:= |
DoCon? |
|
|
GAP |
|
|
Gmp |
|
|
Macsyma |
declare(x, real)$ |
remove(x, real)$ |
Magnus |
|
|
Maxima |
declare(x, real)$ |
remove(x, real)$ |
Maple |
assume(x, real); |
x:= 'x': |
Mathematica |
x/: Im[x] = 0; |
Clear[x] |
MuPAD? |
assume(x, Type::Real): |
delete x: |
Octave |
|
|
Pari |
|
|
Reduce |
|
|
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Assume 0 < x £ 1 |
Remove that assumption |
Axiom |
|
|
Derive |
x :epsilon (0, 1] |
x:= |
DoCon? |
|
|
GAP |
|
|
Gmp |
|
|
Macsyma |
assume(x > 0, x <= 1)$ |
forget(x > 0, x <= 1)$ |
Magnus |
|
|
Maxima |
assume(x > 0, x <= 1)$ |
forget(x > 0, x <= 1)$ |
Maple |
assume(x > 0); |
x:= 'x': |
|
additionally(x <= 1); |
|
Mathematica |
Assumptions -> 0 < x <= 1 8 |
|
MuPAD? |
assume(0 < x <= 1): |
delete x: |
Octave |
|
|
Pari |
|
|
Reduce |
|
|
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Basic simplification of an expression e |
Axiom |
simplify(e) or normalize(e) or complexNormalize(e) |
Derive |
e |
DoCon? |
|
GAP |
e |
Gmp |
|
Macsyma |
ratsimp(e) or radcan(e) |
Magnus |
|
Maxima |
ratsimp(e) or radcan(e) |
Maple |
simplify(e) |
Mathematica |
Simplify[e]? or FullSimplify?[e]? |
MuPAD? |
simplify(e) or normal(e) |
Octave |
|
Pari |
|
Reduce |
e |
Scilab |
|
Sumit |
|
Yacas |
|
|
Use an unknown function |
Numerically evaluate an expr. |
Axiom |
f:= operator('f); f(x) |
exp(1) :: Complex Float |
Derive |
f(x):= |
Precision:= Approximate |
|
f(x) |
APPROX(EXP(1)) |
|
|
Precision:= Exact |
DoCon? |
|
|
GAP |
|
EvalF?(123/456) |
Gmp |
|
|
Macsyma |
f(x) |
sfloat(exp(1)); |
Magnus |
|
|
Maxima |
f(x) |
sfloat(exp(1)); |
Maple |
f(x) |
evalf(exp(1)); |
Mathematica |
f[x]? |
N[Exp[1]] |
MuPAD? |
f(x) |
float(exp(1)); |
Octave |
|
|
Pari |
|
|
Reduce |
operator f; f(x) |
on rounded; exp(1); |
|
|
off rounded; |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
n modm |
Solve e º 0 modm for x |
Axiom |
rem(n, m) |
solve(e = 0 :: PrimeField?(m), x) |
Derive |
MOD(n, m) |
SOLVE_ MOD(e = 0, x, m) |
DoCon? |
|
|
GAP |
n mod m |
solve using finite fields |
Gmp |
|
|
Macsyma |
mod(n, m) |
modulus: m$ solve(e = 0, x) |
Magnus |
|
|
Maxima |
mod(n, m) |
modulus: m$ solve(e = 0, x) |
Maple |
n mod m |
msolve(e = 0, m) |
Mathematica |
Mod[n, m] |
Solve[{e == 0, Modulus == m}, x] |
MuPAD? |
n mod m |
solve(poly(e, [x]?, IntMod?(m))=0, x) |
Octave |
|
|
Pari |
|
|
Reduce |
on modular; |
load_ package(modsr)$ on modular; |
|
setmod m$ n |
setmod m$ m_solve(e = 0, x) |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Put over common denominator |
Expand into separate fractions |
Axiom |
a/b + c/d |
(ad + bc)/(b*d) :: _ |
|
|
MPOLY([a]?, FRAC POLY INT) |
Derive |
FACTOR(a/b + c/d, Trivial) |
EXPAND((ad + bc)/(b*d)) |
DoCon? |
|
|
GAP |
a/b+c/d |
|
Gmp |
|
|
Macsyma |
xthru(a/b + c/d) |
expand((ad + bc)/(b*d)) |
Magnus |
|
|
Maxima |
xthru(a/b + c/d) |
expand((ad + bc)/(b*d)) |
Maple |
normal(a/b + c/d) |
expand((ad + bc)/(b*d)) |
Mathematica |
Together[a/b + c/d] |
Apart[(ad + bc)/(b*d)]? |
MuPAD? |
normal(a/b + c/d) |
expand((ad + bc)/(b*d)) |
Octave |
|
|
Pari |
|
|
Reduce |
a/b + c/d |
on div; (ad + bc)/(b*d) |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Manipulate the root of a polynomial |
Axiom |
a:= rootOf(x2 - 2); a2 |
Derive |
|
DoCon? |
|
GAP |
x:=X(Rationals,"x"); |
|
a:=RootOfDefiningPolynomial?(AlgebraicExtension?(Rationals,x^2-2));
a^2 |
Gmp |
|
Macsyma |
algebraic:true$ tellrat(a^2 - 2)$ rat(a^2); |
Magnus |
|
Maxima |
algebraic:true$ tellrat(a^2 - 2)$ rat(a^2); |
Maple |
a:= RootOf?(x^2 - 2): simplify(a^2); |
Mathematica |
a = Root[#^2 - 2 &, 2]? a^2 |
MuPAD? |
F := Dom::AlgebraicExtension?(Dom::Rational, a^2-2): |
|
F(a)^2 |
Octave |
|
Pari |
|
Reduce |
load_ package(arnum)$ defpoly(a^2 - 2); a^2; |
Scilab |
|
Sumit |
|
Yacas |
|
|
Noncommutative multiplication |
Solve a pair of equations |
Axiom |
|
solve([eqn1, eqn2], [x, y]?) |
Derive |
x :epsilon Nonscalar |
SOLVE([eqn1, eqn2], [x, y]?) |
|
y :epsilon Nonscalar |
|
|
x . y |
|
DoCon? |
|
|
GAP |
* |
|
Gmp |
|
|
Macsyma |
x . y |
solve([eqn1, eqn2], [x, y]?) |
Magnus |
|
|
Maxima |
x . y |
solve([eqn1, eqn2], [x, y]?) |
Maple |
x &* y |
solve({eqn1, eqn2}, {x, y}) |
Mathematica |
x ** y |
Solve[{eqn1, eqn2}, {x, y}]? |
MuPAD? |
|
solve({eqn1, eqn2}, {x, y}) |
Octave |
|
|
Pari |
|
|
Reduce |
operator x, y; |
solve({eqn1, eqn2}, {x, y}) |
|
noncom x, y; |
|
|
x() * y() |
|
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Decrease/increase angles in trigonometric functions |
Axiom |
simplify(normalize(sin(2*x))) |
Derive |
Trigonometry:= Expand |
Trigonometry:= Collect |
|
sin(2*x) |
2sin(x)cos(x) |
DoCon? |
|
|
GAP |
|
|
Gmp |
|
|
Macsyma |
trigexpand(sin(2*x)) |
trigreduce(2sin(x)cos(x)) |
Magnus |
|
|
Maxima |
trigexpand(sin(2*x)) |
trigreduce(2sin(x)cos(x)) |
Maple |
expand(sin(2*x)) |
combine(2sin(x)cos(x)) |
Mathematica |
TrigExpand?[Sin[2*x]] |
TrigReduce?[2*Sin[x]*Cos[x]]? |
MuPAD? |
expand(sin(2*x)) |
combine(2sin(x)cos(x), sincos)
|
Octave |
|
|
Pari |
|
|
Reduce |
load_ package(assist)$ |
|
trigexpand(sin(2*x)) |
trigreduce(2sin(x)cos(x)) |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Gröbner basis |
Axiom |
groebner([p1, p2, ...]?) |
Derive |
|
DoCon? |
|
GAP |
|
Gmp |
|
Macsyma |
grobner([p1, p2, ...]) |
Magnus |
|
Maxima |
grobner([p1, p2, ...]) |
Maple |
Groebner[gbasis]([p1, p2, ...]?, plex(x1, x2, ...)) |
Mathematica |
GroebnerBasis?[{p1, p2, ...}, {x1, x2, ...}] |
MuPAD? |
groebner::gbasis([p1, p2, ...]) |
Octave |
|
Pari |
|
Reduce |
load_ package(groebner)$ groebner({p1, p2, ...}) |
Scilab |
|
Sumit |
|
Yacas |
|
|
Factorization of e over i = -1 |
Axiom |
factor(e, [rootOf(i**2 + 1)]) |
Derive |
FACTOR(e, Complex) |
DoCon? |
|
GAP |
Factors(GaussianIntegers?,e) |
Gmp |
|
Macsyma |
gfactor(e); or factor(e, i^2 + 1); |
Magnus |
|
Maxima |
gfactor(e); or factor(e, i^2 + 1); |
Maple |
factor(e, I); |
Mathematica |
Factor[e, Extension -> I]? |
MuPAD? |
QI:= Dom::AlgebraicExtension?(Dom::Rational, i^2 + 1); |
|
QI::name:= "QI": Factor(poly(e, QI)); |
Octave |
|
Pari |
|
Reduce |
on complex, factor; e; off complex, factor; |
Scilab |
|
Sumit |
|
Yacas |
|
|
Real part |
Convert a complex expr. to rectangular form |
Axiom |
real(f(z)) |
complexForm(f(z)) |
Derive |
RE(f(z)) |
f(z) |
DoCon? |
|
|
GAP |
(f(z)+GaloisCyc?(f(z),-1))/2 |
|
Gmp |
|
|
Macsyma |
realpart(f(z)) |
rectform(f(z)) |
Magnus |
|
|
Maxima |
realpart(f(z)) |
rectform(f(z)) |
Maple |
Re(f(z)) |
evalc(f(z)) |
Mathematica |
Re[f![z]]? |
ComplexExpand?[f[z]]? |
MuPAD? |
Re(f(z)) |
rectform(f(z)) |
Octave |
|
|
Pari |
|
|
Reduce |
repart(f(z)) |
repart(f(z)) + i*impart(f(z)) |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Matrix addition |
Matrix multiplication |
Matrix transpose |
Axiom |
A + B |
A * B |
transpose(A) |
Derive |
A + B |
A . B |
A` |
DoCon? |
|
|
|
GAP |
A + B |
A * B |
TransposedMat?(A) |
Gmp |
|
|
|
Macsyma |
A + B |
A . B |
transpose(A) |
Magnus |
|
|
|
Maxima |
A + B |
A . B |
transpose(A) |
Maple |
evalm(A + B) |
evalm(A &* B) |
linalg[transpose](A) |
Mathematica |
A + B |
A . B |
Transpose[A]? |
MuPAD? |
A + B |
A * B |
linalg::transpose(A) |
Octave |
|
|
|
Pari |
|
|
|
Reduce |
A + B |
A * B |
tp(A) |
Scilab |
|
|
|
Sumit |
|
|
|
Yacas |
|
|
|
|
Solve the matrix equation A x = b |
Axiom |
solve(A, transpose(b)) . 1 . particular :: Matrix ___ |
Derive |
|
DoCon? |
|
GAP |
SolutionMat?(TransposedMat?(A),b) |
Gmp |
|
Macsyma |
xx: genvector('x, mat_nrows(b))$ |
|
x: part(matlinsolve(A . xx = b, xx), 1, 2) |
Magnus |
|
Maxima |
xx: genvector('x, mat_nrows(b))$ |
|
x: part(matlinsolve(A . xx = b, xx), 1, 2) |
Maple |
x:= linalg[linsolve]?(A, b) |
Mathematica |
x = LinearSolve?[A, b]? |
MuPAD? |
matlinsolve(A, b) |
Octave |
|
Pari |
|
Reduce |
|
Scilab |
|
Sumit |
|
Yacas |
|
|
Sum: åi = 1n f(i) |
Product: Õi = 1n f(i) |
Axiom |
sum(f(i), i = 1..n) |
product(f(i), i = 1..n) |
Derive |
SUM(f(i), i, 1, n) |
PRODUCT(f(i), i, 1, n) |
DoCon? |
|
|
GAP |
Sum([1..n]?,f) |
Product([1..n]?,f) |
Gmp |
|
|
Macsyma |
closedform( |
closedform( |
|
sum(f(i), i, 1, n)) |
product(f(i), i, 1, n)) |
Magnus |
|
|
Maxima |
closedform( |
closedform( |
|
sum(f(i), i, 1, n)) |
product(f(i), i, 1, n)) |
Maple |
sum(f(i), i = 1..n) |
product(f(i), i = 1..n) |
Mathematica |
Sum[f![i]?, {i, 1, n}] |
Product[f[i], {i, 1, n}] |
MuPAD? |
sum(f(i), i = 1..n) |
product(f(i), i = 1..n) |
Octave |
|
|
Pari |
|
|
Reduce |
sum(f(i), i, 1, n) |
prod(f(i), i, 1, n) |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Limit: limx ® 0- f(x) |
Taylor/Laurent/etc. series |
Axiom |
limit(f(x), x = 0, "left") |
series(f(x), x = 0, 3) |
Derive |
LIM(f(x), x, 0, -1) |
TAYLOR(f(x), x, 0, 3) |
DoCon? |
|
|
GAP |
|
|
Gmp |
|
|
Macsyma |
limit(f(x), x, 0, minus) |
taylor(f(x), x, 0, 3) |
Magnus |
|
|
Maxima |
limit(f(x), x, 0, minus) |
taylor(f(x), x, 0, 3) |
Maple |
limit(f(x), x = 0, left) |
series(f(x), x = 0, 4) |
Mathematica |
Limit[f![x]?, x->0, Direction->1] |
Series[f![x]?,{x, 0, 3}] |
MuPAD? |
limit(f(x), x = 0, Left) |
series(f(x), x = 0, 4) |
Octave |
|
|
Pari |
|
|
Reduce |
limit!-(f(x), x, 0) |
taylor(f(x), x, 0, 3) |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Differentiate: d3 f(x, y)/dx dy2 |
Integrate: ò01 f(x) dx |
Axiom |
D(f(x, y), [x, y], [1, 2]) |
integrate(f(x), x = 0..1) |
Derive |
DIF(DIF(f(x, y), x), y, 2) |
INT(f(x), x, 0, 1) |
DoCon? |
|
|
GAP |
|
|
Gmp |
|
|
Macsyma |
diff(f(x, y), x, 1, y, 2) |
integrate(f(x), x, 0, 1) |
Magnus |
|
|
Maxima |
diff(f(x, y), x, 1, y, 2) |
integrate(f(x), x, 0, 1) |
Maple |
diff(f(x, y), x, y$2) |
int(f(x), x = 0..1) |
Mathematica |
D[f![x, y]?, x, {y, 2}] |
Integrate[f[x]?, {x, 0, 1}] |
MuPAD? |
diff(f(x, y), x, y$2) |
int(f(x), x = 0..1) |
Octave |
|
|
Pari |
|
|
Reduce |
df(f(x, y), x, y, 2) |
int(f(x), x, 0, 1) |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Laplace transform |
Inverse Laplace transform |
Axiom |
laplace(e, t, s) |
inverseLaplace(e, s, t) |
Derive |
LAPLACE(e, t, s) |
|
DoCon? |
|
|
GAP |
|
|
Gmp |
|
|
Macsyma |
laplace(e, t, s) |
ilt(e, s, t) |
Magnus |
|
|
Maxima |
laplace(e, t, s) |
ilt(e, s, t) |
Maple |
inttrans[laplace](e,t,s) |
inttrans[invlaplace](e,s,t) |
Mathematica |
<< Calculus`LaplaceTransform?` |
|
LaplaceTransform?[e, t, s] |
InverseLaplaceTransform?[e,s,t]
|
MuPAD? |
transform::laplace(e,t,s) |
transform::invlaplace(e, s, t) |
Octave |
|
|
Pari |
|
|
Reduce |
load package(laplace)$ load package(defint)$
|
|
laplace(e, t, s) |
invlap(e, t, s) |
Scilab |
|
|
Sumit |
|
|
Yacas |
|
|
|
Solve an ODE (with the initial condition y'(0) = 1) |
Axiom |
solve(eqn, y, x) |
Derive |
APPLY IC(RHS(ODE(eqn, x, y, y)), [x, 0]?, [y, 1]?) |
DoCon? |
|
GAP |
|
Gmp |
|
Macsyma |
ode_ibc(ode(eqn, y(x), x), x = 0, diff(y(x), x) = 1) |
Magnus |
|
Maxima |
ode_ibc(ode(eqn, y(x), x), x = 0, diff(y(x), x) = 1) |
Maple |
dsolve({eqn, D(y)(0) = 1}, y(x)) |
Mathematica |
DSolve?[{eqn, y'[0]? == 1}, y[x]?, x] |
MuPAD? |
solve(ode({eqn, y'(0) = 1}, y(x))) |
Octave |
|
Pari |
|
Reduce |
odesolve(eqn, y(x), x) |
Scilab |
|
Sumit |
|
Yacas |
|
|
Define the differential operator L = Dx + I and apply it to sinx |
Axiom |
DD : LODO(Expression Integer, e +-> D(e, x)) := D(); |
|
L:= DD + 1; L(sin(x)) |
Derive |
|
DoCon? |
|
GAP |
|
Gmp |
|
Macsyma |
load(opalg)$ L: (diffop(x) - 1)$ L(sin(x)); |
Magnus |
|
Maxima |
load(opalg)$ L: (diffop(x) - 1)$ L(sin(x)); |
Maple |
id:= x -> x: L:= (D + id): L(sin)(x); |
Mathematica |
L = D[#, x]& + Identity; Through[L[Sin[x]]?] |
MuPAD? |
L:= (D + id): L(sin)(x); |
Octave |
|
Pari |
|
Reduce |
|
Scilab |
|
Sumit |
|
Yacas |
|
|
2D plot of two separate curves overlayed |
Axiom |
draw(x, x = 0..1); draw(acsch(x), x = 0..1); |
Derive |
[Plot Overlay] |
DoCon? |
|
GAP |
|
Gmp |
|
Macsyma |
plot(x, x, 0, 1)$ plot(acsch(x), x, 0, 1)$ |
Magnus |
|
Maxima |
plot(x, x, 0, 1)$ plot(acsch(x), x, 0, 1)$ |
Maple |
plot({x, arccsch(x)}, x = 0..1): |
Mathematica |
Plot[{x, ArcCsch[x]}, {x, 0, 1}]; |
MuPAD? |
plotfunc2d(x, arcsech(x), x = 0..1): |
Octave |
|
Pari |
|
Reduce |
load_ package(gnuplot)$ plot(y = x, x = (0 .. 1))$ |
|
plot(y = acsch(x), x = (0 .. 1))$ |
Scilab |
|
Sumit |
|
Yacas |
|
|
Simple 3D plotting |
Axiom |
draw(abs(x*y), x = 0..1, y = 0..1); |
Derive |
[Plot Overlay] |
DoCon? |
|
GAP |
|
Gmp |
|
Macsyma |
plot3d(abs(x*y), x, 0, 1, y, 0, 1)$ |
Magnus |
|
Maxima |
plot3d(abs(x*y), x, 0, 1, y, 0, 1)$ |
Maple |
plot3d(abs(x*y), x = 0..1, y = 0..1): |
Mathematica |
Plot3D[Abs![x*y]?, {x, 0, 1}, {y, 0, 1}]; |
MuPAD? |
plotfunc3d(abs(x*y), x = 0..1, y = 0..1): |
Octave |
|
Pari |
|
Reduce |
load_ package(gnuplot)$ |
|
plot(z = abs(x*y), x = (0 .. 1), y = (0 .. 1))$ |
Scilab |
|
Sumit |
|
Yacas |
|
- 1
- Only if the pattern is not a keyword and then the matches are
simplistic.
- 6
- Variables can be assigned to generators of a suitable free
object, for example x:=X(Rationals,"x"); or f:=FreeGroup?(2);x:=f.1;.
- 6
- procedure xapply(f, lst); lisp(f . cdr(lst))$
- 6
- TERMS, FACTORS, NUMERATOR, LHS, etc.
- 7
- The following commands work only on expressions that consist of a
single level (e.g., x + y + z but not a/b + c/d).
- 7
- Some editing of file will be necessary for all systems but
Maple and Mathematica.
- 8
- ER represents special cyclotomic numbers and is not a
root function.
- 8
- This is an option for Integrate.
This document was translated from LATEX by
HEVEA.
Remarks concerning GAP --Christian Sievers, Tue, 23 May 2006 11:39:26 -0500 reply
While the given GAP command does generate the list [1, 2, ..., n]?, the other examples seem to generate the list
[f(1), f(2), ..., f(n)]?. This can be done with:
List([1..n],f);
I'm not sure what Apply a fun. to a list of its args is supposed to mean, but my answer to that request is:
CallFuncList(f,l);
A groebner basis can be computed with:
GroebnerBasis([p1,p2,...],MonomialLexOrdering());
macsyma dead??? --unknown, Sat, 17 Jun 2006 12:42:22 -0500 reply
Hi
I think it is still alive somehow,
see for example:
http://maxima.sourceforge.net
Bye
Other systems? --znmeb, Sat, 17 Jun 2006 19:38:19 -0500 reply
Have we ruled out "special purpose" CAS packages, such as Ginac and Singular?
Re: Have we ruled out "special purpose" CAS packages? --Bill Page, Mon, 19 Jun 2006 11:02:02 -0500 reply
Not at all. Please feel free to add missing information.
Dirac delta and piecewise --konstantin, Sun, 17 Sep 2006 13:33:02 -0500 reply
Dirak delta and piecewise was implemented as built-in in Mathematica: use DiracDelta?[x]? and Piecewise[{{-x,x<0},{x,x>0}}]?
Pamphlet/LaTeX? version of this page --Cliff Yapp, Sun, 17 Sep 2006 22:06:37 -0500 reply
(Note that the pamphlet form of this document can be found here: [Rosetta]?