Genius 1.0.26 Copyright (C) 1997-2021 Jiří (George) Lebl This is free software with ABSOLUTELY NO WARRANTY. For license details type `warranty'. For help type `manual' or `help'. genius> help For a manual on using Genius and the GEL language type: manual For help on a specific function type: help FunctionName Commands: help - Print help (or help on a function/command) load - Load a file into the interpreter cd - Change directory pwd - Print current directory ls - List files in the current directory plugin - Load a plugin Basic: AskButtons - Ask a question and present a list of buttons. Returns the 1-based index of the button pressed (or null on failure). AskString - Ask a question and return a string. Optionally pass in a default. Compose - Compose two functions ComposePower - Compose a function with itself n times, passing x as argument, and returning x if n == 0 CurrentTime - Unix time in seconds as a floating point number DisplayVariables - Display values of variables, or all if called without arguments Evaluate - Parse and evaluate a string GetCurrentModulo - Get current modulo from the context outside the function Identity - Identity function, returns its argument IntegerFromBoolean - Make integer (0 or 1) from a boolean value IsBoolean - Check if argument is a boolean (and not a number) IsDefined - Check if a variable or function is defined IsFunction - Check if argument is a function IsFunctionOrIdentifier - Check if argument is a function or an identifier IsFunctionRef - Check if argument is a function reference IsMatrix - Check if argument is a matrix IsNull - Check if argument is a null IsString - Check if argument is a text string IsValue - Check if argument is a number Parse - Parse a string (but do not execute) PrintTable - Print a table of values for f(n) for numbers from vector v, or if v is a number for integers from 1 to v ProtectAll - Mark all currently defined variables as protected. They will be treated as system defined variables from now on. SetElement - Set an element in a global variable which is a matrix SetFunctionFlags - Set flags for a function, currently "PropagateMod" and "NoModuloArguments" SetHelp - Set the category and help description line for a function SetHelpAlias - Sets up a help alias SetVElement - Set an element in a global variable which is a vector UndefineAll - Undefine all unprotected (user defined) global variables and parameters. Does not reset or change protected (system) parameters. UserVariables - Return a vector of all global unprotected (user defined) variable names. chdir - Changes current directory display - Display a string and an expression error - Prints a string to the error stream exit,quit - Exits the program false,False,FALSE - The false boolean value manual - Displays the user manual print - Prints an expression printn - Prints an expression without a trailing newline protect - Protect a variable from being modified. It will be treated as a system defined variable from now on. Protected parameters can still be modified. set - Set a global variable string - Make a string true,True,TRUE - The true boolean value undefine,Undefine - Undefine a variable (including all locals and globals of the same name) unprotect - Unprotect a variable from being modified. It will be treated as a user defined variable from now on. version - Return version as a 3-vector wait - Waits a specified number of seconds warranty - Gives the warranty information Parameters: ChopTolerance - Tolerance of the Chop function ContinuousNumberOfTries - How many iterations to try to find the limit for continuity and limits ContinuousSFS - How many successive steps to be within tolerance for calculation of continuity ContinuousTolerance - Tolerance for continuity of functions and for calculating the limit DerivativeNumberOfTries - How many iterations to try to find the limit for derivative DerivativeSFS - How many successive steps to be within tolerance for calculation of derivative DerivativeTolerance - Tolerance for calculating the derivatives of functions ErrorFunctionTolerance - Tolerance of the ErrorFunction (used for complex values only) FloatPrecision - Floating point precision FullExpressions - Print full expressions, even if more than a line GaussDistributionTolerance - Tolerance of the GaussDistribution function IntegerOutputBase - Integer output base IsPrimeMillerRabinReps - Number of extra Miller-Rabin tests to run on a number before declaring it a prime in IsPrime LinePlotDrawAxisLabels - If to draw axis labels on line plots. LinePlotDrawLegends - If to draw legends or not on line plots. LinePlotVariableNames - Default names used by all 2D plot functions. Should be a 4 vector of strings or identifiers [x,y,z,t]. LinePlotWindow - Line plotting window (limits) as a 4-vector of the form [x1,x2,y1,y2] MaxDigits - Maximum digits to display MaxErrors - Maximum errors to display MixedFractions - If true, mixed fractions are printed NumericalIntegralFunction - The function used for numerical integration in NumericalIntegral NumericalIntegralSteps - Steps to perform in NumericalIntegral OutputChopExponent - Display 0.0 when floating point number is less than 10^-x (0=never chop) OutputChopWhenExponent - Only chop numbers when another number is greater than 10^-x OutputStyle - Output style: normal, latex, mathml or troff ResultsAsFloats - Convert all results to floats before printing ScientificNotation - Use scientific notation SlopefieldTicks - Number of slopefield ticks as a vector [vertical,horizontal]. SumProductNumberOfTries - How many iterations to try for InfiniteSum and InfiniteProduct SumProductSFS - How many successive steps to be within tolerance for InfiniteSum and InfiniteProduct SumProductTolerance - Tolerance for InfiniteSum and InfiniteProduct SurfacePlotDrawLegends - If to draw legends or not on surface plots. SurfacePlotVariableNames - Default names used by surface plot functions. Should be a 3 vector of strings or identifiers [x,y,z] (where z=x+iy and not the dependent axis). SurfacePlotWindow - Surface plotting window (limits) as a 6-vector of the form [x1,x2,y1,y2,z1,z2] VectorfieldNormalized - Normalize vectorfields if true. That is, only show direction and not magnitude. VectorfieldTicks - Number of vectorfield ticks as a vector [vertical,horizontal]. Constants: CatalanConstant - Catalan's Constant (0.915...) EulerConstant,gamma - Euler's Constant gamma GoldenRatio - The Golden Ratio Gravity - Free fall acceleration e - The natural number e pi - The number pi Numeric: AbsoluteValue,abs - Absolute value Chop - Replace very small number with zero ComplexConjugate,conj,Conj - Calculates the conjugate Denominator - Get the denominator of a rational number FractionalPart - Return the fractional part of a number Im,ImaginaryPart - Get the imaginary part of a complex number IntegerQuotient - Division w/o remainder, equivalent to floor(a/b) IsComplex - Check if argument is a complex (non-real) number IsComplexRational - Check if argument is a possibly complex rational number IsFloat - Check if argument is a floating point number (non-complex) IsGaussInteger,IsComplexInteger - Check if argument is a possibly complex integer IsInteger - Check if argument is an integer (non-complex) IsNonNegativeInteger - Check if argument is a non-negative real integer IsPositiveInteger,IsNaturalNumber - Check if argument is a positive real integer IsRational - Check if argument is a rational number (non-complex) IsReal - Check if argument is a real number Numerator - Get the numerator of a rational number Re,RealPart - Get the real part of a complex number Sign,sign - Return the sign (-1,0,1) ceil,Ceiling - Get the lowest integer more than or equal to n exp - The exponential function float - Make number a float floor,Floor - Get the highest integer less than or equal to n ln - The natural logarithm log - Logarithm of any base (calls DiscreteLog if in modulo mode), if base is not given, e is used log10 - Logarithm of x base 10 log2,lg - Logarithm of x base 2 max,Max,Maximum - Returns the maximum of arguments or matrix min,Min,Minimum - Returns the minimum of arguments or matrix rand - Generate random float between 0 and 1, or if size given generate vector or matrix of random floats randint - Generate random integer between 0 and max-1 inclusive, or if size given generate vector or matrix of random integers round,Round - Round a number sqrt,SquareRoot - The square root trunc,Truncate,IntegerPart - Truncate number to an integer (return the integer part) Trigonometry: acos,arccos - The arccos (inverse cos) function acosh,arccosh - The arccosh (inverse cosh) function acot,arccot - The arccot (inverse cot) function acoth,arccoth - The arccoth (inverse coth) function acsc,arccsc - The inverse cosecant function acsch,arccsch - The inverse hyperbolic cosecant function asec,arcsec - The inverse secant function asech,arcsech - The inverse hyperbolic secant function asin,arcsin - The arcsin (inverse sin) function asinh,arcsinh - The arcsinh (inverse sinh) function atan,arctan - Calculates the arctan function atan2,arctan2 - Calculates the arctan2 function (arctan(y/x) if x>0) atanh,arctanh - The arctanh (inverse tanh) function cos - Calculates the cosine function cosh - Calculates the hyperbolic cosine function cot - The cotangent function coth - The hyperbolic cotangent function csc - The cosecant function csch - The hyperbolic cosecant function sec - The secant function sech - The hyperbolic secant function sin - Calculates the sine function sinh - Calculates the hyperbolic sine function tan - Calculates the tan function tanh - The hyperbolic tangent function Number Theory: AreRelativelyPrime - Are a and b relatively prime? BernoulliNumber - Return the nth Bernoulli number ChineseRemainder,CRT - Find the x that solves the system given by the vector a and modulo the elements of m, using the Chinese Remainder Theorem CombineFactorizations - Given two factorizations, give the factorization of the product, see Factorize ConvertFromBase - Convert a vector of values indicating powers of b to a number ConvertToBase - Convert a number to a vector of powers for elements in base b DiscreteLog - Find discrete log of n base b in F_q where q is a prime using the Silver-Pohlig-Hellman algorithm Divides - Checks divisibility (if m divides n) EulerPhi - Compute phi(n), the Euler phi function, that is the number of integers between 1 and n relatively prime to n ExactDivision - Return n/d but only if d divides n else returns garbage (this is faster than writing n/d) Factorize - Return factorization of a number as a matrix Factors - Return all factors of a number FermatFactorization - Attempt Fermat factorization of n into (t-s)*(t+s), returns t and s as a vector if possible, null otherwise FindPrimitiveElementMod - Find the first primitive element in F_q (q must be a prime) FindRandomPrimitiveElementMod - Find a random primitive element in F_q (q must be a prime) IndexCalculus - Compute discrete log base b of n in F_q (q a prime) using the factor base S. S should be a column of primes possibly with second column precalculated by IndexCalculusPrecalculation. IndexCalculusPrecalculation - Run the precalculation step of IndexCalculus for logarithms base b in F_q (q a prime) for the factor base S (where S is a column vector of primes). The logs will be precalculated and returned in the second column. IsEven - Tests if an integer is even IsMersennePrimeExponent - Test if Mp is a Mersenne prime using a table IsNthPower - Tests if a rational number is a perfect power IsOdd - Tests if an integer is odd IsPerfectPower - Check a number for being any perfect power (a^b) IsPerfectSquare - Check a number for being a perfect square IsPrime - Tests primality of integers, for numbers greater than 25*10^9 false positive is with low probability depending on IsPrimeMillerRabinReps IsPrimitiveMod - Check if g is primitive in F_q, where q is a prime. If q is not prime results are bogus. IsPrimitiveModWithPrimeFactors - Check if g is primitive in F_q, where q is a prime and f is a vector of prime factors of q-1. If q is not prime results are bogus. IsPseudoprime - If n is a pseudoprime base b but not a prime, that is if b^(n-1) == 1 mod n IsStrongPseudoprime - Test if n is a strong pseudoprime to base b but not a prime Jacobi,JacobiSymbol - Calculate the Jacobi symbol (a/b) (b should be odd) JacobiKronecker,JacobiKroneckerSymbol - Calculate the Jacobi symbol (a/b) with the Kronecker extension (a/2)=(2/a) when a odd, or (a/2)=0 when a even LeastAbsoluteResidue - Return the residue of a mod n with the least absolute value (in the interval -n/2 to n/2) Legendre,LegendreSymbol - Calculate the Legendre symbol (a/p) LucasLehmer - Test if Mp is a Mersenne prime using the Lucas-Lehmer test LucasNumber - Returns the nth Lucas number MaximalPrimePowerFactors - Return all maximal prime power factors of a number MersennePrimeExponents - Vector with the known Mersenne prime exponents MillerRabinTest - Use the Miller-Rabin primality test on n, reps number of times. The probability of false positive is (1/4)^reps MillerRabinTestSure - Use the Miller-Rabin primality test on n with enough bases that assuming the Generalized Riemann Hypothesis the result is deterministic ModInvert - Returns inverse of n mod m MoebiusMu - Return the Moebius mu function evaluated in n NextPrime - Returns the least prime greater than n (if n is positive) PadicValuation - Returns the p-adic valuation (number of trailing zeros in base p). PowerMod - Compute a^b mod m Prime,prime - Return the nth prime (up to a limit) PrimeFactors - Return all prime factors of a number PseudoprimeTest - Pseudoprime test, true if and only if b^(n-1) == 1 (mod n) RemoveFactor - Removes all instances of the factor m from the number n SilverPohligHellmanWithFactorization - Find discrete log of n base b in F_q where q is a prime using the Silver-Pohlig-Hellman algorithm, given f being the factorization of q-1 SqrtModPrime - Find square root of n mod p (a prime). Null is returned if not a quadratic residue. StrongPseudoprimeTest - Run the strong pseudoprime test base b on n gcd,GCD - Greatest common divisor lcm,LCM - Least common multiplier Matrix Manipulation: AppendElement - Append an element to a vector (treating 1x1 matrix as a row vector) ApplyOverMatrix - Apply a function over all entries of a matrix and return a matrix of the results ApplyOverMatrix2 - Apply a function over all entries of 2 matrices (or 1 value and 1 matrix) and return a matrix of the results ColumnsOf - Gets the columns of a matrix as a horizontal vector ComplementSubmatrix - Remove column(s) and row(s) from a matrix CompoundMatrix - Calculate the kth compound matrix of A CountZeroColumns - Count the number of zero columns in a matrix DeleteColumn - Delete a column of a matrix DeleteRow - Delete a row of a matrix DiagonalOf - Gets the diagonal entries of a matrix as a column vector DotProduct - Get the dot product of two vectors (no conjugates) ExpandMatrix - Expands a matrix just like we do on unquoted matrix input HermitianProduct,InnerProduct - Get the Hermitian product of two vectors I,eye - Make an identity matrix of a given size IndexComplement - Return the index complement of a vector of indexes IsDiagonal - Is a matrix diagonal IsIdentity - Check if a number or a matrix is 1 or identity respectively IsLowerTriangular - Is a matrix lower triangular IsMatrixInteger - Check if a matrix is an integer (non-complex) matrix IsMatrixNonnegative - Check if a matrix is nonnegative, that is if each element is nonnegative IsMatrixPositive - Check if a matrix is positive, that is if each element is positive IsMatrixRational - Check if a matrix is a rational (non-complex) matrix IsMatrixReal - Check if a matrix is a real (non-complex) matrix IsMatrixSquare - Is a matrix square IsUpperTriangular - Is a matrix upper triangular IsValueOnly - Check if a matrix is a matrix of numbers IsVector - Is argument a horizontal or a vertical vector IsZero - Check if a number or a matrix is all zeros LowerTriangular - Zero out entries above the diagonal MakeDiagonal,diag - Make diagonal matrix from a vector MakeRowVector - Make column vector out of matrix by putting rows after each other MakeVector,MakeColumnVector - Make column vector out of matrix by putting columns above each other MatrixProduct - Calculate the product of all elements in a matrix MatrixSum - Calculate the sum of all elements in a matrix MatrixSumSquares - Calculate the sum of squares of all elements in a matrix NonzeroColumns - Return a vector with the indices of the nonzero columns in a matrix NonzeroElements - Return a vector with the indices of the nonzero elements in a vector OuterProduct - Get the outer product of two vectors ReverseVector - Reverse elements in a vector RowSum - Calculate sum of each row in a matrix RowSumSquares - Calculate sum of squares of each row in a matrix RowsOf - Gets the rows of a matrix as a vertical vector SetMatrixSize - Make new matrix of given size from old one ShuffleVector - Shuffle elements in a vector SortVector - Sort vector elements StripZeroColumns - Removes any all-zero columns of M StripZeroRows - Removes any all-zero rows of M Submatrix - Return column(s) and row(s) from a matrix SwapRows - Swap two rows in a matrix UpperTriangular - Zero out entries below the diagonal columns - Get the number of columns of a matrix elements - Get the number of elements of a matrix ones - Make an matrix of all ones (or a row vector) rows - Get the number of rows of a matrix zeros - Make an matrix of all zeros (or a row vector) Linear Algebra: AuxiliaryUnitMatrix - Get the auxiliary unit matrix of size n BilinearForm - Evaluate (v,w) with respect to the bilinear form given by the matrix A BilinearFormFunction - Return a function that evaluates two vectors with respect to the bilinear form given by A CharacteristicPolynomial,CharPoly - Get the characteristic polynomial as a vector CharacteristicPolynomialFunction - Get the characteristic polynomial as a function ColumnSpace - Get a basis matrix for the columnspace of a matrix CommutationMatrix - Return the commutation matrix K(m,n) which is the unique m*n by m*n matrix such that K(m,n) * MakeVector(A) = MakeVector(A.') for all m by n matrices A. CompanionMatrix - Companion matrix of a polynomial (as vector) ConjugateTranspose - Conjugate transpose of a matrix (adjoint) Convolution,convol - Calculate convolution of two horizontal vectors ConvolutionVector - Calculate convolution of two horizontal vectors CrossProduct - CrossProduct of two vectors in R^3 DeterminantalDivisorsInteger - Get the determinantal divisors of an integer matrix DirectSum - Direct sum of matrices DirectSumMatrixVector - Direct sum of a vector of matrices Eigenvalues,eig - Get the eigenvalues of a matrix (Currently only for up to 4x4 or triangular matrices) Eigenvectors - Get the eigenvalues and eigenvectors of a matrix (Currently only for up to 2x2 matrices) GramSchmidt - Apply the Gram-Schmidt process (to the columns) with respect to inner product given by B (if not given use Hermitian product) HankelMatrix - Hankel matrix HilbertMatrix - Hilbert matrix of order n Image - Get the image (columnspace) of a linear transform InfNorm - Get the Inf Norm of a vector InvariantFactorsInteger - Get the invariant factors of a square integer matrix InverseHilbertMatrix - Inverse Hilbert matrix of order n IsHermitian - Is a matrix Hermitian IsInSubspace - Test if a vector is in a subspace IsInvertible - Is a matrix (or number) invertible (Integer matrix is invertible if and only if it is invertible over the integers) IsInvertibleField - Is a matrix (or number) invertible over a field IsNormal - Is a matrix normal IsPositiveDefinite - Is a matrix positive definite IsPositiveSemidefinite - Is a matrix positive semidefinite IsSkewHermitian - Is a matrix skew-Hermitian IsUnitary - Is a matrix unitary JordanBlock,J - Get the Jordan block corresponding to lambda and n Kernel - Get the kernel (nullspace) of a linear transform KroneckerProduct,TensorProduct - Compute the Kronecker product of two matrices LUDecomposition - Get the LU decomposition of A and store the result in the L and U which should be references. If not possible returns false. Minor - Get the i-j minor of a matrix NonPivotColumns - Return the columns that are not the pivot columns of a matrix Norm,norm - Get the p Norm (or 2 Norm if no p is supplied) of a vector NullSpace - Get the nullspace of a matrix Nullity,nullity - Get the nullity of a matrix OrthogonalComplement - Get the orthogonal complement of the columnspace PivotColumns - Return pivot columns of a matrix, that is columns which have a leading 1 in rref form, also returns the row where they occur Projection - Projection of vector v onto subspace W given a sesquilinear form B (if not given use Hermitian product) QRDecomposition - Get the QR decomposition of A, returns R and Q can be a reference Rank,rank - Get the rank of a matrix RayleighQuotient - Return the Rayleigh quotient of a matrix and a vector RayleighQuotientIteration - Compute an eigenvalue using the Rayleigh Quotient Iteration method until we are epsilon from eigenvalue or for maxiter iterations RosserMatrix - Rosser matrix, a classic symmetric eigenvalue test problem Rotation2D,RotationMatrix - Rotation around origin in R^2 Rotation3DX - Rotation around origin in R^3 about the x-axis Rotation3DY - Rotation around origin in R^3 about the y-axis Rotation3DZ - Rotation around origin in R^3 about the z-axis RowSpace - Get a basis matrix for the rowspace of a matrix SesquilinearForm - Evaluate (v,w) with respect to the sesquilinear form given by the matrix A SesquilinearFormFunction - Return a function that evaluates two vectors with respect to the sesquilinear form given by A SmithNormalFormField - Smith Normal Form for fields (will end up with 1's on the diagonal) SmithNormalFormInteger - Smith Normal Form for square integer matrices SolveLinearSystem - Solve linear system Mx=V, return solution V if there is a unique solution, null otherwise. Extra two reference parameters can optionally be used to get the reduced M and V. ToeplitzMatrix - Return the Toeplitz matrix constructed given the first column c and (optionally) the first row r. Trace,trace - Calculate the trace of a matrix Transpose - Transpose of a matrix VandermondeMatrix,vander - Return the Vandermonde matrix VectorAngle - The angle of two vectors, given an inner product VectorSpaceDirectSum - The direct sum of the vector spaces M and N VectorSubspaceIntersection - Intersection of the subspaces given by M and N VectorSubspaceSum - The sum of the vector spaces M and N, that is {w | w=m+n, m in M, n in N} adj,Adjugate - Get the classical adjoint (adjugate) of a matrix cref,CREF,ColumnReducedEchelonForm - Compute the Column Reduced Echelon Form det,Determinant - Get the determinant of a matrix ref,REF,RowEchelonForm - Get the row echelon form of a matrix rref,RREF,ReducedRowEchelonForm - Get the reduced row echelon form of a matrix Combinatorics: Catalan - Get nth Catalan number Combinations - Get all combinations of k numbers from 1 to n as a vector of vectors DoubleFactorial - Double factorial: n(n-2)(n-4)... Factorial - Factorial: n(n-1)(n-2)... FallingFactorial - Falling factorial: (n)_k = n(n-1)...(n-(k-1)) Fibonacci,fib - Calculate nth Fibonacci number FrobeniusNumber - Calculate the Frobenius number for a coin problem GaloisMatrix - Galois matrix given a linear combining rule (a_1*x_1+...+a_n*x_n=x_(n+1)) GreedyAlgorithm - Use greedy algorithm to find c, for c . v = n. (v must be sorted) HarmonicNumber,HarmonicH - Harmonic Number, the nth harmonic number of order r Hofstadter - Hofstadter's function q(n) defined by q(1)=1, q(2)=1, q(n)=q(n-q(n-1))+q(n-q(n-2)) LinearRecursiveSequence - Compute linear recursive sequence using Galois stepping Multinomial - Calculate multinomial coefficients NextCombination - Get combination that would come after v in call to combinations, first combination should be [1:k]. Pascal - Get the Pascal's triangle as a matrix Permutations - Get all permutations of k numbers from 1 to n as a vector of vectors RisingFactorial,Pochhammer - (Pochhammer) Rising factorial: (n)_k = n(n+1)...(n+(k-1)) StirlingNumberFirst,StirlingS1 - Stirling number of the first kind StirlingNumberSecond,StirlingS2 - Stirling number of the second kind Subfactorial - Subfactorial: n! times sum_{k=0}^n (-1)^k/k! Triangular - Calculate the nth triangular number nCr,Binomial - Calculate combinations (binomial coefficient) nPr - Calculate permutations Calculus: CompositeSimpsonsRule - Integration of f by Composite Simpson's Rule on the interval [a,b] with n subintervals with error of max(f'''')*h^4*(b-a)/180, note that n should be even CompositeSimpsonsRuleTolerance - Integration of f by Composite Simpson's Rule on the interval [a,b] with the number of steps calculated by the fourth derivative bound and the desired tolerance Derivative - Attempt to calculate derivative by trying first symbolically and then numerically EvenPeriodicExtension - Return a function which is the even periodic extension of f defined on the interval [0,L] FourierSeriesFunction - Return a function which is a Fourier series with the coefficients given by the vectors a (sines) and b (cosines). Note that a@(1) is the constant coefficient! InfiniteProduct - Try to calculate an infinite product for a single parameter function InfiniteProduct2 - Try to calculate an infinite product for a double parameter function with func(arg,n) InfiniteSum - Try to calculate an infinite sum for a single parameter function InfiniteSum2 - Try to calculate an infinite sum for a double parameter function with func(arg,n) IsContinuous - Try and see if a real-valued function is continuous at x0 by calculating the limit there IsDifferentiable - Test for differentiability by approximating the left and right limits and comparing LeftLimit - Calculate the left limit of a real-valued function at x0 Limit - Calculate the limit of a real-valued function at x0. Tries to calculate both left and right limits. MidpointRule - Integration by midpoint rule NumericalDerivative,NDerivative - Attempt to calculate numerical derivative NumericalFourierCosineSeriesCoefficients - Numerically compute the coefficients for a cosine Fourier series for a function on [0,L] up to the Nth coefficient. NumericalFourierCosineSeriesFunction - Return a function which is the Fourier cosine series of f on [0,L] with coefficients up to N computed numerically NumericalFourierSeriesCoefficients - Numerically compute the coefficients for a Fourier series with half-period L up to the Nth coefficient. NumericalFourierSeriesFunction - Return a function which is the Fourier series of f with half-period L with coefficients up to N computed numerically NumericalFourierSineSeriesCoefficients - Numerically compute the coefficients for a sine Fourier series for a function on [0,L] up to the Nth coefficient. NumericalFourierSineSeriesFunction - Return a function which is the Fourier sine series of f on [0,L] with coefficients up to N computed numerically NumericalIntegral - Integration by rule set in NumericalIntegralFunction of f from a to b using NumericalIntegralSteps steps NumericalLeftDerivative - Attempt to calculate numerical left derivative NumericalLimitAtInfinity - Attempt to calculate the limit of f(step_fun(i)) as i goes from 1 to N NumericalRightDerivative - Attempt to calculate numerical right derivative OddPeriodicExtension - Return a function which is the odd periodic extension of f defined on the interval [0,L] OneSidedFivePointFormula - Compute one-sided derivative using five point formula OneSidedThreePointFormula - Compute one-sided derivative using three-point formula PeriodicExtension - Return a function which is the periodic extension of f defined on the interval [a,b] RightLimit - Calculate the right limit of a real-valued function at x0 TwoSidedFivePointFormula - Compute two-sided derivative using five-point formula TwoSidedThreePointFormula - Compute two-sided derivative using three-point formula Functions: Argument,Arg,arg - argument (angle) of complex number BesselJ0 - The Bessel function of first kind of order 0 BesselJ1 - The Bessel function of first kind of order 1 BesselJn - The Bessel function of first kind of order n BesselY0 - The Bessel function of second kind of order 0 BesselY1 - The Bessel function of second kind of order 1 BesselYn - The Bessel function of second kind of integer order n DirichletKernel - Dirichlet kernel of order n DiscreteDelta - Returns 1 if and only if all elements are zero ErrorFunction,erf - The error function, 2/sqrt(pi) * int_0^x e^(-t^2) dt FejerKernel - Fejer kernel of order n GammaFunction,Gamma - The Gamma function (only real values implemented) KroneckerDelta - Returns 1 if and only if all elements are equal LambertW - Principal branch of the Lambert W function for real values greater than or equal to -1/e LambertWm1 - The minus-one branch of the Lambert W function for real values between -1/e and 0 MinimizeFunction - Find the first value where f(x)=0 MoebiusDiskMapping - Moebius mapping of the disk to itself mapping a to 0 MoebiusMapping - Moebius mapping using the cross ratio taking z2,z3,z4 to 1,0, and infinity respectively MoebiusMappingInftyToInfty - Moebius mapping using the cross ratio taking infinity to infinity and z2,z3 to 1 and 0 respectively MoebiusMappingInftyToOne - Moebius mapping using the cross ratio taking infinity to 1 and z3,z4 to 0 and infinity respectively MoebiusMappingInftyToZero - Moebius mapping using the cross ratio taking infinity to 0 and z2,z4 to 1 and infinity respectively PoissonKernel - Poisson kernel on D(0,1) (not normalized to 1, that is integral of this is 2pi) PoissonKernelRadius - Poisson kernel on D(0,R) (not normalized to 1) RiemannZeta,zeta - The Riemann zeta function (only real values implemented) UnitStep - The unit step function = 0 for x<0, 1 otherwise. This is the integral of the Dirac Delta function. cis - The cis function, that is cos(x)+i*sin(x) deg2rad - Convert degrees to radians rad2deg - Convert radians to degrees sinc - Calculates the sinc function, that is sin(x)/x Equation Solving: CubicFormula - Find roots of a cubic polynomial (given as vector of coefficients) EulersMethod - Use classical Euler's method to numerically solve y'=f(x,y) for initial x0,y0 going to x1 with n increments, returns y at x1 EulersMethodFull - Use classical Euler's method to numerically solve y'=f(x,y) for initial x0,y0 going to x1 with n increments, returns an n+1 by 2 matrix of values FindRootBisection - Find root of a function using the bisection method to within TOL tolerance in up to N iterations. f(a) and f(b) must have opposite signs. FindRootFalsePosition - Find root of a function using the method of false position to within TOL tolerance in up to N iterations. f(a) and f(b) must have opposite signs. FindRootMullersMethod - Find root of a function using the Muller's method FindRootSecant - Find root of a function using the secant method to within TOL tolerance in up to N iterations. f(a) and f(b) must have opposite signs. HalleysMethod - Attempt to find a zero of a function f with derivative df and second derivative ddf using Halley's method, returning after two successive values are within epsilon or after maxn tries (then returns null) NewtonsMethod - Attempt to find a zero of a function f with derivative df using Newton's method, returning after two successive values are within epsilon or after maxn tries (then returns null) PolynomialRoots - Find roots of a polynomial (given as vector of coefficients) QuadraticFormula - Find roots of a quadratic polynomial (given as vector of coefficients) QuarticFormula - Find roots of a quartic polynomial (given as vector of coefficients) RungeKutta - Use classical non-adaptive Runge-Kutta of fourth order method to numerically solve y'=f(x,y) for initial x0,y0 going to x1 with n increments, returns y at x1 RungeKuttaFull - Use classical non-adaptive Runge-Kutta of fourth order method to numerically solve y'=f(x,y) for initial x0,y0 going to x1 with n increments, returns an n+1 by 2 matrix of values Statistics: Average,average,Mean,mean - Calculate average of an entire matrix GaussDistribution - Integral of the GaussFunction from 0 to x (area under the normal curve) GaussFunction - The normalized Gauss distribution function (the normal curve) Median,median - Calculate median of an entire matrix PopulationStandardDeviation,stdevp - Calculate the population standard deviation of a whole matrix RowAverage,RowMean - Calculate average of each row in a matrix RowMedian - Calculate median of each row in a matrix RowPopulationStandardDeviation,rowstdevp - Calculate the population standard deviations of rows of a matrix and return a vertical vector RowStandardDeviation,rowstdev - Calculate the standard deviations of rows of a matrix and return a vertical vector StandardDeviation,stdev - Calculate the standard deviation of a whole matrix Polynomials: AddPoly - Add two polynomials (vectors) DividePoly - Divide polynomial p by q, return the remainder in r IsPoly - Check if a vector is usable as a polynomial MultiplyPoly - Multiply two polynomials (as vectors) NewtonsMethodPoly - Attempt to find a root of a polynomial using Newton's method, returning after two successive values are within epsilon or after maxn tries (then returns null) Poly2ndDerivative - Take second polynomial (as vector) derivative PolyDerivative - Take polynomial (as vector) derivative PolyToFunction - Make function out of a polynomial (as vector) PolyToString - Make string out of a polynomial (as vector) SubtractPoly - Subtract two polynomials (as vectors) TrimPoly - Trim zeros from a vector pretending to be a polynomial, that is trim trailing zero elements Set Theory: Intersection - Returns a set theoretic intersection of X and Y (X and Y are vectors pretending to be sets) IsIn - Returns true if the element x is in the set X (where X is a vector pretending to be a set) IsSubset - Returns true if X is a subset of Y MakeSet - Returns a set where every element of X appears only once SetMinus - Returns a set theoretic difference X-Y (X and Y are vectors pretending to be sets) Union - Returns a set theoretic union of X and Y (X and Y are vectors pretending to be sets) Commutative Algebra: MacaulayBound - For a Hilbert function that is c for degree d, given the Macaulay bound for the Hilbert function of degree d+1 (The c^ operator from Green's proof) MacaulayLowerOperator - The c_ operator from Green's proof of Macaulay's Theorem MacaulayRep - Return the dth Macaulay representation of a positive integer c Miscellaneous: ASCIIToString - Convert a vector of ASCII values to a string AlphabetToString - Convert a vector of 0-based alphabet values (positions in the alphabet string) to a string StringToASCII - Convert a string to a vector of ASCII values StringToAlphabet - Convert a string to a vector of 0-based alphabet values (positions in the alphabet string), -1's for unknown letters Symbolic Operations: SymbolicDerivative - Attempt to symbolically differentiate the function f, where f is a function of one variable. SymbolicDerivativeTry - Attempt to symbolically differentiate the function f, where f is a function of one variable, returns null if unsuccessful but is silent. SymbolicNthDerivative - Attempt to symbolically differentiate a function n times SymbolicNthDerivativeTry - Attempt to symbolically differentiate a function n times quietly and return null on failure SymbolicTaylorApproximationFunction - Attempt to construct the Taylor approximation function around x0 to the nth degree. Plotting: ExportPlot - Export the current contents of the plot canvas to a file. The file type is given by the string type, which can be "png", "eps", or "ps". LinePlot - Plot a function with a line. First come the functions (up to 10) then optionally limits as x1,x2,y1,y2 LinePlotCParametric - Plot a parametric complex valued function with a line. First comes the function that returns x+iy then optionally the t limits as t1,t2,tinc, then optionally the limits as x1,x2,y1,y2 LinePlotClear - Show the line plot window and clear out functions LinePlotDrawLine - Draw a line from x1,y1 to x2,y2. x1,y1,x2,y2 can be replaced by a n by 2 matrix for a longer line. LinePlotDrawPoints - Draw a point at x,y. x,y can be replaced by a n by 2 matrix for more points. LinePlotMouseLocation - Return current mouse location on the line plot window. LinePlotParametric - Plot a parametric function with a line. First come the functions for x and y then optionally the t limits as t1,t2,tinc, then optionally the limits as x1,x2,y1,y2 LinePlotWaitForClick - Wait for a click on the line plot window, return the location. PlotCanvasFreeze - Freeze the plot canvas, that is, inhibit drawing PlotCanvasThaw - Thaw the plot canvas and redraw the plot immediately PlotWindowPresent - Raise the plot window, and create the window if necessary SlopefieldClearSolutions - Clear all the slopefield solutions SlopefieldDrawSolution - Draw a solution for a slope field starting at x,y and using dx as increment SlopefieldPlot - Draw a slope field. First comes the function dy/dx in terms of x and y (or a complex z) then optionally the limits as x1,x2,y1,y2 SurfacePlot - Plot a surface function which takes either two arguments or a complex number. First comes the function then optionally limits as x1,x2,y1,y2,z1,z2 SurfacePlotClear - Show the surface (3d) plot window and clear out functions SurfacePlotData - Plot surface data given as n by 3 matrix (n>=3) of data with each row being x,y,z. Optionally can pass a label string and limits. If no limits passed, limits computed from data. SurfacePlotDataGrid - Plot surface data given as a matrix (where rows are the x coordinate and columns are the y coordinate), the limits are given as [x1,x2,y1,y2] or optionally [x1,x2,y1,y2,z1,z2], and optionally a string for the label. SurfacePlotDrawLine - Draw a line from x1,y1,z1 to x2,y2,z2 on the surface (3d) plot. x1,y1,z1,x2,y2,z2 can be replaced by a n by 3 matrix for a longer line SurfacePlotDrawPoints - Draw a point at x,y,z on the surface (3d) plot. x,y,z can be replaced by a n by 3 matrix for more points. VectorfieldClearSolutions - Clear all the vectorfield solutions VectorfieldDrawSolution - Draw a solution for a vector field starting at x,y, using dt as increment for tlen units VectorfieldPlot - Draw a vector field. First come the functions dx/dt and dy/dt in terms of x and y then optionally the limits as x1,x2,y1,y2 genius>