Available functions
Here is a list of the functions currently implemented in the GEM Library. The first table shows static functions which can be called without reference to a gem/sgem object. These functions allow to create a high precision matrix or to adjust some library parameters.
function | full support | sparse support | remarks |
---|---|---|---|
gem | ✔ | ✔ | gem object constructor |
sgem | ✔ | ✔ | sparse gem object constructor |
gemify | ✔ | ✔ | converts a matrix to gem or sgem object, preserving its sparsity |
gem.rand / sgem.rand | ✔ | ✔ | generates high precision random numbers |
gem.randn / sgem.randn | ✔ | ✔ | generates high precision random numbers following a gaussian distribution |
gem.rng | ✔ | ✔ | gem.rand random seed |
gem.workingPrecision | ✔ | ✔ | sets the working precision of the library |
gem.displayPrecision | ✔ | ✔ | sets the precision used when displaying gem and sgem objects |
gem.sparseLikeMatlab | ✗ | ✔ | sets whether functions not preserving zeros should be allowed to produce sparse matrices |
make | ✔ | ✔ | compiles the library |
List of methods:
The following function can be applied to gem/sgem objects directly.
methods | full support | sparse support | remarks |
---|---|---|---|
abs | ✔ | ✔ | |
all | ✔ | ✔ | |
and | ✔ | ✔ | |
any | ✔ | ✔ | |
acos | ✔ | ✔ | |
acot | ✔ | ✔ | |
acsc | ✔ | ✔ | |
and | ✔ | ✔ | |
angle | ✔ | ✔ | |
asec | ✔ | ✔ | |
asin | ✔ | ✔ | |
atan | ✔ | ✔ | |
cat | ✔ | ✔ | |
cbrt | ✔ | ✔ | |
clean | ✗ | ✔ | |
ceil | ✔ | ✔ | |
colon | ✔ | ✔ | |
complex | ✔ | ✔ | |
cond | ✔ | ✔ | |
conj | ✔ | ✔ | |
cos | ✔ | ✔ | |
cot | ✔ | ✔ | |
csc | ✔ | ✔ | |
ctranspose | ✔ | ✔ | |
diag | ✔ | ✔ | |
disp | ✔ | ✔ | |
display | ✔ | ✔ | |
diff | ✔ | ✔ | |
double | ✔ | ✔ | |
eig | ✔ | ✗ | |
eigs | ✔ | ✔ | |
eps | ✔ | ✔ | |
end | ✔ | ✔ | |
eq | ✔ | ✔ | |
exp | ✔ | ✔ | |
find | ✔ | ✔ | |
fix | ✔ | ✔ | |
floor | ✔ | ✔ | |
full | ✔ | ✔ | |
ge | ✔ | ✔ | |
gt | ✔ | ✔ | |
horzcat | ✔ | ✔ | |
imag | ✔ | ✔ | |
inv | ✔ | ✔ | |
isempty | ✔ | ✔ | |
isequal | ✔ | ✔ | |
isequaln | ✔ | ✔ | |
isfinite | ✔ | ✔ | |
isfloat | ✔ | ✔ | |
ishermitian | ✔ | ✔ | |
isinf | ✔ | ✔ | |
isinteger | ✔ | ✔ | |
isnan | ✔ | ✔ | |
isnumeric | ✔ | ✔ | |
isreal | ✔ | ✔ | |
issorted | ✔ | ✔ | |
issparse | ✔ | ✔ | |
issymmetric | ✔ | ✔ | |
kron | ✔ | ✔ | supports more than 2 inputs, as in kron(A,B,C) or kron({A,B,C}) |
ldivide | ✔ | ✔ | |
le | ✔ | ✔ | |
length | ✔ | ✔ | |
loadobj | ✔ | ✔ | |
log | ✔ | ✔ | |
log10 | ✔ | ✔ | |
log2 | ✔ | ✔ | |
logical | ✔ | ✔ | |
lt | ✔ | ✔ | |
max | ✔ | ✔ | |
min | ✔ | ✔ | |
minus | ✔ | ✔ | |
mldivide | ✔ | ✔ | |
mod | ✔ | ✔ | |
mpower | ✔ | ✔ | supports two scalars, or matrices with +/-1 exponent |
mrdivide | ✔ | ✔ | |
mtimes | ✔ | ✔ | |
ne | ✔ | ✔ | |
nnz | ✔ | ✔ | |
nonzeros | ✔ | ✔ | |
norm | ✔ | ✔ | |
not | ✔ | ✔ | |
null | ✔ | ✗ | |
numel | ✔ | ✔ | |
num2str | ✔ | ✔ | through matlab’s implementation and sprintf |
or | ✔ | ✔ | |
pinv | ✔ | ✗ | through matlab’s implementation |
plot | ✔ | ✔ | |
plus | ✔ | ✔ | |
power | ✔ | ✔ | |
precision | ✔ | ✔ | |
prod | ✔ | ✔ | |
rank | ✔ | ✔ | |
rdivide | ✔ | ✔ | |
real | ✔ | ✔ | |
reshape | ✔ | ✔ | |
round | ✔ | ✔ | |
saveobj | ✔ | ✔ | |
sec | ✔ | ✔ | |
sign | ✔ | ✔ | |
sin | ✔ | ✔ | |
size | ✔ | ✔ | |
sort | ✔ | ✔ | |
sortrows | ✔ | ✔ | through matlab’s implementation |
sortrowsc | ✔ | ✗ | |
sparse | ✔ | ✔ | |
sprintf | ✔ | ✔ | currently only supports a few digits of precision; use toStrings to extract the full precision in string format |
sqrt | ✔ | ✔ | |
subsasgn | ✔ | ✔ | |
subsref | ✔ | ✔ | |
sum | ✔ | ✔ | |
svd | ✔ | ✗ | |
svds | ✔ | ✔ | |
tan | ✔ | ✔ | |
times | ✔ | ✔ | |
toStrings | ✔ | ✔ | |
transpose | ✔ | ✔ | |
uminus | ✔ | ✔ | |
unique | ✔ | ✔ | through matlab’s implementation |
uplus | ✔ | ✔ | |
vertcat | ✔ | ✔ | |
xor | ✔ | ✔ |