# Supported Functions

All the functions listed below are the ones currently supported by CalcPad. Function names that are seperated on the same line with a comma are just alternative names (or symbols) for the function.

Functions are NOT case-sensitive. So you may capitalize as you wish to help readability, such as some of the bitwise operators: bitor (BitOr), bitxor (BitXor), shiftleft (ShiftLeft), shiftright (ShiftRight), etc..

Some operator symbols have more than one meaning, such as "-" and "!". CalcPad figures out the correct meaning based on the context it's used in.

## Operators (37)

##

    "Floored Mod"
    remainder "IEEE Remainder"
    factorial, !
    negate, -

    Bitwise (10)
    ~ "bitwise not/complement"
    & "bitwise and"
    bitxor "bitwise xor"
    | "bitwise or"
    ~| "bitwise nor"
    ~& "bitwise nand"
    <<, shiftleft
    >>, shiftright
    rotl "bitwise rotate left"
    rotr "bitwise rotate right"

    Logical (7)
    ¬, ! "logic-only not"
    && "logic-only and"
    || logic-only or"
    ⊕ "logic-only xor"
    ≡, ↔, ⇔, iff "logic-only equality"
    !| "logic-only nor"
    !& "logic-only nand"

    Bitwise and Logical (6) (works for both)
    not
    and
    xor, x|
    or
    nor
    nand

    Relational (6)
    ==
    !=, ≠
    >
    <
    >=
    <=

    Functions (81)Arithmetic
    add(x,y)
    subtract(x,y)
    multiply(x,y)
    divide(x,y)

    Trigonometry (24)
    sin(x), sine(x)
    cos(x), cosine(x)
    tan(x), tangent(x)
    csc(x), cosecant(x)
    sec(x), secant(x)
    cot(x), contangent(x)
    sinh(x)
    cosh(x)
    tanh(x)
    csch(x)
    sech(x)
    coth(x)
    asin(x), arcsin(x)
    acos(x), arccos(x)
    atan(x), arctan(x)
    acsc(x)
    asec(x)
    acot(x)
    asinh(x)
    acosh(x)
    atanh(x)
    acsch(x)
    asech(x)
    acoth(x)

    Roots (9)
    sqrt(x), root2(x), √
    cbrt(x), root3(x), cuberoot(x)
    root4(x), fourthroot(x)
    root5(x), fifthroot(x)
    root6, sixthroot
    root7, seventhroot
    root8, eighthroot
    root9, ninthroot
    root(x,y)

    Logs (11)
    ln(x)
    log2(x)
    log3(x)
    log4(x)
    log5(x)
    log6(x)
    log7(x)
    log8(x)
    log9(x)
    log10(x), log(x)
    log_x(x,y)

    Combinatorics (2)
    nPr(x,y)
    nCr(x,y)

    Binary Functions (5)
    gcd(x,y)
    lcm(x,y)
    round(x,y)
    chop(x,y)
    bitflip(x,y)

    Number Base Conversion (3)
    to hex
    to oct
    to bin

    Unit Conversion (1)
    to meters, in meters
    to oz, in oz
    etc.

    Output Format Conversion (6)
    to fraction
    to percent
    to scientific
    to scientific notation
    to words
    to base units
    *can also use 'in' and 'as'*

    Loop (3)
    summation(x,y,z) and sumloop and ∑, where x = expression, y = lower limit and z = upper limit.
    productloop(x,y,z) and ∏, where x = expression, y = lower limit and z = upper limit.
    loop(a,b,c,d,e), where a = variable name, b = expression, c = lower limit, d = upper limit, e = increment.

    Percentages (6)
    on, on top, on top of
    off, off of
    of
    change(x,y), amountofchange(x,y) - note: outputs change from x to y as a percent
    iswhatpercentof(x,y) or in infix notation: x 'is what percent of' y.
    percentofwhatis(x%,y) or in infix notation: x% 'of what is' 7.

    Other (10)
    abs(x), absolute(x)
    ceiling(x)
    floor(x)
    truncate(x)
    fib(x)
    max(x,y)
    min(x,y)
    gamma(x)
    isprime(x), prime(x)
    exp(x) - note: raises e to the x power

There are a total of 117 supported functions.

## Sources

Below are some of the sources I used to become familiar with the different kinds of operators.

- C# Operators (Microsoft.com)
- C# Operators (TutorialsPoint.com)
- Operator precedence and associativity in C#: the order of operations examined
- Operators (Cplusplus.com)
- Differences in boolean operators: & vs && and | vs ||
- Logical Connective: List of common logical connectives
- What is C#'s short-circuit evaluation?
- Philosophy Pages - connective