# BPFK Section: MEX Operators

*This page is imported from version 37 of the page BPFK Section: MEX Operators from the lojban Tiki.*

## Contents

- 1 Proposed Definitions And Examples
- 1.1 cmavo: fu'u (VUhU0)
- 1.2 cmavo: ge'a (VUhU0)
- 1.3 cmavo: fe'i (VUhU1)
- 1.4 cmavo: pi'i (VUhU1)
- 1.5 cmavo: su'i (VUhU1)
- 1.6 cmavo: vu'u (VUhU1)
- 1.7 cmavo: fa'i (VUhU2)
- 1.8 cmavo: gei (VUhU2)
- 1.9 cmavo: ju'u (VUhU2)
- 1.10 cmavo: pa'i (VUhU2)
- 1.11 cmavo: te'a (VUhU2)
- 1.12 cmavo: cu'a (VUhU3)
- 1.13 cmavo: de'o (VUhU3)
- 1.14 cmavo: fe'a (VUhU3)
- 1.15 cmavo: ne'o (VUhU3)
- 1.16 cmavo: va'a (VUhU3)
- 1.17 cmavo: pi'a (VUhU4)
- 1.18 re'a (VUhU4)
- 1.19 cmavo: ri'o (VUhU4)
- 1.20 cmavo: sa'i (VUhU4)
- 1.21 cmavo: sa'o (VUhU4)
- 1.22 cmavo: si'i (VUhU4)

- 2 Impact
- 3 Minimiscience's Type System

## Proposed Definitions And Examples

### cmavo: fu'u (VUhU0)

#### Proposed definition

An elliptical/unspecified mathematical operator. This is semantic analogue of {zo'e}, {co'e}

#### See Also

#### Proposed keyword

- unspecified operator

#### Usage Examples

- li pa fu'u pa du li re
- 1 'something' 1 is 2

### cmavo: ge'a (VUhU0)

#### Proposed definition

A null operator, in the sense that it returns all its arguments unchanged. Used as syntactic glue in poly-ary operators, such as to pass three arguments to a ternary operator in infix notation.

#### See Also

- {tu'o} — Null operand

#### Proposed keyword

- null operator

#### Usage Examples

- papano bi'eju'u re gei pipanopano bi'eju'u re ge'a re
- .1010 (base 2) × 2 ~94~ 110 (base 2) (CLL, 18.14.4)

### cmavo: fe'i (VUhU1)

#### Proposed definition

The n-ary operation of division. Divides the first argument by all subsequent ones in a left associative manner: x1 / x2 / x3 ...

#### See Also

#### Proposed keyword

- Division
- Divides

#### Usage Examples

- li na'u tanjo te'u vei pai fe'i vo [ve'o] du li pa
- tan( pi / 4 ) = 1 (CLL, variation of 18.18.1)

#### Notes

