# 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)

  ### 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)

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)

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

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)

  ### 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)

  - Order: an integer >= 1 (optional)

Extreme Values

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

  ### Arguments

  - Function: a free value

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

Integrate

  `integrate(Function[, Variable of Integration])`

  ### Arguments

  - Function: a free value

  - Variable of Integration: an unknown variable/symbol (optional)

## Combinatorics

Binomial Coefficient

  `binomial(Exponent, Index)`

  ### Arguments

  - Exponent: an integer >= 1

  - Index: an integer >= 0

  ### Requirement

  "Exponent">="Index"

Combinations

  `comb(Objects, Size)`

  ### Arguments

  - Objects: a free value

  - Size: a free value

Derangements

  `derangements(Number of Elements)`

  ### Arguments

  - Number of Elements: an integer >= 1

Double Factorial

  `factorial2(Value)`

  ### Arguments

  - Value: an integer >= -1

Factorial

  `factorial(Value)`

  ### Arguments

  - Value: an integer

Hyperfactorial

  `hyperfactorial(Value)`

  ### Arguments

  - Value: an integer >= 1

Multifactorial

  `multifactorial(Value, Factorial)`

  ### Arguments

  - Value: an integer >= 0

  - Factorial: an integer >= 1

Permutations

  `perm(Objects, Size)`

  ### Arguments

  - Objects: a free value

  - Size: a free value

Superfactorial

  `superfactorial(Value)`

  ### 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, or weight) (optional)

  ### 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

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)

  ### 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

Current Time

  `time()`

Day of Month

  `day([Date])`

  ### Arguments

  - Date: a date (optional)

Day of Week

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

  ### Arguments

  - Date: a date (optional)

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

Day of Year

  `yearday([Date])`

  ### Arguments

  - Date: a date (optional)

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)

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

Month

  `month([Date])`

  ### Arguments

  - Date: a date (optional)

Week of Year

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

  ### Arguments

  - Date: a date (optional)

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

Year

  `year([Date])`

  ### Arguments

  - Date: a date (optional)

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)

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

## 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)

  - Day Counting Basis: an integer >= 0 (optional)

Accrued interest of security with periodic interest payments

  `accrint(Issue Date, First Interest, Settlement Date, Annual Rate of Security, Par Value, Number of payments per year[, 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

  - Number of payments per year: an integer >= 1

  - Day Counting Basis: an integer >= 0 (optional)

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 (optional)

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 (optional)

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)

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

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 (optional)

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

  - Day Counting Basis: an integer >= 0 (optional)

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)

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

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)

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

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)

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

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)

  - Type: a free value (optional)

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)

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

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 (optional)

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 (optional)

Return on continuously compounded interest

  `countinuous(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 elesticity. 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)

## 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)

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

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(Diameter)`

  Calculates the area of a circle using the diameter

  #### Arguments

  - Diameter: 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)`

  #### Arguments

  - Base: a free value

  - Height: a free value

Parallelogram Perimeter

  `parallelogram_perimeter(Side A, Side B)`

  #### Arguments

  - Side A: a free value

  - Side B: a free value

### Prism

Surface Area of Rectangular Prism

  `rectprism_sa(Length, Width, Height)`

  #### Arguments

  - Length: a free value

  - Width: a free value

  - Height: a free value

Volume of Rectangular Prism

  `rectprism(Length, Width, Height)`

  #### Arguments

  - Length: a free value

  - Width: a free value

  - Height: a free value

Volume of Triangular Prism

  `triangleprism(Length, Width, Height)`

  #### Arguments

  - Length: a free value

  - Width: a free value

  - Height: a free value

### Pyramid

