# Function List

## Algebra

Find Linear Function

  `linearfunction(x1, y1, x2, y2)`

  Finds the linear function for the straight line between two distinct points.

  ### Arguments

  - x1: a free value

  - y1: a free value

  - x2: a free value

  - y2: a free value

Product

  `product(Factor expression, Lower limit (i), Upper limit (n)[, Index variable])`

  `Π`

  Corresponds to the product symbol. Multiplies factors for each x ranging from the lower to the upper limit.

  ### Arguments

  - Factor expression: a free value

  - Lower limit (i): an integer

  - Upper limit (n): an integer

  - Index variable: an unknown variable/symbol (optional, default: x)

  ### Requirement

  "Upper limit (n)" >= "Lower limit (i)"

Solve equation

  `solve(Equation[, With respect to])`

  ### Arguments

  - Equation: a free value

  - With respect to: an unknown variable/symbol (optional, default: x)

Solve for multiple variables

  `multisolve(Equation vector, Variable vector)`

  ### Arguments

  - Equation vector: a vector

  - Variable vector: a vector with an unknown variable/symbol, ...

  ### Requirement

  dimension("Equation vector")=dimension("Variable vector")

Solve for two variables

  `solve2(Equation 1, Equation 2[, Variable 1][, Variable 2])`

  Solves two equations with two unknown variables. Returns the value of the first variable.

  ### Arguments

  - Equation 1: a free value

  - Equation 2: a free value

  - Variable 1: an unknown variable/symbol (optional, default: x)

  - Variable 2: an unknown variable/symbol (optional, default: y)

Sum

  `sum(Term expression, Lower limit (i), Upper limit (n)[, Index variable])`

  `Σ`

  Corresponds to the sum symbol. Adds terms for each x ranging from the lower to the upper limit.

  ### Arguments

  - Term expression: a free value

  - Lower limit (i): an integer

  - Upper limit (n): an integer

  - Index variable: an unknown variable/symbol (optional, default: x)

  ### Requirement

  "Upper limit (n)" >= "Lower limit (i)"

## Analysis

Beta Function

  `beta(argument 1, argument 2)`

  ### Arguments

  - 1: an integer

  - 2: an integer

Gamma Function

  `gamma(argument 1)`

  ### Arguments

  - 1: a number

Imaginary Part

  `im(Complex number)`

  ### Arguments

  - Complex number: a number

Real Part

  `re(Complex number)`

  ### Arguments

  - Complex number: a number

## Calculus

Derive

  `diff(Function[, With respect to][, Order])`

  ### Arguments

  - Function: a free value

  - With respect to: an unknown variable/symbol (optional, default: x)

  - Order: an integer >= 1 (optional, default: 1)

Extreme Values

  `extremum(Function[, With respect to])`

  ### Arguments

  - Function: a free value

  - With respect to: an unknown variable/symbol (optional, default: x)

Integrate

  `integrate(Function[, Variable of integration][, Lower limit][, Upper limit])`

  ### Arguments

  - Function: a free value

  - Variable of integration: an unknown variable/symbol (optional, default: x)

  - Lower limit: a free value (optional, default: undefined)

  - Upper limit: a free value (optional, default: undefined)

## Combinatorics

Binomial Coefficient

  `binomial(Exponent, Index)`

  ### Arguments

  - Exponent: an integer >= 1

  - Index: an integer >= 0

  ### Requirement

  "Exponent">="Index"

Combinations

  `comb(Objects, Size)`

  Returns the number of possible arrangements of an unordered list with a number of objects to choose from and a list size. If there are three objects (1, 2 and 3) that is put in a list with place for two, the alternatives are [1, 2], [1, 3], and [2, 3], and thus the number of combinations is 3.

  ### Arguments

  - Objects: a free value

  - Size: a free value

Derangements

  `derangements(Number of elements)`

  Returns the number of possible rearrangements of an ordered list, of a certain size, where none of the objects are on their original position. If the original list is [1, 2, 3], the possible derangements is [2, 3, 1] and [3, 1, 2], and thus the number of derangements is 2.

  ### Arguments

  - Number of elements: an integer >= 1

Double Factorial

  `factorial2(Value)`

  Calculates the doublefactorial of an integer. Mulitplies the argument with every second lesser positive integer (n(n-2)(n-4)...). Can also be entered as a number followed by two exclamation marks.

  ex. factorial2(5) = 5!! = 5 * 3 * 1 = 15

  ### Arguments

  - Value: an integer >= -1

Factorial

  `factorial(Value)`

  Calculates the factorial of an integer. Mulitplies the argument with every lesser positive integer (n(n-1)(n-2)...2*1). Can also be entered as a number followed by one exclamation mark.

  ex. factorial(5) = 5! = 5 * 4 * 3 * 2 * 1 = 120

  ### Arguments

  - Value: an integer

Hyperfactorial

  `hyperfactorial(Value)`

  Calculates the hyperfactorial of an integer. Mulitplies the argument raised by itself with every lesser positive integer raised by themselves (1^1 * 2^2 ... n^n).

  ex. hyperfactorial(3) = (3^3) * (2^2) * (1^1) = 108

  ### Arguments

  - Value: an integer >= 1

Multifactorial

  `multifactorial(Value, Factorial)`

  Calculates the multifactorial of an integer. Mulitplies the argument with every x lesser positive integer (n(n-x)(n-2x)...). Can also be entered as a number followed by three or more exclamation marks.

  ex. multifactorial(18, 4) = 18!!!! = 18 * 14 * 10 * 6 * 2 = 30 240

  ### Arguments

  - Value: an integer >= 0

  - Factorial: an integer >= 1

Permutations (Variations)

  `perm(Objects, Size)`

  `variations`

  Returns the number of possible arrangements of an ordered list with a number of objects to choose from and a list size. If there are three objects (1, 2 and 3) that is put in a list with two positions, the alternatives are [1, 2], [2, 1], [1, 3], [3, 1], [2, 3] and [3, 2], and thus the number of permutations is 6.

  ### Arguments

  - Objects: a free value

  - Size: a free value

Superfactorial

  `superfactorial(Value)`

  Calculates the superfactorial of an integer. Mulitplies the factorial of the argument with the factorial of every lesser positive integer (1! * 2! ... n!).

  ex. superfactorial(5) = 5! * 4! * 3! * 2! * 1! = 34 560

  ### Arguments

  - Value: an integer >= 0

## Data Sets

Elements

  `atom(Element[, Property])`

  Retrieves data from the Elements data set for a given object and property. If "info" is typed as property, all properties of the object will be listed.

  ### Arguments

  - Element: an object from "Elements" (use symbol, number, or name)

  - Property: name of a data property (symbol, number, name, class, weight, boiling, melting, density, ionization, or covalent) (optional, default: info)

  ### Properties

  - Symbol: symbol (key)

  - Number: number (key)

  - Name: name (key)

  - Classification: class

    A number representing an element group:

    1 Alkali Metal

    2 Alkaline-Earth Metal

    3 Lanthanide

    4 Actinide

    5 Transition Metal

    6 Metal

    7 Metalloid

    8 Non-Metal

    9 Halogen

    10 Noble Gas

    11 Transactinide

  - Weight: weight, mass

  - Boiling Point: boiling

  - Melting Point: melting

  - Density: density

    Density at 295K

  - Ionization Potential: ionization

  - Covalent Radius: covalent

