The separator, just evaluates both
a
and
b
,
but returns only the result of
b
.
The assignment operator. This assigns b
to
a
(a
must be a valid lvalue) (note however that this operator
may be translated to == if used in a place where boolean
expression is expected)
The assignment operator. Assigns b
to
a
(a
must be a valid lvalue). This is
different from = because it never gets translated to a
==.
Absolute value or modulus (if a
is a complex number).
See
Mathworld for more information.
Exponentiation, raises a
to the b
th power.
Element by element exponentiation. Raise each element of a matrix
a
to the b
th power. Or if
b
is a matrix of the same size as
a
, then do the operation element by element.
If a
is a number and b
is a
matrix then it creates matrix of the same size as
b
with a
raised to all the
different powers in b
.
Addition. Adds two numbers, matrices, functions or strings. If
you add a string to anything the result will just be a string.
Subtraction. Subtract two numbers, matrices or functions.
Multiplication. This is the normal matrix multiplication.
Element by element multiplication if a
and
b
are matrices.
Division.
Element by element division.
Back division. That is this is the same as b/a.
Element by element back division.
The mod operator. This does not turn on the modular mode, but
just returns the remainder of a/b.
Element by element the mod operator. Returns the remainder
after element by element integer a./b.
Modular evaluation operator. The expression a
is evaluated modulo b
. See the Section called Modular Evaluation.
Some functions and operators behave differently modulo an integer.
Factorial operator. This is like
1*...*(n-2)*(n-1)*n.
Double factorial operator. This is like
1*...*(n-4)*(n-2)*n.
Equality operator
(returns true
or false
).
Inequality operator,
returns true
if a
does not
equal b
else returns false
.
Alternative inequality operator,
returns true
if a
does not
equal b
else returns false
.
Less than or equal operator,
returns true
if a
is
less than or equal to
b
else returns false
.
Greater than or equal operator,
returns true
if a
is
greater than or equal to
b
else returns false
.
Comparison operator. If a
is equal to
b
it returns 0, if a
is less
than b
it returns -1 and if
a
is greater than b
it
returns 1.
Logical and.
Logical or.
Logical xor.
Logical not.
Negation operator.
Variable referencing (to pass a reference to something).
See the Section called References in the Chapter called Programming with GEL.
Variable dereferencing (to access a referenced varible).
See the Section called References in the Chapter called Programming with GEL.
Matrix conjugate transpose.
Matrix transpose, does not conjugate the entries.
Get element of a matrix in row b
and column
c
. If b
,
c
are vectors, then this gets the corresponding
rows columns or submatrices.
Get row of a matrix (or rows if b
is a vector).
Same as above.
Get column of a matrix (or columns if c
is a
vector).
Same as above.
Get an element from a matrix treating it as a vector. This will
traverse the matrix row-wise.
Build a vector from a
to b
(or specify a row, column region for the @ operator). For example to get rows 2 to 4 of matrix A
we could do
as 2:4 will return a vector
[2,3,4].
Build a vector from a
to c
with b
as a step. That is for example
genius> 1:2:9
=
`[1, 3, 5, 7, 9]
|
Make a imaginary number (multiply a
by the
imaginary). Note that normally the number i
is
written as 1i. So the above is equal to
Quote an identifier so that it doesn't get evaluated. Or
quote a matrix so that it doesn't get expanded.
Swap value of a
with the value
of b
. Currently does not operate
on ranges of matrix elements.
It returns null
.
Available from version 1.0.13.
Increment the variable a
by 1. If
a
is a matrix, then increment each element.
This is equivalent to a=a+1, but
it is somewhat faster. It returns null
.
Available from version 1.0.13.
Increment the variable a
by b
. If
a
is a matrix, then increment each element.
This is equivalent to a=a+b, but
it is somewhat faster. It returns null
.
Available from version 1.0.13.