- The operands of
*fe'i*are numbers, and a*fe'i*expression evaluates to a number. - When
*fe'i*has only one operand, it is the identity function. - Distinct from the fraction slash {fi'u} in that it is an operator (and not of selma'o PA).

### cmavo: pi'i (VUhU1)

#### Proposed definition

The n-ary operation of multiplication. Multiplies all the arguments together in a left associative manner: x1 * x2 * x3 ...

#### See Also

#### Proposed keywords

- multiplication
- multiply
- times

#### Usage Examples

- li ci su'i vo pi'i mu du li cimu
- 3 + 4 × 5 = 35 (CLL, 18.5.8)

#### Notes

- When reducing a
*pi'i*expression from left to right, the types of the two operands considered at each point must together take one of the following forms:- number and number -- standard mathematical multiplication; evalutes to a number
- number and matrix
*or*matrix and number -- scaling the elements of a matrix by a factor; evaluates to a matrix - number and array of numbers
*or*array of numbers and number -- scaling the elements of an array by a factor; evaluates to an array of numbers - matrix and matrix -- standard matrix multiplication; the number of columns in the first matrix must equal the number of rows in the right matrix, otherwise the result is undefined; evaluates to a matrix
- matrix and array of numbers -- The operator
*sa'i*is implicitly applied to the array, and the expression is then evaluated as a matrix-matrix multiplication, yielding a one-column matrix that is then implicitly converted to an array of the numbers in its column.

- When
*pi'i*has only one operand, it is the identity function.

### cmavo: su'i (VUhU1)

#### Proposed definition

The n-ary operation of addition. Adds all the arguments together in a left associative manner: x1 + x2 + x3 ...

#### See Also

- {ma'u}

#### Proposed keywords

- plus
- add
- addition

#### Usage Examples

- li pa su'i pa du li re
- 1 + 1 = 2 (CLL, 18.5.1)
- li ma'u pa su'i ni'u pa du li no
- +1 + -1 = 0 (CLL, 18.5.5)

#### Notes

- {su'i} is the operation of addition, addition from the plus sign that indicates a positive number {ma'u}

### cmavo: vu'u (VUhU1)

#### Proposed definition

The n-ary operation of subtraction. Takes the first argument as subtracts all subsequent ones in a left associative manner: x1 - x2 - x3 ...

#### See Also

- {va'a}
- {ni'u}

#### Proposed keyword

- subtract
- minus

#### Usage Examples

- li ci vu'u re du li ma'u
- the-number 3 - 2 = some-positive-number (CLL, 18.8.14)
- li tu'o va'a ny. du li no vu'u ny.
- -n = 0 - n (CLL, 18.14.1)

#### Notes

This is the operator for subtraction. It is distinct from {va'a} which is the operator for negation, and also from {ni'u} which is a minus sign and is part of the number

### cmavo: fa'i (VUhU2)

#### Proposed definition

The unary operation of inverting. It returns the reciprocal of the given number: 1 / x1

#### See Also

- {fi'u}

#### Proposed keyword

- inverse
- reciprocal

#### Usage Examples

- li fa'i vei pa su'i pa du li fi'u re
- Reciprocal of (1 + 1) = 1/2

#### Notes

This is performs similar to {fi'u}. There are differences though. This is an operator and thus may take a mekso operand as an argument, whereas {fi'u} is part of PA and so is part a number.

### cmavo: gei (VUhU2)

#### Proposed definition

This operator is a trinary operator that mimics scientific notation. It is designed so that arguments can be omitted to give magnitudes quickly. gei x1 x2 x3 = x_2 * (x_3 ~94~ x_1). x_3 defaults to 10; so gei x1 x2 = x2 * 10 ~94~ x1. x_2 defaults to 1; so gei x1 = 10 ~94~ x1

#### See Also

#### Proposed keyword

- scientific notation

#### Usage Examples

- li cinonoki'oki'o du li bi gei ci
- 300,000,000 = 3 * 10~94~8 (CLL, 18.14.2)

- gei reno
- 10~94~20 (CLL, 18.14.3)

- papano bi'eju'u re gei pipanopano bi'eju'u re ge'a re
- .1010_2 * 2 ~94~ 110_2 (CLL, 18.14.4)

#### Notes

### cmavo: ju'u (VUhU2)

#### Proposed definition

The binary operation that indicates the number base of its first argument: x1 is in base x2

#### See Also

#### Proposed keyword

- base
- number base
- radix

#### Usage Examples

- li pa no pa no ju'u re du li pa no
- 1010 base 2 = 10 (CLL, 18.10.1)

- li daufeigai ju'u paxa du li rezevobi
- ABC base 16 = 2748 (CLL, 18.10.2)

- li pa pi'e re pi'e ci ju'u reno du li vovoci
- 1;2;3 base 20 = 443 (CLL, 18.10.7)

- li pa pi'e vo pi ze ju'u reno du li re vo pi ci mu
- 1;4.7 base 20 = 24.35 (CLL, 18.10.10)

#### Notes

For bases up to 16 Lojban has numerals you can use. But for bases greater than 16, use {pi'e} to separate the place values. {pi} is used as radix point in any base.

#### Issues

Ilmen: Does it make sense to have {ju'u} being a mathematical operator and not a PA? The number base of a positional number notation is an inherent part thereof, and not the operand of some function converting a number into another one.

### cmavo: pa'i (VUhU2)

#### Proposed definition

The binary operation that returns the ratio of its two arguments: the ratio of x1 to x2.

#### See Also

#### Proposed keyword

- ratio

#### Usage Examples

( ! no correct natural usage ! )
Artificial Example:
*li pa pa'i pa du li mo'e lo ninmu pa'i mo'e lo nanmu*

"the ratio 1 to 1 is equal to the ratio of men to woman"

#### Notes

No examples in CLL and none turned up searching lojban.org

### cmavo: te'a (VUhU2)

#### Proposed definition

The binary operation of exponentiation: x1 to the power of x2

#### Proposed keyword

- exponential
- power

#### Usage Examples

- li vei ny. su'i pa ve'o pi'i vei ny. su'i pa [ve'o] du li ny. [bi'e] te'a re su'i re bi'e pi'i ny. su'i pa
- (n + 1)(n + 1) = n~94~2 + 2n + 1 (CLL, 18.5.10)

#### Notes

### cmavo: cu'a (VUhU3)

#### Proposed definition

The unary operation of taking an absolute value or norm: the absolute value of x1

#### See Also

#### Proposed keyword

- absolute value
- norm

#### Usage Examples

*24 Mar 2005 07:54:02 <Broca> doi jbokaj li cu'a ni'u re*

- li cu'a ni'u re du li re
- |-2| = 2

#### Notes

### cmavo: de'o (VUhU3)

#### Proposed definition

The binary operation of logarithm. The default value of x2 is either 10 or e, depending on context. log x1 in base x2

#### See Also

#### Proposed keyword

- log
- ln
- logarithm

#### Examples of *cu'a* Usage

- li de'o pa du li no
- ln 1 = 0

#### Notes

### cmavo: fe'a (VUhU3)

#### Proposed definition

The binary operation of taking an nth root. The default is to take a square root. The x2-th root of x1.

#### See Also

#### Proposed keyword

- root
- square root
- nth root

#### Examples of *fe'a* Usage

- li fe'a vei by. bi'ete'a re vu'u vo bi'epi'i .abu bi'epi'i cy. ve'o
- the square root of (b^2 - 4ac) (CLL, 18.17.6)

#### Notes

### cmavo: ne'o (VUhU3)

#### Proposed definition

The factorial function. The factorial of x1.

#### See Also

#### Proposed keyword

- factorial
- gamma function

#### Usage Examples

- li ne'o mu du li pareno
- 5! = 120

#### Notes

The definition could easily be expanded to non integer arguments by identification with a suitable modification of the gamma function (z! = \Gamma(z-1)). It depends how stringent the community wants to be with the initial definitions and how much they want to leave up to usage.

### cmavo: va'a (VUhU3)

#### Proposed definition

The unary operation giving the additive inverse of a number. For most people, this is a fancy way of saying the negative of a number.

#### See Also

- {ni'u}
- {vu'u}

#### Proposed keyword

- additive inverse

#### Usage Examples

- li py. su'i va'a ny. ku'e su'i zy du li xy.
- p + (-n) + z = x (CLL, 18.6.2)

#### Notes

- This is distinct from the minus sign {ni'u} and subtraction {vu'u}.
- This operator (and multiplicative inverse now that I think of it) could be made more useful if there was an explicit link to abstract algebra (specifically groups and rings). Consider it on my maybe-to-do list. mi'e Ross

### cmavo: pi'a (VUhU4)

#### Proposed definition

This n-ary operator takes vectors as operands and forms them into the rows of a matrix. The matrix with rows x1, x2, x3, ...

#### See Also

- {jo'i}
- {sa'i}

#### Proposed keyword

- matrix
- row matrix
- row

#### Examples of *pi'a* Usage

- jo'i biboi paboi xa pi'a jo'i ciboi muboi ze ge'a jo'i voboi soboi re
- {| class="wikitable"

| 8||1||6 |- | 3||5|| 7 |- | 4||9||2 |} (CLL, 18.15.2)

### re'a (VUhU4)

#### Proposed definition

The unary operation of transposing a matrix.

#### See Also

#### Proposed keyword

- transpose
- matrix transposition

#### Usage Examples

- li re'a vei jo'i paboi re pi'a jo'i ciboi vo du li jo'i paboi ci pi'a jo'i reboi vo
- The transpose of the matrix ( (1 2)(3 4) ) = ( (1 3)(2 4) )

### cmavo: ri'o (VUhU4)

#### Proposed Definition

The trinary operation of taking the definite integral of a function. The integral of x1 with respect to x2 over range x3

#### See Also

#### Proposed Keywords

- integral
- integration

#### Usage Examples

- li ri'o pa xy. no bi'e bi'o pa du li pa
- The integral of 1 with respect to x from 0 to 1 is equal to 1

#### Notes

This definition should be extended somehow to accommodate indefinite integration. I suggest that indefinite integration should be the interpretation when x3 is omitted. I'm not sure whether the grammar is capable of polymorphic operators like this. Other options/ways to get this behaviour is to default x3 to *no bi'o ty* (recover indefinite integrals as parameter integrals), or make it the indefinite when x3 is filled with *mo'e zi'o*.

This definition is (rather sneakily) fully compatible with a Lebesgue definition of integration. Just give a measurable function as x1, a measure to x2 and measurable set to x3.

### cmavo: sa'i (VUhU4)

#### Proposed Definition

This n-ary operator takes vectors as operands and forms them into the columns of a matrix. The matrix with the columns x1, x2, x3, ...

#### See also

- {pi'a}
- {jo'i}

#### Proposed Keywords

- matrix
- column matrix
- columns

#### Examples of *sa'i* Usage

- jo'i biboi ciboi vo sa'i jo'i paboi muboi so ge'a jo'i xaboi zeboi re
- {| class="wikitable"

| 8||1||6 |- | 3||5||7 |- | 4||9||2 |}(CLL, 18.15.3)

### cmavo: sa'o (VUhU4)

#### Proposed Definition

The trinary operation of taking the derivative of a function. The derivative of x1 with respect to x2 of degree x3. The default value of x3 is 1.

#### See Also

#### Proposed Keywords

- derivative
- derive

#### Examples of *sa'o* Usage

- li sa'o xy. xy. du li ma'o pa
- The derivative of x with respect to x is the function 1

### cmavo: si'i (VUhU4)

#### Proposed Definition

The trinary operation which lays out the summation of an indexed sequence of expressions. Also known in mathematics as sigma notation. The sum of x1 in a variable x2 over range x3

#### See Also

#### Proposed Keywords

- sum
- sigma summation

#### Usage Examples

- li si'i ky. ky. vei no bi'o ny. du li pimu pi'i ny. pi'i vei ny. su'i pa
- The sum of k from 0 to n is equal to 0.5 x n x ( n+1 )

## Impact

There is no changes to the definitions. I've tried to make them follow the CLL as closely as possible. Further since there is so little mekso literature, there is almost nothing to 'break' anyway. I have made a few suggestions to extend the definitions to expand the functionality some operators. This can be ratified formally if the bpfk/community feels that they add to utility more than they subtract in flexibility.

I (mi'e Ross) am not the first person to take up this section. Minimiscience did some work before I came along. He (She?) is obviously a programmer and seem to have been caught up in designing a consistent type system. Evidence of the beginnings of the system has been moved to the section below this. I am of the opinion that we will never be able to describe how these operators work in every context and so we should stick to giving the base definition and allow authors/speakers to use the operators in other contexts in accordance with common mathematical convention. For the moment, the only hangover of Minimiscience's type system in the above definitions is for {pi'i}.

This said, I think there is merit in the idea to specify default values for omitted arguments or alternatively treat the functions as polymorphic and give definitions of different combinations of arguments it gets given. The latter seems blotted/ overkill but would give definite meanings to operators that get passed tu'o. I haven't done either above.

## Minimiscience's Type System

- When an expression is here said to be "undefined," it means that, in the absence of external information about the interpretation of the expression, it is semantically void, meaningless, and/or nonsensical.
- Mathematical operators take one or more operands, which are here referred to by an 'x' subscripted with a number.
- Operators defined here as "unary" are defined as operating on their first operand that is not equal to
*tu'o*(referred to as "the operand" within the respective definitions), regardless of where it occurs in the operand list.- See also: CLL section 18.16, example 16.3 and the paragraph before it, in which the operand of
*va'a*is in the x_1 place; CLL section 18.14, example 14.1, in which the operand of*va'a*is in the x_2 place.

- See also: CLL section 18.16, example 16.3 and the paragraph before it, in which the operand of
- If all operands of an operator are
*tu'o*, the value of the expression is equal to*tu'o*. - If an operand described in an operator's definition is missing from the operator's operand list and there is no default value given, the missing operand shall be interpreted as
*tu'o*. - If one or more extra operands not described in an operator's definition are present in the operator's operand list, they affect the evaluation in an undefined or unspecified manner analogous to
*sumti*attached to a*selbri*with*do'e*. - Lojban mathematical operators are defined in terms of conventional mathematical operators, and thus there is an implicit type system used in determining the value of an expression.
*Mekso*operands may be of any of the following types:- number -- a "number" production in the formal grammar, usually corresponding to an element of the complex plane
- array -- an array, vector, ordered list/set, or tuple of one or more
*mekso*values, constructed using*jo'i* - matrix -- a composition of one or more arrays of numbers, all of the same size, constructed using
*pi'a*or*sa'i* - function

- If an operator is applied to operands of a type which its definition does not address, the expression is undefined.
- The operand
*tu'o*is polymorphic; its type in an expression is determined by its surrounding context. - Operator-specific type information (currently in the "Notes" subsections) needs to be included in the main definitions somehow without being too clunky.