gnome-genius for graphical. # comment Line value, which is echoed, is the last expression value. Since ; delimits expressions, don't end line with ; or you will have added an explicit empty expression at the end. Don't know why this doesn't work: load "tst.gel"; 3 = means either := (assignment) or == depending on context. Use := or == to make behavior explicit. Ans like shell $? Logarithms general: log(x, b) base e: ln(x) = log(x) GOTCHA! For some damned reason he does not use log10=log! base 10: log10(x) = log(x, 10) MATRIXES Indexes are 1-based not 0-based Matrix: [r1c1, r1c2, r1c3; r2c1, r2c2, r2c3] OR: [r1c1, r1c2, r1c3 r2c1, r2c2, r2c3] @ element operator. m@(2,3) == r2c3 one column or row. m@(2,) == [r2c1; r2c2; r2c3] : column or row range. m@(,2:3) == m@(:,2:3) = [r1c2, r1c3; r2c2, r2c3] I.e. : == "" means all (can't use this for all params) non-specified element values set to 0 m.' Transpose m ComplexConjugate + Transpose .X operations generally do simple element-by-element operations a.o.t. matrix-specific operations. det(m) Determinate m^-1 Inverse matrix IMAGINARY/COMPLEX Numbers Number+i with no intervening space is how you specify imaginary component. Plain "i" would refer to a variable "i" therefore for one i you must code "1i". ComplexConjugate(n) POLYNOMIALS. Only support one poly variable. polyFn = PolyToFunction([a,b,c], "y") // Var defaults to "x" Be aware of modular mode, which I guess applies modular operation to all sub-steps. `X quote (escape) an identifier or matrix "help x" very useful. If used in graphical mode, you also get a nice graphical help browser window. # for comments, but they do not work inside of (...) At least interactively, or when a program tab is Run, \n evaluates then displays current Ans ; just evaluates except that at end of block ==> ; null Operators: http://www.jirka.org/genius-documentation/x583.html For unknown reason, "load"ed programs (unless Run from a tab) do not display Ans as normal. Does not have shortcut self-operators like +=, -= *= /=. Grouping. I guess (...) can group blocks? . == null nulls display as nothing (do not display) Token-completion seems to require two TAB presses for me. ? ASSIGNMENT Use ":=" to distinguish from context-specific "=" (like after "if"). Fractions entered as integers are preserved in that form. Converting from integers to reals: * 1.0 Converting from reals to integers: ? Converting * to strings: string(x) Complexes: 4 + 3i When use in expressions must often specify precedence 3 * (4 + 3i) Booleans 0 == false. All other values == true. Strings double-quote Display with the double-quotes. \escapes work as expected. Logical operators and, or, xor, ==, etc. Not strictly binary because this works: 1