Planets

  `planet(Planet[, Property])`

  Retrieves data from the Planets data set for a given object and property. If "info" is typed as property, all properties of the object will be listed.

  This data uses material from the Wikipedia articles

  "Earth" (http://www.wikipedia.org/wiki/Earth),

  "Jupiter (planet)" (http://www.wikipedia.org/wiki/Jupiter_(planet)),

  "Mars (planet)" (http://www.wikipedia.org/wiki/Mars_(planet)),

  "Mercury (planet)" (http://www.wikipedia.org/wiki/Mercury_(planet)),

  "Neptune (planet)" (http://www.wikipedia.org/wiki/Neptune_(planet)),

  "Pluto (planet)" (http://www.wikipedia.org/wiki/Pluto_(planet)),

  "Saturn (planet)" (http://www.wikipedia.org/wiki/Saturn_(planet)),

  "Uranus (planet)" (http://www.wikipedia.org/wiki/Uranus_(planet)), and

  "Venus (planet)" (http://en.wikipedia.org/wiki/Venus_(planet)),

  licensed under the GNU Free Documentation License (http://www.gnu.org/copyleft/fdl.html)

  ### Arguments

  - Planet: an object from "Planets" (use name)

  - Property: name of a data property (name, year, speed, eccentricity, inclination, satellites, mass, density, area, gravity, or temperature) (optional, default: info)

  ### Properties

  - Name: name (key)

  - Orbital Period (Year): year

  - Average Orbital Speed: speed

  - Eccentricity: eccentricity

  - Inclination: inclination

  - Number of Satellites: satellites

  - Mass: mass

  - Mean Density: density

  - Surface Area: area

  - Equatorial Gravity: gravity

  - Mean Surface Temperature: temperature

## Date & Time

Add Days

  `addDays(Date, Days)`

  ### Arguments

  - Date: a date

  - Days: an integer

Add Months

  `addMonths(Date, Months)`

  ### Arguments

  - Date: a date

  - Months: an integer

Add Time

  `addTime(Date, Time)`

  Adds a time value to a date. The value can be positive or negative, but must use a unit based on seconds (such as day and year). Fractions of days are truncated.

  ### Arguments

  - Date: a date

  - Time: a free value that fulfills the condition: "isNumber(Time/day)"

Add Years

  `addYears(Date, Years)`

  ### Arguments

  - Date: a date

  - Years: an integer

Current Time

  `time()`

Date to Unix Timestamp

  `timestamp([Date])`

  ### Arguments

  - Date: a date (optional, default: now)

Day of Month

  `day([Date])`

  ### Arguments

  - Date: a date (optional, default: today)

Day of Week

  `weekday([Date][, Week begins on Sunday])`

  ### Arguments

  - Date: a date (optional, default: today)

  - Week begins on Sunday: a boolean (0 or 1) (optional, default: 0)

Day of Year

  `yearday([Date])`

  ### Arguments

  - Date: a date (optional, default: today)

Days between two dates

  `days(First date, Second date[, Day counting basis][, Financial function mode])`

  Returns the number of days between two dates.

  Basis is the type of day counting you want to use: 0: US 30/360, 1: real days (default), 2: real days/360, 3: real days/365 or 4: European 30/360.

  ### Arguments

  - First date: a date

  - Second date: a date

  - Day counting basis: an integer >= 0 and <= 4 (optional, default: 1)

  - Financial function mode: a boolean (0 or 1) (optional, default: 0)

Local Date Format

  `localdate([Date])`

  ### Arguments

  - Date: a date (optional, default: today)

Month

  `month([Date])`

  ### Arguments

  - Date: a date (optional, default: today)

Standard Date Format

  `isodate([Date])`

  ### Arguments

  - Date: a date (optional, default: today)

Unix Timestamp to Date

  `stamptodate(Timestamp)`

  ### Arguments

  - Timestamp: an integer

Week of Year

  `week([Date][, Week begins on Sunday])`

  ### Arguments

  - Date: a date (optional, default: today)

  - Week begins on Sunday: a boolean (0 or 1) (optional, default: 0)

Year

  `year([Date])`

  ### Arguments

  - Date: a date (optional, default: today)

Years between two dates

  `yearfrac(First date, Second date[, Day counting basis][, Financial function mode])`

  Returns the number of years (fractional) between two dates.

  Basis is the type of day counting you want to use: 0: US 30/360, 1: real days (default), 2: real days/360, 3: real days/365 or 4: European 30/360.

  ### Arguments

  - First date: a date

  - Second date: a date

  - Day counting basis: an integer >= 0 and <= 4 (optional, default: 1)

  - Financial function mode: a boolean (0 or 1) (optional, default: 0)

## Economics

### Finance

Accrued interest of security paying at maturity

  `accrintm(Issue date, Settlement date, Annual rate of security[, Par value][, Day counting basis])`

  Returns the accrued interest for a security which pays interest at maturity date.

  Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360.

  #### Arguments

  - Issue date: a date

  - Settlement date: a date

  - Annual rate of security: a free value

  - Par value: a free value (optional, default: 1000)

  - Day counting basis: an integer >= 0 and <= 4 (optional, default: 0)

Accrued interest of security with periodic interest payments

  `accrint(Issue date, First interest, Settlement date, Annual rate of security, Par value, Frequency[, Day counting basis])`

  Returns accrued interest for a security which pays periodic interest.

  Allowed frequencies are 1 - annual, 2 - semi-annual or 4 - quarterly. Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360.

  #### Arguments

  - Issue date: a date

  - First interest: a date

  - Settlement date: a date

  - Annual rate of security: a free value

  - Par value: a free value

  - Frequency: an integer >= 1 and <= 4

  - Day counting basis: an integer >= 0 and <= 4 (optional, default: 0)

Amount received at maturity for a security bond

  `received(Settlement date, Maturity date, Investment, Discount rate[, Day counting basis])`

  Returns the amount received at the maturity date for an invested security.

  Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360. The settlement date must be before maturity date.

  #### Arguments

  - Settlement date: a date

  - Maturity date: a date

  - Investment: a free value

  - Discount rate: a free value

  - Day counting basis: an integer >= 0 and <= 4 (optional, default: 0)

Compound

  `compound(Principal, Nominal interest rate, Periods per year, Years)`

  Returns the value of an investment, given the principal, nominal interest rate, compounding frequency and time.

  #### Arguments

  - Principal: a free value

  - Nominal interest rate: a free value

  - Periods per year: a free value

  - Years: a free value

Discount rate for a security

  `disc(Settlement date, Maturity date, Price per $100 face value, Redemption[, Day counting basis])`

  Returns the discount rate for a security.

  Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360.

  #### Arguments

  - Settlement date: a date

  - Maturity date: a date

  - Price per $100 face value: a free value

  - Redemption: a free value

  - Day counting basis: an integer >= 0 and <= 4 (optional, default: 0)

Dollar Decimal

  `dollarde(Fractional dollar, Denominator of fraction)`

  Converts a dollar price expressed as a fraction into a dollar price expressed as a decimal number.

  #### Arguments

  - Fractional dollar: a free value

  - Denominator of fraction: an integer >= 1

Dollar Fraction

  `dollarfr(Decimal dollar, Denominator of fraction)`

  Converts a decimal dollar price into a dollar price expressed as a fraction.

  #### Arguments

  - Decimal dollar: a free value

  - Denominator of fraction: an integer >= 1

Effective Interest Rate

  `effect(Nominal interest rate, Periods)`

  Calculates the effective interest for a given nominal rate.

  #### Arguments

  - Nominal interest rate: a free value

  - Periods: a free value

Future Value

  `fv(Interest rate, Number of periods, Payment made each period[, Present value][, Type])`

  Computes the future value of an investment. This is based on periodic, constant payments and a constant interest rate.

  If type = 1 then the payment is made at the beginning of the period, If type = 0 (or omitted) it is made at the end of each period.

  #### Arguments

  - Interest rate: a free value

  - Number of periods: a free value

  - Payment made each period: a free value

  - Present value: a free value (optional, default: 0)

  - Type: a boolean (0 or 1) (optional, default: 0)

Interest paid on a given period of an investment (ISPMT)

  `ispmt(Periodic interest rate, Amortizement period, Number of periods, Present value)`

  Calculates the interest paid on a given period of an investment.

  #### Arguments

  - Periodic interest rate: a free value

  - Amortizement period: an integer >= 1

  - Number of periods: an integer >= 1

  - Present value: a free value

Interest rate for a fully invested security

  `intrate(Settlement date, Maturity date, Investment, Redemption[, Day counting basis])`

  Returns the interest rate for a fully invested security.

  Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360.

  #### Arguments

  - Settlement date: a date

  - Maturity date: a date

  - Investment: a free value

  - Redemption: a free value

  - Day counting basis: an integer >= 0 and <= 4 (optional, default: 0)

Level-Coupon Bond

  `level_coupon(Face value, Coupon rate, Coupons per year, Years, Market interest rate)`

  Calculates the value of a level-coupon bond.

  #### Arguments

  - Face value: a free value

  - Coupon rate: a free value

  - Coupons per year: a free value

  - Years: a free value

  - Market interest rate: a free value

Nominal Interest Rate

  `nominal(Effective interest rate, Periods)`

  Calculates the nominal interest rate from a given effective interest rate compounded at given intervals.

  #### Arguments

  - Effective interest rate: a free value

  - Periods: a free value

Number of coupons to be paid

  `coupnum(Settlement date, Maturity date, Frequency[, Day counting basis])`

  Returns the number of coupons to be paid between the settlement and the maturity.

  Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360.

  #### Arguments

  - Settlement date: a date

  - Maturity date: a date

  - Frequency: an integer >= 1 and <= 12

  - Day counting basis: an integer >= 0 and <= 4 (optional, default: 0)

Payment for a loan

  `pmt(Rate, Number of periods, Present value[, Future value][, Type])`

  Returns the amount of payment for a loan based on a constant interest rate and constant payments (each payment is equal amount).

  If type = 1 then the payment is made at the beginning of the period, If type = 0 (or omitted) it is made at the end of each period.

  #### Arguments

  - Rate: a free value

  - Number of periods: a free value

  - Present value: a free value

  - Future value: a free value (optional, default: 0)

  - Type: a boolean (0 or 1) (optional, default: 0)

Payment of an annuity going towards interest (IPMT)

  `ipmt(Periodic interest rate, Period, Number of periods, Present value[, Future value][, Type])`

  Calculates the amount of a payment of an annuity going towards interest.

  Type defines the due date. 1 for payment at the beginning of a period and 0 (default) for payment at the end of a period.

  #### Arguments

  - Periodic interest rate: a free value

  - Period: an integer >= 1

  - Number of periods: an integer >= 1

  - Present value: a free value

  - Future value: a free value (optional, default: 0)

  - Type: a boolean (0 or 1) (optional, default: 0)

Payment of an annuity going towards principal (PPMT)

  `ppmt(Periodic interest rate, Amortizement period, Number of periods, Present value[, Desired future value][, Type])`

  Calculates the amount of a payment of an annuity going towards principal.

  Type defines the due date. 1 for payment at the beginning of a period and 0 (default) for payment at the end of a period.

  #### Arguments

  - Periodic interest rate: a free value

  - Amortizement period: an integer >= 1

  - Number of periods: an integer >= 1

  - Present value: a free value

  - Desired future value: a free value (optional, default: 0)

  - Type: a boolean (0 or 1) (optional, default: 0)

Periods for investment to attain desired value

  `g_duration(Rate, Present value, Future value)`

  Returns the number of periods needed for an investment to attain a desired value.

  #### Arguments

  - Rate: a free value

  - Present value: a free value

  - Future value: a free value

Periods of an investment

  `nper(Interest rate, Payment made each period, Present value[, Future value][, Type])`

  Calculates number of periods of an investment based on periodic constant payments and a constant interest rate.

  Type defines the due date. 1 for payment at the beginning of a period and 0 (default) for payment at the end of a period.

  #### Arguments

  - Interest rate: a free value

  - Payment made each period: a free value

  - Present value: a free value

  - Future value: a free value (optional, default: 0)

  - Type: a free value (optional, default: 0)

Present Value

  `pv(Interest rate, Number of periods, Payment made each period[, Future value][, Type])`

  Returns the present value of an investment.

  If type = 1 then the payment is made at the beginning of the period, If type = 0 (or omitted) it is made at the end of each period.

  #### Arguments

  - Interest rate: a free value

  - Number of periods: a free value

  - Payment made each period: a free value

  - Future value: a free value (optional, default: 0)

  - Type: a boolean (0 or 1) (optional, default: 0)

Price per $100 face value of a security

  `pricemat(Settlement date, Maturity date, Issue date, Discount rate, Annual yield[, Day counting basis])`

  Calculates and returns the price per $100 face value of a security. The security pays interest at maturity.

  Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360.

  #### Arguments

  - Settlement date: a date

  - Maturity date: a date

  - Issue date: a date

  - Discount rate: a free value

  - Annual yield: a free value

  - Day counting basis: an integer >= 0 and <= 4 (optional, default: 0)

Price per $100 face value of a security bond

  `pricedisc(Settlement date, Maturity date, Discount, Redemption[, Day counting basis])`

  Calculates and returns the price per $100 face value of a security bond. The security does not pay interest at maturity.

  Basis is the type of day counting you want to use: 0: US 30/360 (default), 1: real days, 2: real days/360, 3: real days/365 or 4: European 30/360.

  #### Arguments

  - Settlement date: a date

  - Maturity date: a date

  - Discount: a free value

  - Redemption: a free value

  - Day counting basis: an integer >= 0 and <= 4 (optional, default: 0)

Return on continuously compounded interest

  `continuous(Principal, Interest rate, Years)`

  Calculates the return on continuously compounded interest, given the principal, nominal rate and time in years.

  #### Arguments

  - Principal: a free value

  - Interest rate: a free value

  - Years: a free value

Straight Line Depreciation

  `sln(Cost, Salvage value, Life)`

  Determines the straight line depreciation of an asset for a single period.

  Cost is the amount you paid for the asset. Salvage is the value of the asset at the end of the period. Life is the number of periods over which the asset is depreciated. SLN divides the cost evenly over the life of an asset.

  #### Arguments

  - Cost: a free value

  - Salvage value: a free value

  - Life: a free value

Sum-of-Years Digits Depreciation

  `syd(Cost, Salvage value, Life, Period)`

  Calculates the sum-of-years digits depreciation for an asset based on its cost, salvage value, anticipated life, and a particular period. This method accelerates the rate of the depreciation, so that more depreciation expense occurs in earlier periods than in later ones. The depreciable cost is the actual cost minus the salvage value. The useful life is the number of periods (typically years) over which the asset is depreciated.

  #### Arguments

  - Cost: a free value

  - Salvage value: a free value

  - Life: a free value

  - Period: a free value

Treasury Bill Equivalent

  `tbilleq(Settlement date, Maturity date, Discount rate)`

  Returns the bond equivalent for a treasury bill.

  #### Arguments

  - Settlement date: a date

  - Maturity date: a date

  - Discount rate: a free value

Treasury Bill Price

  `tbillprice(Settlement date, Maturity date, Discount rate)`

  Returns the price per $100 value for a treasury bill.

  #### Arguments

  - Settlement date: a date

  - Maturity date: a date

  - Discount rate: a free value

Treasury Bill Yield

  `tbillyield(Settlement date, Maturity date, Price per $100 face value)`

  Returns the yield for a treasury bill.

  #### Arguments

  - Settlement date: a date

  - Maturity date: a date

  - Price per $100 face value: a free value

Zero Coupon

  `zero_coupon(Face value, Interest rate, Years)`

  Calculates the value of a zero-coupon (pure discount) bond.

  #### Arguments

  - Face value: a free value

  - Interest rate: a free value

  - Years: a free value

### Microeconomics

Elasticity

  `elasticity(Demand function, Price[, Price variable])`

  Calculates the demand elasticity. Also works for supply elasticity, income elasticity, cross-price elasticity, etc. Just replace demand, with supply, or price with income...

  Ex. elasticity(100-x^2, 3) calculates the demand elasticity when the price is 3 for the function "Q = 100 - x^2" where x is the default price variable.

  #### Arguments

  - Demand function: a free value

  - Price: a free value

  - Price variable: an unknown variable/symbol (optional, default: x)

## Exponents & Logarithms

10 raised the to power X

  `exp10(Exponent)`

  ### Arguments

  - Exponent: a free value

2 raised the to power X

  `exp2(Exponent)`

  ### Arguments

  - Exponent: a free value

Base-10 Logrithm

  `log10(Value)`

  Returns the base n logarithm.

  ### Arguments

  - Value: a number >= 0

Base-2 Logrithm

  `log2(Value)`

  Returns the base n logarithm.

  ### Arguments

  - Value: a number >= 0

Base-N Logarithm

  `log(Value[, Base])`

  ### Arguments

  - Value: a number that is nonzero

  - Base: a number that is nonzero (optional, default: e)

Complex Exponential (Cis)

  `cis(Exponent)`

  ### Arguments

  - Exponent: a free value

Cube Root

  `cbrt(Value)`

  ### Arguments

  - Value: a free value

Exponential (e^x)

  `exp(Exponent)`

  ### Arguments

  - Exponent: a free value

Lambert W Function (Omega Function, Product Log)

  `lambertw(Value)`

  `productlog`

  Returns the inverse function for mx*e^x as ln() does for e^x.

  ### Arguments

  - Value: a real number

Natural Logarithm

  `ln(Value)`

  ### Arguments

  - Value: a number that is nonzero

Nth root

  `root(Base, Exponent)`

  ### Arguments

  - Base: a free value

  - Exponent: a free value

Square

  `sq(Value)`

  ### Arguments

  - Value: a free value

Square Root

  `sqrt(Value)`

  `√`

  ### Arguments

  - Value: a free value

Square root (x * pi)

  `sqrtpi(Non-negative value)`

  Returns the non-negative square root of x * pi

  ### Arguments

  - Non-negative value: a number >= 0

X raised to the power Y

  `pow(Base, Exponent)`

  ### Arguments

  - Base: a free value

  - Exponent: a free value

## Geometry

### Circle

Circle Area

  `circle(Radius)`

  Calculates the area of a circle using the radius

  #### Arguments

  - Radius: a free value

Circle Circumference

  `circumference(Radius)`

  Calculates the area of a circle using the radius

  #### Arguments

  - Radius: a free value

### Cone

Cone Volume

  `cone(Radius, Height)`

  #### Arguments

  - Radius: a free value

  - Height: a free value

Surface Area of Cone

  `cone_sa(Radius, Height)`

  #### Arguments

  - Radius: a free value

  - Height: a free value

### Cube

Cube Volume

  `cube(Length of side)`

  #### Arguments

  - Length of side: a free value

Surface Area of Cube

  `cube_sa(Length of side)`

  #### Arguments

  - Length of side: a free value

### Cylinder

Cylinder Volume

  `cylinder(Radius, Height)`

  #### Arguments

  - Radius: a free value

  - Height: a free value

Surface Area of Cylinder

  `cylinder_sa(Radius, Height)`

  #### Arguments

  - Radius: a free value

  - Height: a free value

### Parallelogram

Parallelogram Area

  `parallelogram(Base, Height)`

  Calculates the area of a four-sided figure whose opposite sides are both parallel and equal in length.

  #### Arguments

  - Base: a free value

  - Height: a free value

Parallelogram Perimeter

  `parallelogram_perimeter(Side A, Side B)`

  Calculates the perimeter of a four-sided figure whose opposite sides are both parallel and equal in length.

  #### Arguments

  - Side A: a free value

  - Side B: a free value

### Prism

Surface Area of Rectangular Prism

  `rectprism_sa(Length, Width, Height)`

  Calculates the surface area of a prism with rectangular base.

  #### Arguments

  - Length: a free value

  - Width: a free value

  - Height: a free value

Volume of Rectangular Prism

  `rectprism(Length, Width, Height)`

  Calculates the volume of a prism with rectangular base.

  #### Arguments

  - Length: a free value

  - Width: a free value

  - Height: a free value

Volume of Triangular Prism

  `triangleprism(Length, Width, Height)`

  Calculates the volume of a prism with triangular base.

  #### Arguments

  - Length: a free value

  - Width: a free value

  - Height: a free value

### Pyramid

Height of Regular Tetrahedron

  `tetrahedron_height(Length of side)`

  #### Arguments

  - Length of side: a free value

Height of Square Pyramid

  `sqpyramid_height(Length of side)`

  #### Arguments

  - Length of side: a free value

Pyramid Volume

  `pyramid(Length of base, Width of base, Height)`

  Calculates the volume of a 3-dimensional shape standing on a rectangular base and terminating in a point at the top.

  #### Arguments

  - Length of base: a free value

  - Width of base: a free value

  - Height: a free value

Surface Area of Regular Tetrahedron

  `tetrahedron_sa(Length of side)`

  #### Arguments

  - Length of side: a free value

Surface Area of Square Pyramid

  `sqpyramid_sa(Length of side)`

  #### Arguments

  - Length of side: a free value

Volume of Regular Tetrahedron

  `tetrahedron(Length of side)`

  #### Arguments

  - Length of side: a free value

Volume of Square Pyramid

  `sqpyramid(Length of side)`

  #### Arguments

  - Length of side: a free value

### Rectangle

Rectangle Area

  `rect(Length, Width)`

  #### Arguments

  - Length: a free value

  - Width: a free value

Rectangle Perimeter

  `rect_perimeter(Length, Width)`

  #### Arguments

  - Length: a free value

  - Width: a free value

### Sphere

Sphere Volume

  `sphere(Radius)`

  #### Arguments

  - Radius: a free value

Surface Area of Sphere

  `sphere_sa(Radius)`

  #### Arguments

  - Radius: a free value

### Square

Square Area

  `square(Length of side)`

  #### Arguments

  - Length of side: a free value

Square Perimeter

  `square_perimeter(Length of side)`

  #### Arguments

  - Length of side: a free value

### Trapezoid

Trapezoid Area

  `trapezoid(Side A, Side B, Height)`

  Calculates the area of a four-sided figure with two parallel sides.

  #### Arguments

  - Side A: a free value

  - Side B: a free value

  - Height: a free value

### Triangle

Hypotenuse

  `hypot(Side A, Side B)`

  #### Arguments

  - Side A: a free value

  - Side B: a free value

Triangle Area

  `triangle(Base, Height)`

  #### Arguments

  - Base: a free value

  - Height: a free value

Triangle Perimeter

  `triangle_perimeter(Side A, Side B)`

  #### Arguments

  - Side A: a free value

  - Side B: a free value

## Logical

Bitwise Exclusive OR

  `bitxor(Value 1, Value 2)`

  ### Arguments

  - Value 1: an integer or a vector

  - Value 2: an integer or a vector

Bitwise Shift

  `shift(Number, Bits)`

  ### Arguments

  - Number: an integer

  - Bits: an integer

For...Do

  `for(Initial value of counter, Counter variable, For condition, Counter update function, Initial value, Do function, Value variable)`

  ### Arguments

  - Initial value of counter: a free value

  - Counter variable: an unknown variable/symbol

  - For condition: a free value

  - Counter update function: a free value

  - Initial value: a free value

  - Do function: a free value

  - Value variable: an unknown variable/symbol

If...Then...Else

  `if(Condition, Expression if condition is met, Expression if condition is NOT met)`

  Tests a condition and returns a value depending on the result.

  ### Arguments

  - Condition: a real number

  - Expression if condition is met: a free value

  - Expression if condition is NOT met: a free value

Logical Exclusive OR

  `xor(Value 1, Value 2)`

  ### Arguments

  - Value 1: a free value

  - Value 2: a free value

## Matrices & Vectors

Adjugate (Adjoint)

  `adj(Matrix)`

  Calculates the adjugate or adjoint of a matrix.

  ### Arguments

  - Matrix: a square matrix

Cofactor

  `cofactor(Matrix, Row, Column)`

  Calculates the cofactor of the element at specified position.

  ### Arguments

  - Matrix: a matrix

  - Row: an integer >= 1

  - Column: an integer >= 1

Columns

  `columns(Matrix)`

  Returns the number of columns in a matrix.

  ### Arguments

  - Matrix: a matrix

Construct Matrix

  `matrix(Rows, Columns, Elements)`

  Returns a matrix with specified dimensions and listed elements. Omitted elements are set to zero.

  ### Arguments

  - Rows: an integer >= 1

  - Columns: an integer >= 1

  - Elements: a vector

Construct Vector

  `vector([argument 1], ...)`

  Returns a vector with listed elements.

  ### Arguments

  - 1: a free value (optional)

Convert Matrix to Vector

  `matrix2vector(Matrix)`

  Puts each element of a matrix in vertical order in a vector.

  ### Arguments

  - Matrix: a matrix

Cross Product

  `cross(Vector 1, Vector 2)`

  Calculates the cross product of two 3-dimensional vectors.

  ### Arguments

  - Vector 1: a vector that fulfills the condition: "dimension(Vector 1)==3"

  - Vector 2: a vector that fulfills the condition: "dimension(Vector 2)==3"

Determinant

  `det(Matrix)`

  Calculates the determinant of a matrix.

  ### Arguments

  - Matrix: a square matrix

Dimension

  `dimension(Vector)`

  Returns the number of elements in a vector.

  ### Arguments

  - Vector: a vector

Element

  `element(Matrix/vector, Row/index[, Column])`

  Returns the element at specified position in a matrix (row and column) or vector (index).

  ### Arguments

  - Matrix/vector: a vector

  - Row/index: an integer >= 1

  - Column: an integer (optional, default: 0)

Elements

  `elements(Matrix or vector)`

  Returns the number of elements in a matrix or vector.

  ### Arguments

  - Matrix or vector: a vector

Export To CSV File

  `export(Matrix/vector, Filename[, Separator])`

  Exports a matrix to a CSV data file.

  ### Arguments

  - Matrix/vector: a vector

  - Filename: a valid file name

  - Separator: a text string (optional, default: ,)

Extract Column as Vector

  `column(Matrix, Column)`

  Returns a column in a matrix as a vector.

  ### Arguments

  - Matrix: a matrix

  - Column: an integer >= 1

Extract row as vector

  `row(Matrix, Row)`

  Returns a row in a matrix as a vector.

  ### Arguments

  - Matrix: a matrix

  - Row: an integer >= 1

Generate Vector

  `genvector(Function, Min, Max, Dimension / Step size[, Variable][, Use step size])`

  Returns a vector generated from a function with a variable (default x) running from min to max. The fourth argument is either the requested number of elements if the sixth argument is false (default) or the step between each value of the variable.

  ### Arguments

  - Function: a free value

  - Min: a free value

  - Max: a free value

  - Dimension / Step size: a free value

  - Variable: an unknown variable/symbol (optional, default: x)

  - Use step size: a boolean (0 or 1) (optional, default: 0)

Identity

  `identity(Matrix or rows/columns)`

  Returns the identity matrix of a matrix or with specified number of rows/columns.

  ### Arguments

  - Matrix or rows/columns: an integer >= 1 or a square matrix

Load CSV File

  `load(Filename[, First data row][, Separator])`

  Returns a matrix imported from a CSV data file.

  ### Arguments

  - Filename: a valid file name

  - First data row: an integer >= 1 (optional, default: 1)

  - Separator: a text string (optional, default: ,)

Matrix Area

  `area(Matrix, Start row, Start column, End row, End column)`

  Returns a part of a matrix.

  ### Arguments

  - Matrix: a matrix

  - Start row: an integer >= 1

  - Start column: an integer >= 1

  - End row: an integer >= 1

  - End column: an integer >= 1

Matrix Inverse

  `inverse(Matrix)`

  Calculates the inverse of a matrix. The inverse is the matrix that multiplied by the original matrix equals the identity matrix (AB = BA = I).

  ### Arguments

  - Matrix: a square matrix

Merge Vectors

  `mergevectors(Vector 1[, Vector 2], ...)`

  Returns a vector with the elements from two vectors.

  ### Arguments

  - Vector 1: a vector

  - Vector 2: a vector (optional)

Norm (length)

  `norm(Vector)`

  Calculates the norm/length of a vector.

  ### Arguments

  - Vector: a vector

Permanent

  `permanent(Matrix)`

  Calculates the permanent of a matrix. The permanent differs from a determinant in that all signs in the expansion by minors are taken as positive.

  ### Arguments

  - Matrix: a square matrix

Rank

  `rank(Vector[, Ascending])`

  Returns a vector with values of elements replaced with their mutual ranks.

  ex. rank([6, 1, 4]) = [3, 1, 2]

  ### Arguments

  - Vector: a vector

  - Ascending: a boolean (0 or 1) (optional, default: 1)

Rows

  `rows(Matrix)`

  Returns the number of rows in a matrix.

  ### Arguments

  - Matrix: a matrix

Sort

  `sort(Vector[, Ascending])`

  Returns a sorted vector.

  ex. sort([6, 1, 4])=[1, 4, 6]

  ### Arguments

  - Vector: a vector

  - Ascending: a boolean (0 or 1) (optional, default: 1)

Transpose

  `transpose(Matrix)`

  Returns the transpose of a matrix.

  ### Arguments

  - Matrix: a matrix

Vector Limits

  `limits(Vector, Lower limit, Upper limit)`

  Returns a part of a vector between two positions.

  ### Arguments

  - Vector: a vector

  - Lower limit: an integer

  - Upper limit: an integer

## Miscellaneous

Body Mass Index (BMI)

  `bmi(Weight, Length)`

  Calculates the Body Mass Index. The resulting BMI-value is sometimes interpreted as follows (although varies with age, sex, etc.):

  Underweight < 18.5

  Normal weight 18.5-25

  Overweight 25-30

  Obesity > 30

  Note that you must use units for weight (ex. 59kg) and length (ex. 174cm).

  ### Arguments

  - Weight: a free value

  - Length: a free value

Kronecker Delta

  `kronecker(Value 1 (i)[, Value 2 (j)])`

  Returns 0 if i != j and 1 if i = j.

  ### Arguments

  - Value 1 (i): a real number

  - Value 2 (j): a real number (optional, default: 0)

Riemann Zeta

  `zeta(Integral point)`

  ### Arguments

  - Integral point: an integer >= 1 and <= 2.1474836E9

Roman Number

  `roman(Roman number)`

  Returns the value of a roman number.

  ### Arguments

  - Roman number: a text string

## Number Theory

Absolute Value

  `abs(Value)`

  ### Arguments

  - Value: a number

Greatest Common Divisor

  `gcd(1st value, 2nd value)`

  ### Arguments

  - 1st value: a free value that is rational (polynomial)

  - 2nd value: a free value that is rational (polynomial)

Least Common Multiplier

  `lcm(1st value, 2nd value)`

  ### Arguments

  - 1st value: a free value that is rational (polynomial)

  - 2nd value: a free value that is rational (polynomial)

### Arithmetics

Add

  `add(Terms)`

  #### Arguments

  - Terms: a vector

Denominator

  `denominator(Number)`

  #### Arguments

  - Number: a rational number

Divide

  `divide(Numerator, Denominator)`

  #### Arguments

  - Numerator: a free value

  - Denominator: a free value

Modulus

  `mod(Numerator, Denominator)`

  #### Arguments

  - Numerator: a real number

  - Denominator: a real number that is nonzero

Multiply

  `multiply(Factors)`

  #### Arguments

  - Factors: a vector

Negate

  `neg(Value)`

  #### Arguments

  - Value: a free value

Numerator

  `numerator(Number)`

  #### Arguments

  - Number: a rational number

Raise

  `raise(Base, Exponent)`

  #### Arguments

  - Base: a free value

  - Exponent: a free value

Reciprocal

  `inv(Value)`

  #### Arguments

  - Value: a free value

Remainder

  `rem(Numerator, Denominator)`

  #### Arguments

  - Numerator: a real number

  - Denominator: a real number that is nonzero

Signum

  `sgn(Number)`

  #### Arguments

  - Number: a number

Subtract

  `subtract(Terms)`

  #### Arguments

  - Terms: a vector

### Integers

Even

  `even(Number)`

  #### Arguments

  - Number: an integer

Odd

  `odd(Number)`

  #### Arguments

  - Number: an integer

### Number Bases

Binary

  `bin(Binary number)`

  Returns an integer from a binary number

  #### Arguments

  - Binary number: a text string

Hexadecimal

  `hex(Hexadecimal number)`

  Returns a value from a hexadecimal number

  #### Arguments

  - Hexadecimal number: a text string

Number Base

  `base(Number, Base)`

  Returns an integer from a number of specified base between 2 and 36

  #### Arguments

  - Number: a text string

  - Base: an integer >= 2 and <= 36

Octal

  `oct(Octal number)`

  Returns an integer from an octal number

  #### Arguments

  - Octal number: a text string

### Polynomials

Coefficient

  `coeff(Polynomial, Number[, Variable])`

  #### Arguments

  - Polynomial: a free value that is rational (polynomial)

  - Number: an integer >= 0

  - Variable: an unknown variable/symbol (optional, default: x)

Content Part

  `pcontent(Polynomial[, Variable])`

  #### Arguments

  - Polynomial: a free value that is rational (polynomial)

  - Variable: an unknown variable/symbol (optional, default: x)

Leading Coefficient

  `lcoeff(Polynomial[, Variable])`

  #### Arguments

  - Polynomial: a free value that is rational (polynomial)

  - Variable: an unknown variable/symbol (optional, default: x)

Lowest Degree (Valuation)

  `ldegree(Polynomial[, Variable])`

  #### Arguments

  - Polynomial: a free value that is rational (polynomial)

  - Variable: an unknown variable/symbol (optional, default: x)

Polynomial Degree

  `degree(Polynomial[, Variable])`

  #### Arguments

  - Polynomial: a free value that is rational (polynomial)

  - Variable: an unknown variable/symbol (optional, default: x)

Primitive Part

  `primpart(Polynomial[, Variable])`

  #### Arguments

  - Polynomial: a free value that is rational (polynomial)

  - Variable: an unknown variable/symbol (optional, default: x)

Trailing Coefficient

  `tcoeff(Polynomial[, Variable])`

  #### Arguments

  - Polynomial: a free value that is rational (polynomial)

  - Variable: an unknown variable/symbol (optional, default: x)

Unit Part

  `punit(Polynomial[, Variable])`

  #### Arguments

  - Polynomial: a free value that is rational (polynomial)

  - Variable: an unknown variable/symbol (optional, default: x)

### Rounding

Extract Fractional Part

  `frac(Value)`

  #### Arguments

  - Value: a real number

Extract Integer Part

  `int(Value)`

  #### Arguments

  - Value: a real number

Round

  `round(Value)`

  #### Arguments

  - Value: a real number

Round Downwards

  `floor(Value)`

  #### Arguments

  - Value: a real number

Round Towards Zero

  `trunc(Value)`

  #### Arguments

  - Value: a real number

Round Upwards

  `ceil(Value)`

  #### Arguments

  - Value: a real number

## Statistics

Random Number

  `rand([Ceil])`

  Generates a pseudo-random number. Returns a real number between 0 and 1, if ceil is zero (default), or an integer between 1 and (including) ceil.

  ### Arguments

  - Ceil: an integer (optional, default: 0)

Random Number Between Limits

  `randbetween(Bottom, Top)`

  Returns an integer between (including) bottom and top.

  ### Arguments

  - Bottom: an integer

  - Top: an integer

  ### Requirement

  "Bottom"<="Top"

### Descriptive Statistics

Decile

  `decile(Data, Decile)`

  #### Arguments

  - Data: a vector

  - Decile: a number >= 0 and <= 100

Interquartile Range

  `iqr(Data)`

  Calculates the difference between the first and third quartile.

  #### Arguments

  - Data: a vector

Max

  `max(Vector)`

  Returns the highest value.

  #### Arguments

  - Vector: a vector

Median

  `median(Data)`

  #### Arguments

  - Data: a vector

Min

  `min(Vector)`

  Returns the lowest value.

  #### Arguments

  - Vector: a vector

Mode

  `mode(Vector)`

  Returns the most frequently occuring value.

  #### Arguments

  - Vector: a vector

Number of Samples

  `number(Data)`

  Returns the number of samples.

  #### Arguments

  - Data: a vector

Percentile

  `percentile(Vector, Percentile (%))`

  #### Arguments

  - Vector: a vector

  - Percentile (%): a number > 0 and < 99

Quartile

  `quartile(Data, Quartile)`

  #### Arguments

  - Data: a vector

  - Quartile: an integer >= 1 and <= 3

Range

  `range(Data)`

  Calculates the difference between the min and max value.

  #### Arguments

  - Data: a vector

Sum (total)

  `total(Data)`

  #### Arguments

  - Data: a vector

### Distribution

Logistic Distribution

  `logistic(X, Scale)`

  Returns the probability density p(x) at x for a logistic distribution with scale parameter. (from Gnumeric)

  #### Arguments

  - X: a free value

  - Scale: a number >= 0

Pareto Distribution

  `pareto(X, Exponent, Scale)`

  Returns the probability density p(x) at x for a Pareto distribution with exponent and scale. (from Gnumeric)

  #### Arguments

  - X: a free value

  - Exponent: a number >= 0

  - Scale: a number >= 0

Rayleigh Distribution

  `rayleigh(X, Sigma)`

  Returns the probability density p(x) at x for a Rayleigh distribution with scale parameter sigma. (from Gnumeric)

  #### Arguments

  - X: a free value

  - Sigma: a number >= 0

Rayleigh Tail Distribution

  `rayleightail(X, Lower limit, Sigma)`

  Returns the probability density p(x) at x for a Rayleigh tail distribution with scale parameter sigma and a lower limit. (from Gnumeric)

  #### Arguments

  - X: a free value

  - Lower limit: a free value

  - Sigma: a number >= 0

### Means

Geometric Mean

  `geomean(Data)`

  #### Arguments

  - Data: a vector

Harmonic Mean

  `harmmean(Data)`

  #### Arguments

  - Data: a vector

Mean

  `mean(Data)`

  `average`

  #### Arguments

  - Data: a vector

Quadratic Mean (RMS)

  `rms(Data)`

  #### Arguments

  - Data: a vector

Trimmed Mean

  `trimmean(Data, Trimmed percentage (at each end))`

  #### Arguments

  - Data: a vector

  - Trimmed percentage (at each end): a free value

Weighted Mean

  `weighmean(Data, Weights)`

  #### Arguments

  - Data: a vector

  - Weights: a vector

Winsorized Mean

  `winsormean(Data, Winsorized percentage (at each end))`

  #### Arguments

  - Data: a vector

  - Winsorized percentage (at each end): a free value

### Moments

Covariance

  `cov(Data 1, Data 2)`

  `covar`

  #### Arguments

  - Data 1: a vector

  - Data 2: a vector

Mean Deviation

  `meandev(Data)`

  #### Arguments

  - Data: a vector

Pooled Variance

  `poolvar(Data 1, Data 2)`

  #### Arguments

  - Data 1: a vector

  - Data 2: a vector

Standard Deviation (entire population)

  `stdevp(Data)`

  #### Arguments

  - Data: a vector

Standard Deviation (random sampling)

  `stdev(Data)`

  #### Arguments

  - Data: a vector

Standard Error

  `stderr(Data)`

  #### Arguments

  - Data: a vector

Variance (entire population)

  `varp(Data)`

  #### Arguments

  - Data: a vector

Variance (random sampling)

  `var(Data)`

  #### Arguments

  - Data: a vector

### Regression

Pearson's Correlation Coefficient

  `pearson(Data 1, Data 2)`

  `correl`

  #### Arguments

  - Data 1: a vector

  - Data 2: a vector

  #### Requirement

  dimension("Data 1")=dimension("Data 2")

Spearman's Rho

  `spearman(Data 1, Data 2)`

  #### Arguments

  - Data 1: a vector

  - Data 2: a vector

  #### Requirement

  dimension("Data 1")=dimension("Data 2")

Statistical Correlation

  `cor(Data 1, Data 2)`

  #### Arguments

  - Data 1: a vector

  - Data 2: a vector

### Statistical Tests

Paired T-Test

  `pttest(Data 1, Data 2)`

  #### Arguments

  - Data 1: a vector

  - Data 2: a vector

Unpaired T-Test

  `ttest(Data 1, Data 2)`

  #### Arguments

  - Data 1: a vector

  - Data 2: a vector

## Step Functions

Heaviside Step Function

  `heaviside(Value)`

  Discontinuous function also known as "unit step function". Returns 0 if x < 0, 1 if x > 0, and 1/2 if x = 0.

  ### Arguments

  - Value: a real number

Logit Transformation

  `logit(Value)`

  ### Arguments

  - Value: a number

Ramp Function

  `ramp(Value)`

  ### Arguments

  - Value: a real number

Rectangular Function

  `rectangular(Value)`

  ### Arguments

  - Value: a real number

Sigmoid Function

  `sigmoid(Value)`

  ### Arguments

  - Value: a number

Triangular Function

  `triangular(Value)`

  ### Arguments

  - Value: a real number

## Trigonometry

Cosecant

  `csc(Angle)`

  ### Arguments

  - Angle: an angle or a number (using the default angle unit)

Cosine

  `cos(Angle)`

  ### Arguments

  - Angle: an angle or a number (using the default angle unit)

Cotangent

  `cot(Angle)`

  ### Arguments

  - Angle: an angle or a number (using the default angle unit)

Hyperbolic Cosecant

  `csch(argument 1)`

  ### Arguments

  - 1: a free value

Hyperbolic Cosine

  `cosh(argument 1)`

  ### Arguments

  - 1: a number

Hyperbolic Cotangent

  `coth(argument 1)`

  ### Arguments

  - 1: a free value

Hyperbolic Secant

  `sech(argument 1)`

  ### Arguments

  - 1: a free value

Hyperbolic Sine

  `sinh(argument 1)`

  ### Arguments

  - 1: a number

Hyperbolic Tangent

  `tanh(argument 1)`

  ### Arguments

  - 1: a free value

Inverse Cosecant

  `acsc(argument 1)`

  ### Arguments

  - 1: a free value

Inverse Cosine

  `acos(argument 1)`

  ### Arguments

  - 1: a number

Inverse Cotangent

  `acot(argument 1)`

  ### Arguments

  - 1: a free value

Inverse Hyperbolic Cosecant

  `acsch(argument 1)`

  ### Arguments

  - 1: a free value

Inverse Hyperbolic Cosine

  `acosh(argument 1)`

  ### Arguments

  - 1: a number

Inverse Hyperbolic Cotangent

  `acoth(argument 1)`

  ### Arguments

  - 1: a free value

Inverse Hyperbolic Secant

  `asech(argument 1)`

  ### Arguments

  - 1: a free value

Inverse Hyperbolic Sine

  `asinh(argument 1)`

  ### Arguments

  - 1: a number

Inverse Hyperbolic Tangent

  `atanh(argument 1)`

  ### Arguments

  - 1: a number

Inverse Secant

  `asec(argument 1)`

  ### Arguments

  - 1: a free value

Inverse Sine

  `asin(argument 1)`

  ### Arguments

  - 1: a number

Inverse Tangent

  `atan(argument 1)`

  ### Arguments

  - 1: a number

Radians to Default Angle Unit

  `radtodef(Radians)`

  ### Arguments

  - Radians: a free value

Secant

  `sec(Angle)`

  ### Arguments

  - Angle: an angle or a number (using the default angle unit)

Sine

  `sin(Angle)`

  ### Arguments

  - Angle: an angle or a number (using the default angle unit)

Tangent

  `tan(Angle)`

  ### Arguments

  - Angle: an angle or a number (using the default angle unit)

## Utilities

ASCII Char

  `char(Value)`

  ### Arguments

  - Value: an integer >= 32 and <= 127

ASCII Value

  `code(Character)`

  ### Arguments

  - Character: a text string that fulfills the condition: "len(Character) = 1"

Concatenate Strings

  `concatenate(Text string 1[, Text string 2], ...)`

  ### Arguments

  - Text string 1: a text string

  - Text string 2: a text string (optional)

Custom Sum of Elements

  `csum(First element, Last element, Initial value, Function, Value variable, Element variable, Vector[, Index variable][, Vector variable])`

  ### Arguments

  - First element: an integer

  - Last element: an integer

  - Initial value: a free value

  - Function: a free value

  - Value variable: an unknown variable/symbol

  - Element variable: an unknown variable/symbol

  - Vector: a vector

  - Index variable: an unknown variable/symbol (optional, default: "")

  - Vector variable: an unknown variable/symbol (optional, default: "")

Display Error

  `error(Message)`

  ### Arguments

  - Message: a text string

Display Message

  `message(Message)`

  ### Arguments

  - Message: a text string

Display Warning

  `warning(Message)`

  ### Arguments

  - Message: a text string

Function

  `function(Expression, Arguments)`

  ### Arguments

  - Expression: a text string

  - Arguments: a vector

Is Integer

  `isInteger(Value)`

  ### Arguments

  - Value: a free value

Is Number

  `isNumber(Value)`

  ### Arguments

  - Value: a free value

Is Rational

  `isRational(Value)`

  ### Arguments

  - Value: a free value

Is Real

  `isReal(Value)`

  ### Arguments

  - Value: a free value

Length of string

  `len(Text)`

  ### Arguments

  - Text: a text string

Process Matrix Elements

  `processm(Function, Element variable, Matrix[, Row variable][, Column variable][, Matrix variable])`

  ### Arguments

  - Function: a free value

  - Element variable: an unknown variable/symbol

  - Matrix: a matrix

  - Row variable: an unknown variable/symbol (optional, default: "")

  - Column variable: an unknown variable/symbol (optional, default: "")

  - Matrix variable: an unknown variable/symbol (optional, default: "")

Process Vector Elements

  `process(Function, Element variable, Vector[, Index variable][, Vector variable])`

  ### Arguments

  - Function: a free value

  - Element variable: an unknown variable/symbol

  - Vector: a vector

  - Index variable: an unknown variable/symbol (optional, default: "")

  - Vector variable: an unknown variable/symbol (optional, default: "")

RPN Stack Register

  `register(Index)`

  Returns the value of a RPN stack register.

  ### Arguments

  - Index: an integer >= 1

RPN Stack Vector

  `stack()`

  Returns the RPN stack as a vector.

Replace

  `replace(Expression, Original value, New value[, Precalculate expression])`

  Replaces a certain value in an expression with a new value. The expression is calculated before the replacement if the fourth argument is true.

  ### Arguments

  - Expression: a free value

  - Original value: a free value

  - New value: a free value

  - Precalculate expression: a boolean (0 or 1) (optional, default: 0)

Represents Integer

  `representsInteger(Value)`

  ### Arguments

  - Value: a free value

Represents Number

  `representsNumber(Value)`

  ### Arguments

  - Value: a free value

Represents Rational

  `representsRational(Value)`

  ### Arguments

  - Value: a free value

Represents Real

  `representsReal(Value)`

  ### Arguments

  - Value: a free value

Save as Variable

  `save(Value, Name[, Category][, Title])`

  ### Arguments

  - Value: a free value

  - Name: a text string

  - Category: a text string (optional, default: Temporary)

  - Title: a text string (optional)

Select Vector Elements

  `select(Vector, Condition[, Element variable][, Select first match])`

  ### Arguments

  - Vector: a free value

  - Condition: a free value

  - Element variable: an unknown variable/symbol (optional, default: x)

  - Select first match: a boolean (0 or 1) (optional, default: 0)

Strip Units

  `nounit(Expression)`

  `strip_units`

  Removes all units from an expression. The expression is calculated before the removal.

  ### Arguments

  - Expression: a free value

Title

  `title(Name)`

  ### Arguments

  - Name: a valid function, unit or variable name