Pyramid Volume

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

  #### Arguments

  - Length of Base: a free value

  - Width of Base: a free value

  - Height: 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)`

  #### 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

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

## Matrices & Vectors

Adjoint

  `adj(Matrix)`

  Returns the adjoint of a matrix.

  ### Arguments

  - Matrix: a symmetric matrix

Cofactor

  `cofactor(Row, Column, Matrix)`

  Returns the cofactor of the element at specified position.

  ### Arguments

  - Row: an integer >= 1

  - Column: an integer >= 1

  - Matrix: a matrix

Columns

  `columns(Matrix)`

  Returns the number of columns in a matrix.

  ### Arguments

  - Matrix: a matrix

Component

  `component(Component Index, Vector)`

  Returns the component at specified position in a vector.

  ### Arguments

  - Component Index: an integer >= 1

  - Vector: a vector

Construct Matrix

  `matrix(Rows, Columns, Elements)`

  Returns a matrix with specified order 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 components.

  ### 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

Determinant

  `det(Matrix)`

  Calculates the determinant of a matrix.

  ### Arguments

  - Matrix: a symmetric matrix

Dimension

  `dimension(Vector)`

  `components`

  Returns the number of components in a vector.

  ### Arguments

  - Vector: a vector

Element

  `element(Row, Column, Matrix)`

  Returns the element at specified position in a matrix.

  ### Arguments

  - Row: an integer >= 1

  - Column: an integer >= 1

  - Matrix: a matrix

Elements

  `elements(Matrix)`

  Returns the number of elements in a matrix.

  ### Arguments

  - Matrix: a matrix

Export To CSV File

  `export(Matrix/Vector, File Name[, Separator])`

  Imports a CSV data file as a matrix.

  ### Arguments

  - Matrix/Vector: a vector

  - File Name: a valid file name

  - Separator: a text string (optional)

Extract Column as Vector

  `column(Column, Matrix)`

  Returns a column in a matrix as a vector.

  ### Arguments

  - Column: an integer >= 1

  - Matrix: a matrix

Extract row as vector

  `row(Row, Matrix)`

  Returns a row in a matrix as a vector.

  ### Arguments

  - Row: an integer >= 1

  - Matrix: a matrix

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 symmetric matrix

Load CSV File

  `load(File Name[, First Data Row][, Separator])`

  Imports a CSV data file as a matrix.

  ### Arguments

  - File Name: a valid file name

  - First Data Row: an integer >= 1 (optional)

  - Separator: a text string (optional)

Matrix Area

  `area(Start Row, Start Column, End Row, End Column, Matrix)`

  Returns a part of a matrix.

  ### Arguments

  - Start Row: an integer >= 1

  - Start Column: an integer >= 1

  - End Row: an integer >= 1

  - End Column: an integer >= 1

  - Matrix: a matrix

Matrix Inverse

  `inverse(Matrix)`

  Returns the inverse of a matrix.

  ### Arguments

  - Matrix: a symmetric matrix

Merge Vectors

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

  ### 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.

  ### Arguments

  - Matrix: a symmetric matrix

Rank

  `rank(Vector[, Ascending])`

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

  ### Arguments

  - Vector: a vector

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

Rows

  `rows(Matrix)`

  Returns the number of rows in a matrix.

  ### Arguments

  - Matrix: a matrix

Sort

  `sort(Vector[, Ascending])`

  Returns a sorted vector.

  ### Arguments

  - Vector: a vector

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

Transpose

  `transpose(Matrix)`

  Returns the transpose of a matrix.

  ### Arguments

  - Matrix: a matrix

Vector Limits

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

  Returns a part of a vector.

  ### Arguments

  - Lower Limit: an integer

  - Upper Limit: an integer

  - Vector: a vector

## Miscellaneous

Body Mass Index (BMI)

  `bmi(Weight, Length)`

  Calculates the Body Mass Index. The resulting BMI-value is interpreted as follows:

  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

Riemann Zeta

  `zeta(Integral Point)`

  ### Arguments

  - Integral Point: an integer

Roman Number

  `roman(Roman Number)`

  ### Arguments

  - Roman Number: a text string

## Number Theory

Absolute Value

  `abs(Value)`

  ### Arguments

  - Value: a number

Greatest Common Divisor

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

  ### Arguments

  - 1st Number: an integer

  - 2nd Number: an integer

### Arithmetics

Add

  `add(Terms)`

  #### Arguments

  - Terms: a vector

Divide

  `divide(Numerator, Denominator)`

  #### Arguments

  - Numerator: a free value

  - Denominator: a free value

Multiply

  `multiply(Factors)`

  #### Arguments

  - Factors: a vector

Negate

  `neg(Value)`

  #### Arguments

  - Value: a free value

Raise

  `raise(Base, Exponent)`

  #### Arguments

  - Base: a free value

  - Exponent: a free value

Reciprocal

  `inv(Value)`

  #### Arguments

  - Value: a free value

Reminder (mod)

  `mod(Numerator, Denominator)`

  #### Arguments

  - Numerator: a real number

  - Denominator: a real number that is nonzero

Reminder (rem)

  `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

