\documentclass[11pt,twocolumn]{article}
\usepackage{graphicx}
\usepackage{epstopdf}
\usepackage{alltt}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{stmaryrd}
\usepackage{hyperref}

\hypersetup{colorlinks=true}

\textheight = 10.5 in
\linewidth = 8.0in
\oddsidemargin = 0.0 in
\evensidemargin = 0.0 in
\marginparwidth=0.0in
\marginparsep=0.0in
\topmargin = 0.0 in
\headheight = 0.0 in
\headsep = 0.0 in
\parskip = 1pt
\parindent = 0.0in

\setlength{\hoffset}{-24pt}
\setlength{\voffset}{-50pt}
\newcommand{\ttnrbf}[1]{\textnormal{\textbf{#1}}}
\newcommand{\ttitbf}[1]{\textnormal{\textbf{#1}}}
\newcommand{\ttit}[1]{\textit{#1}}
\newcommand{\sSecBox}[1]{\begin{minipage}{3in}\begin{alltt}{\small\textrm{\textbf{#1}}}}
%\newcommand{\sSecBox}[1]{\begin{minipage}{3in}\begin{alltt}{\small\textrm{\hrule\textbf{#1}}}}
%\newcommand{\eSecBox}{\end{alltt}\end{minipage}}
\newcommand{\eSecBox}{\end{alltt}\end{minipage}\rule{0pt}{1pt}\hrule}

\newcommand{\Ex}{\makebox[0ex]{\(\cal{E}\)}{\scshape{x}}\ttnrbf{:}}

\newcommand{\p}{\underline{p}}
\newcommand{\bnud}{\rule{2pt}{0pt}}

\newcommand{\apow}[2]{${#1}^{#2}$}

\newcommand{\aVal}{\ttit{value}}
\newcommand{\aVec}{\ttit{vector}}
\newcommand{\aArr}{\ttit{array}}
\newcommand{\aFunc}{\ttit{func}}
\newcommand{\aPred}{\ttit{pred}}
\newcommand{\aExpr}{\ttit{expr}}
\newcommand{\aInt}{\ttit{n}}
\newcommand{\aString}{\ttit{string}}
\newcommand{\aVar}{\ttit{var}}
\newcommand{\aMatrix}{\ttit{matrix}}
\newcommand{\aList}{\ttit{list}}
\newcommand{\aCommand}{\ttit{command}}
\newcommand{\aPoly}{\ttit{poly}}
\newcommand{\aBlock}{\ttit{block}}
\newcommand{\aChar}{\ttit{char}}

\newcommand{\nInt}[1]{\(n_{\mathrm{#1}}\)}
\newcommand{\nVal}[1]{\(value_{\mathrm{#1}}\)}
\newcommand{\nVec}[1]{\(vector_{\mathrm{#1}}\)}
\newcommand{\nArr}[1]{\(array_{\mathrm{#1}}\)}
\newcommand{\nList}[1]{\(list_{\mathrm{#1}}\)}
\newcommand{\nBlock}[1]{\(block_{\mathrm{#1}}\)}
\newcommand{\nPoly}[1]{\(poly_{\mathrm{#1}}\)}
\newcommand{\nExpr}[1]{\(expr_{\mathrm{#1}}\)}
\newcommand{\nFunc}[1]{\(func_{\mathrm{#1}}\)}
\newcommand{\nString}[1]{\(string_{\mathrm{#1}}\)}
\newcommand{\nChar}[1]{\(char_{\mathrm{#1}}\)}
\newcommand{\nVar}[1]{\(var_{\mathrm{#1}}\)}
\newcommand{\nPred}[1]{\(pred_{\mathrm{#1}}\)}

\newcommand{\argOpt}[1]{\(\llbracket\){#1}\(\rrbracket\)}
\newcommand{\argReq}[1]{\(\ll\){#1}\(\gg\)}
\newcommand{\argOr}{\(\parallel\)}

%\newcommand{\blt}{\(\bullet\)}
\newcommand{\blt}{\makebox[2ex]{\(\bullet\)}}
\newcommand{\bsp}{\makebox[2ex]{}}

\newcommand{\srb}[2]{\parbox[t]{#1}{#2}\rule{5pt}{0pt}}

\begin{document}

\pagestyle{empty}

\fbox{{\parbox[b]{3in}{\huge \bf Maxima \\ \tiny \copyright 2010-2016 Mitch Richling \url{https://www.mitchr.me}  \\ Last Updated 2016-07-09}}}
\tiny

\sSecBox{Interaction \& Help}
\srb{100pt}{\blt End a command                                       }; (Use $ to suppress output)
\srb{100pt}{\blt Previous or \aInt-th result               }%   %th(\aInt)
\srb{100pt}{\blt numeric evaluateion                                 }\aExpr,numer
\srb{100pt}{\blt Quit Maxima                                         }quit()
\srb{100pt}{\blt Command info \& Examples                            }describe(\aCommand)  example(\aCommand)
\srb{100pt}{\blt Help search (exact or fuzzy)                    }? \aCommand    ?? \aCommand
\eSecBox

\sSecBox{Input and Output}
\srb{120pt}{\blt loading library                        }load(<lib-name>)
\srb{120pt}{\blt saving expressions to a file           }save(\aString,\nExpr{1},...)
\srb{120pt}{\blt loading saved maxima session           }loadfile(\aString)
\srb{120pt}{\blt Print expression                       }print
\srb{120pt}{\blt \TeX and FORTRAN output                }tex fortran
\srb{120pt}{\blt executing a system command             }system(\aString)
\eSecBox

\sSecBox{Variables for Customization}
\srb{120pt}{\blt Setting bfloat precision               }fpprec fpprintprec
\srb{120pt}{\blt Interactive printing                   }display2d linel stardisp
\eSecBox

\sSecBox{Constants}
\srb{120pt}{\blt real positive/negative infinity        }inf minf
\srb{120pt}{\blt Pi, e, and imaginary unit              }%pi %e %i
\srb{120pt}{\blt boolean constants                      }true false
\eSecBox

\sSecBox{Operators}
\srb{120pt}{\blt Basic arithmatic                 }\srb{40pt}{+ - * / ^}
\srb{120pt}{\blt Noncommutative Product/Exponent  }\srb{40pt}{. ^^     }\Ex A^^-1 . A = I
\srb{120pt}{\blt factorial                        }\srb{40pt}{!        }
\srb{120pt}{\blt equality \& not equal            }\srb{40pt}{= #        }
\srb{120pt}{\blt inequalities                     }\srb{40pt}{< > >= <=}
\srb{120pt}{\blt logical operators                }\srb{40pt}{and or no}
\eSecBox

\sSecBox{Language Constructs}
\srb{60pt}{\blt block             }block(\nExpr{1},..,return(\aVal))
\srb{60pt}{\blt for-loop          }for \aVar:\nVal{1} thru \nVal{2} \argOpt{step \nVal{3}} do \aBlock
\srb{60pt}{\blt while-loop        }for \aVar:\aVal while \aExpr do \aBlock
\srb{60pt}{\blt if-then-else      }if \aExpr then \nBlock{1} else \nBlock{2}
\srb{60pt}{\blt assignment        }\srb{40pt}{:        }\Ex a : 10;
\srb{60pt}{\blt define function   }\srb{40pt}{:=       }\Ex f(x) := x * x;
\srb{60pt}{\blt define function   }f(x):=block(\nExpr{1},..,return(\aExpr))
\srb{60pt}{\blt lambda expr       }lambda([\nVar{1},...], \aExpr)
\eSecBox

\sSecBox{Series}
\srb{120pt}{\blt Compute powerseries                    }powerseries(\aExpr,\aVar,<point>)
\srb{120pt}{\blt Compute truncated taylor series        }taylor(\aExpr,\aVar,<point>,<pow>)
\eSecBox

\sSecBox{Basic functions}
\srb{110pt}{\blt absolute value                         }abs
\srb{110pt}{\blt Check for even or odd                  }evenp, oddp
\srb{110pt}{\blt Check for numeric type                 }integerp bfloatp 
\srb{110pt}{\blt Normal \& integer square root          }sqrt isqrt
\srb{110pt}{\blt max \& min (2 or more args)            }max, min
\srb{110pt}{\blt GCD (2 or more args)                   }gcd
\srb{110pt}{\blt convert to float/bigfloat              }float bfloat
\srb{110pt}{\blt rounding numbers                       }round truncate floor ceiling
\srb{110pt}{\blt numerator and denominator              }num denom
\srb{110pt}{\blt real and imaginary parts               }realpart imagpart
\srb{110pt}{\blt signum                                 }signum
\srb{110pt}{\blt complex natural logarithm              }plog
\srb{110pt}{\blt natural log and exponential            }log exp
\srb{110pt}{\blt Trigononumetric                        }sin asin cos acos tan atan atan2
\srb{110pt}{\blt Hypertrigononumetric                   }sinh asinh cosh acosh tanh atanh
\srb{110pt}{\blt division remainder                     }mod(\nExpr{1},\nExpr{2})
\srb{110pt}{\blt binomial coefficient                   }binomial(\nExpr{1},\nExpr{2})
\srb{110pt}{\blt Product                                }product(\aExpr,\aVar,\nVal{from},\nVal{to})
\srb{110pt}{\blt Sum                                    }sum(\aExpr,\aVar,\nVal{from},\nVal{to})
\eSecBox

\sSecBox{Working with expressions}
\srb{100pt}{\blt Add assumption                                      }assume(\aPred{1},...)
\srb{100pt}{\blt Add functional dependency                           }depends(\nVar{y}, \nVar{x})
\srb{100pt}{\blt Declare variables \(\mathbb{R}\) or \(\mathbb{C}\)  }declare([\nVar{1},...],complex,\aVar,real)
\srb{130pt}{\blt substitute \nExpr{sub} for \aVar in \aExpr     }subst(\nExpr{sub},\aVar,\aExpr)
\srb{130pt}{\bsp                                                }subst(\aExpr, \aVar=\nExpr{sub})
\srb{130pt}{\bsp    \aList looks like [\nVar{1}=\nExpr{1},...]  }subst(\aList,\aExpr)
\srb{130pt}{\blt combine terms over common denominator          }xthru(\aExpr)
\srb{130pt}{\blt Factor variables out of \aExpr                 }factorout (\aExpr, \nVar{1}, ...))
\srb{130pt}{\blt expand expressions                             }expand(\aExpr) trigexpand(\aExpr)
\srb{130pt}{\blt factor an expression or integer                }factor(\aExpr)
\srb{130pt}{\blt Convert to canonical rational form             }rat(\aExpr) trigrat(\aExpr)
\srb{130pt}{\blt Trigonumeric expressions                       }trigreduce(\aExpr) trigsimp(\aExpr) 
\srb{130pt}{\blt Right \& Left Hand Side                        }rhs(\aExpr) \& lhs(\aExpr)
\srb{130pt}{\blt EXPLICIT coefficient of \apow{\aVar}{\aInt}    }coeff(\aExpr, \aVar, \aInt)
\srb{130pt}{\blt Highest EXPLICIT exponent of \aVar             }hipow(\aExpr, \aVar)
\eSecBox

\sSecBox{Lists}
\srb{80pt}{\blt create list                  }\srb{90pt}{[\nExpr{1},..]                                   }                             
\srb{80pt}{\blt create copy of list          }\srb{90pt}{copylist(\aList)                                 }
\srb{80pt}{\blt gets the ith element         }\srb{90pt}{\aList[i]                                        }
\srb{80pt}{\blt get named elements           }\srb{90pt}{first second ... ninth tenth last                }
\srb{80pt}{\blt checks membership            }\srb{90pt}{member(\aExpr, \aList)                           }
\srb{80pt}{\blt concatenates lists           }\srb{90pt}{append(\nList{1}, \nList{2})                     }
\srb{80pt}{\blt Length of list               }\srb{90pt}{length(\aList)                                   }
\srb{80pt}{\blt sort list                    }\srb{90pt}{sort(\aList), sort(\aList,\aPred)                }
\srb{80pt}{\blt reverse list                 }\srb{90pt}{reverse(\aList)                                  }
\srb{80pt}{\blt sublist (LISP find_if)       }\srb{90pt}{sublist(\aList, \aPred)                          }
\srb{80pt}{\blt Operate element wise         }\srb{90pt}{+ - * / :                                        }
\srb{80pt}{\blt Map func to elements         }\srb{90pt}{map(\aFunc, \nList{1},...)                       }
\srb{80pt}{\blt Reduce via binary op         }\srb{70pt}{xreduce(\aString, \nList{1})                     }\Ex xreduce("*", [1,2]);
\srb{80pt}{\blt Sum over list                }\srb{90pt}{lsum(\aExpr,\aVar,\aList)                        }
\srb{80pt}{\blt Generate list expr           }\srb{90pt}{makelist(\aExpr, \aVar\argReq{,\nInt{beg},\nInt{end}\argOr,\aList})                  }   
\eSecBox

\sSecBox{Strings And Characters}
\srb{100pt}{\blt create string                        }"..."
\srb{100pt}{\blt create character                     }"." -- i.e. like a 1 element string
\srb{100pt}{\blt list of characters in string         }charlist(\aString)
\srb{100pt}{\blt substring                            }substring(\aString, \nInt{beg}\argOpt{,\nInt{end}})
\srb{100pt}{\blt String by repeating char             }smake(\aInt, \aChar)
\srb{100pt}{\blt Convert expression to string         }string(\aExpr)
\srb{100pt}{\blt Convert string to expression         }eval_string(\aString)
\srb{100pt}{\blt Display strings with quotes          }stringdisp
\eSecBox

\sSecBox{Matrices and Linear Algebra}
\srb{120pt}{\blt Create matrix (args become rows)              }matrix(\nList{1},...)
\srb{120pt}{\blt Create \nInt{r}{x}\nInt{c} zero matrix        }zeromatrix (\nInt{r}, \nInt{c})
\srb{120pt}{\blt Create \aInt{x}\aInt diagonal matrix          }diagmatrix(\aInt, \aExpr)
\srb{120pt}{\blt Create an \aInt{x}\aInt identity matrix       }ident(\aInt)
\srb{120pt}{\blt Create an \nInt{1}{x}\nInt{2} constant matrix }\aVal+zeromatrix(\nInt{r}, \nInt{c})
\srb{120pt}{\blt Create \nInt{1}{x}\nInt{2} matrix from func   }genmatrix(\aFunc, \nInt{r}, \nInt{c})
\srb{120pt}{\blt Create a copy                                 }copymatrix(\aMatrix)
\srb{120pt}{\blt map \aFunc onto each matrix elem              }matrixmap(\aFunc,\aMatrix)
\srb{120pt}{\blt Append columns                                }addcol(\aMatrix, \nList{1}, ...)
\srb{120pt}{\blt Append rows                                   }addrow(\aMatrix, \nList{1}, ...)
\srb{120pt}{\blt Get column and return as matrix               }col(\aMatrix,\aInt)
\srb{120pt}{\blt Get row and return as matrix                  }row(\aMatrix,\aInt)
\srb{120pt}{\blt Element at (\nInt{r}, \nInt{c})               }\aMatrix[\nInt{r}, \nInt{c}]
\srb{120pt}{\blt Dimensions as list: [\nInt{r}, \nInt{c}]      }matrix_size(\aMatrix)
\srb{120pt}{\blt Compute adjoint of a matrix                   }adjoint(\aMatrix)
\srb{120pt}{\blt Compute determinant                           }determinant(\aMatrix)
\srb{120pt}{\blt Compute charactstic polynomial                }charpoly(\aMatrix,\aVar)
\srb{120pt}{\blt Compute eigenvalues                           }eigenvalues(\aMatrix)
\srb{120pt}{\blt Compute eigenvectors                          }eigenvectors\aMatrix)
\srb{120pt}{\blt Compute inverse                               }invert(\aMatrix)
\srb{120pt}{\blt Compute the rank                              }rank(\aMatrix)
\srb{120pt}{\blt transpose                                     }transpose(\aMatrix)
\srb{120pt}{\blt Compute upper triangular form                 }triangularize(\aMatrix)
\srb{120pt}{\blt Compute echelon form                          }echelon(\aMatrix)
\srb{120pt}{\blt Compute Cholesky factorization                }cholesky(\aMatrix)
\eSecBox

\sSecBox{Prime Numbers}
\srb{100pt}{\blt Prime factorization of \aInt          }ifactors(\aInt) factor(\aInt) 
\srb{100pt}{\blt Check primality                       }primep
\srb{100pt}{\blt Prime number enumeration              }next_prime prev_prime
\srb{100pt}{\blt Euler’s totient-function              }totient
\eSecBox

\sSecBox{Random Numbers}
\srb{165pt}{\blt A random number, or \aInt in a list, from U[0,\aVal)              }random(\aVal\argOpt{,\aInt})
\srb{100pt}{\blt Generators in 'load(distrib)'          }
\srb{70pt}{\bsp\blt random_cauchy    }\srb{60pt}{\blt random_pareto    }\srb{70pt}{\blt random_binomial             }
\srb{70pt}{\bsp\blt random_chi2      }\srb{60pt}{\blt random_beta      }\srb{70pt}{\blt random_continuous_uniform   }
\srb{70pt}{\bsp\blt random_exp       }\srb{60pt}{\blt random_weibull   }\srb{70pt}{\blt random_discrete_uniform     }
\srb{70pt}{\bsp\blt random_f         }\srb{60pt}{\blt random_rayleigh  }\srb{70pt}{\blt random_negative_binomial    }
\srb{70pt}{\bsp\blt random_normal    }\srb{60pt}{\blt random_gamma     }\srb{70pt}{\blt random_noncentral_chi2      }
\srb{70pt}{\bsp\blt random_pareto    }\srb{60pt}{\blt random_gumbel    }\srb{70pt}{\blt random_noncentral_student_t }
\srb{70pt}{\bsp\blt random_geometric }\srb{60pt}{\blt random_student_t }\srb{70pt}{\blt random_hypergeometric       }
\srb{70pt}{\bsp\blt random_poisson   }\srb{60pt}{\blt random_lognormal }\srb{70pt}{\blt random_logistic             }
\srb{70pt}{\bsp\blt random_bernoulli }\srb{60pt}{\blt random_laplace   }
\eSecBox

\sSecBox{Polynomials}
\srb{120pt}{\blt Coefficient of \apow{\aVar}{\aInt}                           }ratcoef(\aExpr, \aVar, \aInt)
\srb{120pt}{\blt Convert to horner’s form                                     }horner(\aPoly,\aVar)
\srb{120pt}{\blt List with quotient and remainder                             }divide(\nPoly{1},\nPoly{2})
\srb{120pt}{\blt Just the quotient                                            }quotient(\nPoly{1},\nPoly{2})
\srb{120pt}{\blt Just the remainder                                           }remainder(\nPoly{1},\nPoly{2})
\srb{120pt}{\blt List [\(a\), \(b\), GCD] such that                           }gcdex(\nPoly{1}, \nPoly{2})
\srb{120pt}{\bsp   a \nPoly{1} + b \nPoly{2} = GCD                            }
\srb{120pt}{\blt Greatest common divisor                                      }gcd(\nPoly{1},...)
\srb{120pt}{\blt Eliminate vars from equations                                }eliminate([\nExpr{1},...], [\nVar{1},...])
\srb{120pt}{\blt Factor polynomial over \(\mathbb{Q}\) or \(\mathbb{Z}[i]\)   }factor(\aPoly) gfactor(\aPoly)
\srb{120pt}{\blt Product of polynomials                                       }fasttimes(\nPoly{1}, \nPoly{2})
\eSecBox

\sSecBox{Calculus}
\srb{100pt}{\blt limit \aExpr as \({\aVar\rightarrow{\aVal}}\) }limit(\aExpr,\aVar,\aVal\argOpt{,PLUS \argOr MINUS})
\srb{100pt}{\blt derivative of order \aInt                     }diff(\aExpr,\aVar\argOpt{,\aInt})
\srb{100pt}{\blt antiderivative                                }integrate(\aExpr,\aVar)
\srb{100pt}{\blt Definate integral                             }integrate(\aExpr,\aVar,\nVal{low},\nVal{high})
\eSecBox

\sSecBox{Equations}
\srb{100pt}{\blt Roots of a real polynomial             }allroots(\aPoly)
\srb{100pt}{\blt Rational approx of poly roots          }realroots(\aPoly, \nVal{tolerance})
\srb{100pt}{\blt Solve system of equations              }solve([\nExpr{1},..],[\nVar{1},...])
\srb{100pt}{\blt finds zero                             }find_root(\aExpr,\aVar,\nVal{low},\nVal{high},
\srb{100pt}{\bsp      in [\nVal{low},\nVal{high}]       }          [\nVal{abserr}, \nVal{relerr}])
\srb{100pt}{\blt Use bisection (see find_root)          }bf_find_root(...)
\srb{100pt}{\blt Search for zero via Newton             }newton(\aExpr,\aVar,\nVal{guess},\nVal{eps})
\srb{100pt}{\bsp   `load(newton1)' loads this function  }
\srb{100pt}{\blt Solve 2nd order ODE BVP                }bc2(<solution>, \nVal{x1}, \nVal{y1},
\srb{100pt}{\bsp                                        }                \nVal{x2}, \nVal{y2})
\srb{100pt}{\blt Solve system of linear ODEs            }desolve([\nExpr{1},...], [\nVar{1},...])
\srb{100pt}{\blt Solve 1st order ODE IVP                }ic1(<solution>, \nVal{x}, \nVal{y})
\srb{100pt}{\blt Solve 2nd order ODE IVP                }ic2(<solution>, \nVal{x}, \nVal{y}, \nVal{d})
\srb{100pt}{\blt Solve 1st or 2nd order ODE             }ode2(\aExpr, \nVar{y}, \nVar{x})
\srb{100pt}{\bsp\blt Use depends or '                   }depends(y,x); ode2(diff(y,x)=(1-2*x)/(3*y^2-4),y,x);
\srb{100pt}{\bsp\blt Use depends or '                   }ode2('diff(y,x)=(1-2*x)/(3*y^2-4),y,x);
\eSecBox

\sSecBox{Plotting}
\srb{20pt}{\blt 2D  }plot2d(\aExpr,[\aVar,\nVal{low},\nVal{high}])
\srb{20pt}{\blt 3D  }plot3d(\aExpr,[\nVar{1},\nVal{low},\nVal{high}],[\nVar{2},\nVal{low},\nVal{high}])
\srb{20pt}{\blt ODE }plotdf(\aExpr)  Ex: plotdf((1-2*x)/(3*y^2-4));
\eSecBox

\sSecBox{Numerical Integration}
\srb{90pt}{\blt Integrate \aExpr                       }quad_qag(\aExpr,\nVar{1},\nVal{low},\nVal{high},\nInt{key},
\srb{90pt}{\bsp    over [\nVal{low},\nVal{high}]       }         [\nVal{epsrel},\nVal{epsabs},\nVal{limit}])
\srb{90pt}{\bsp    \nVal{key} is Gauss-Kronrod order   }
\srb{90pt}{\blt Integrate \aExpr                       }quad_qags(\aExpr,\nVar{1},\nVal{low},\nVal{high},
\srb{90pt}{\bsp    over [\nVal{low},\nVal{high}]       }          [\nVal{epsrel},\nVal{epsabs},\nVal{limit}])
\eSecBox

\end{document}
