user: Give a detailed overview of Properties: syntax, arguments, return values, common patterns.

assistant: Operation
:   The vector math operator to be applied on the input vectors.

    Add:
    :   The sum of A and B.
        \(\begin{pmatrix} A_x + B_x \\ A_y + B_y \\ A_z + B_z \end{pmatrix}\)

    Subtract:
    :   The difference between A and B.
        \(\begin{pmatrix} A_x - B_x \\ A_y - B_y \\ A_z - B_z \end{pmatrix}\)

    Multiply:
    :   The entrywise product of A and B.
        \(\begin{pmatrix} A_x \cdot B_x \\ A_y \cdot B_y \\ A_z \cdot B_z \end{pmatrix}\)

    Divide:
    :   The entrywise division of A by B. Division by zero results in zero.
        \(\begin{pmatrix} A_x / B_x \\ A_y / B_y \\ A_z / B_z \end{pmatrix}\)

    Multiply Add:
    :   The entrywise combination of the multiply and addition operations.
        \(A × B + C\)

    Cross Product:
    :   The cross product of A and B.
        \(\begin{pmatrix} A_y \cdot B_z - A_z \cdot B_y \\ A_z \cdot B_x - A_x \cdot B_z
        \\ A_x \cdot B_y - A_y \cdot B_x \end{pmatrix}\)

    Project:
    :   The projection of A onto B.

    Reflect:
    :   The reflection of A around the normal B. B need not be normalized.

    Refract:
    :   For a given incident vector A, surface normal B and ratio of indices of refraction (IOR),
        refract outputs the refraction vector R.

    Faceforward:
    :   Orients a vector A to point away from a surface B as defined by its normal C.
        Computes \((dot(B, C) < 0) ? A : -A\).

    Dot Product:
    :   The dot product of A and B.
        \(A_x \cdot B_x + A_y \cdot B_y + A_z \cdot B_z\)

    Distance:
    :   The distance between A and B.

    Length:
    :   The length of A.
        \(\sqrt{A_x^2 + A_y^2 + A_z^2}\)

    Scale:
    :   The result of multiplying A by the scalar input *Scale*.
        \(\begin{pmatrix} s \cdot A_x \\ s \cdot A_y \\ s \cdot A_z \end{pmatrix}\)

    Normalize:
    :   The result of normalizing A. The result vector points to the same direction as A and
        has a length of 1. If A is (0, 0, 0), the result is (0, 0, 0) as well.

    Absolute:
    :   The entrywise absolute value of A.

    Power:
    :   The entrywise power operator where the *Base* raised to the power of *Exponent*.

    Sign:
    :   Extracts the sign of the input value. All positive numbers will output 1.0.
        All negative numbers will output -1.0. And 0.0 will output 0.0.

    Minimum:
    :   The entrywise minimum value from A and B.

    Maximum:
    :   The entrywise maximum value from A and B.

    Floor:
    :   Rounds the input value entrywise down to the nearest integer.

    Ceil:
    :   Rounds the input value entrywise up to the nearest integer.

    Fraction:
    :   Returns the fractional part of the *value* entrywise.

    Modulo:
    :   The entrywise modulo of A by B.

    Wrap:
    :   The entrywise output of a value between Min and Max based on the absolute difference
        between the input value and the nearest integer multiple of Max less than the value.

    Snap:
    :   The result of rounding A to the largest integer multiple of B less than or equal A.

    Sine:
    :   The entrywise [Sine](https://en.wikipedia.org/wiki/Sine) of A.

    Cosine:
    :   The entrywise [Cosine](https://en.wikipedia.org/wiki/Trigonometric_functions) of A.

    Tangent:
    :   The entrywise [Tangent](https://en.wikipedia.org/wiki/Trigonometric_functions) of A.