### Number Bases

Binary

  `bin(Binary Number)`

  Returns a decimal integer from a binary number

  #### Arguments

  - Binary Number: a text string

Hexadecimal

  `hex(Hexadecimal Number)`

  Returns a decimal value from a hexadecimal number

  #### Arguments

  - Hexadecimal Number: a text string

Number Base

  `base(Number, Base)`

  Returns a decimal 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 a decimal integer from an octal number

  #### Arguments

  - Octal Number: a text string

### 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)

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(Decile, Data)`

  #### Arguments

  - Decile: a number >= 0

  - Data: a vector

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

  `number(Data)`

  Returns the number of samples.

  #### Arguments

  - Data: a vector

Percentile

  `percentile(Percentile (%), Vector)`

  #### Arguments

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

  - Vector: a vector

Quartile

  `quartile(Quartile, Data)`

  #### Arguments

  - Quartile: an integer >= 1

  - Data: a vector

Range

  `range(Data)`

  Calculates the difference between the min and max value.

  #### Arguments

  - Data: a vector

Sum (total)

  `total(Vector)`

  #### Arguments

  - Vector: 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)`

  #### Arguments

  - Data: a vector

Quadratic Mean (RMS)

  `rms(Data)`

  #### Arguments

  - Data: a vector

Trimmed Mean

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

  #### Arguments

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

  - Data: a vector

Weighted Mean

  `weighmean(Data, Weights)`

  #### Arguments

  - Data: a vector

  - Weights: a vector

Winsorized Mean

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

  #### Arguments

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

  - Data: a vector

### Moments

Covariance

  `covar(Data 1, Data 2)`

  #### 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

## 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 Sine

  `asinh(argument 1)`

  ### Arguments

  - 1: a number

Inverse Hyperbolic Tangent

  `atanh(argument 1)`

  ### Arguments

  - 1: a number

Inverse Hyperbolic secant

  `asech(argument 1)`

  ### Arguments

  - 1: a free value

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(\x) = 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 Components

  `csum(First Component, Last Component, Initial Value, Function, Value Variable, Component Variable, Vector[, Index Variable][, Vector Variable])`

  ### Arguments

  - First Component: an integer

  - Last Component: an integer

  - Initial Value: a free value

  - Function: a free value

  - Value Variable: an unknown variable/symbol

  - Component Variable: an unknown variable/symbol

  - Vector: a vector

  - Index Variable: an unknown variable/symbol (optional)

  - Vector Variable: an unknown variable/symbol (optional)

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

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)

  - Column Variable: an unknown variable/symbol (optional)

  - Matrix Variable: an unknown variable/symbol (optional)

Process Vector Components

  `process(Function, Component Variable, Vector[, Index Variable][, Vector Variable])`

  ### Arguments

  - Function: a free value

  - Component Variable: an unknown variable/symbol

  - Vector: a vector

  - Index Variable: an unknown variable/symbol (optional)

  - Vector Variable: an unknown variable/symbol (optional)

Replace

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

  ### Arguments

  - Expression: a free value

  - Original Value: a free value

  - New Value: a free value

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

Save as Variable

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

  ### Arguments

  - Value: a free value

  - Name: a text string

  - Category: a text string (optional)

  - Title: a text string (optional)

Select Vector Components

  `select(Vector, Condition[, Component Variable][, Select first match])`

  ### Arguments

  - Vector: a free value

  - Condition: a free value

  - Component Variable: an unknown variable/symbol (optional)

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

Title

  `title(Name)`

  ### Arguments

  - Name: a valid function, unit or variable name