# Ops.freealg: Arithmetic Ops methods for the the free algebra In freealg: The Free Algebra

## Description

Arithmetic operators for manipulation of freealg objects such as addition, multiplication, powers, etc

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13``` ```## S3 method for class 'freealg' Ops(e1, e2) free_negative(S) free_power_scalar(S,n) free_eq_free(e1,e2) free_plus_numeric(S,x) free_plus_free(e1,e2) lowlevel_simplify(words,coeffs) lowlevel_free_prod(words1,coeffs1,words2,coeffs2) lowlevel_free_sum(words1,coeffs1,words2,coeffs2) lowlevel_free_power(words,coeffs,n) lowlevel_diffn(words,coeffs,r) lowlevel_subs(words1, coeffs1, words2, coeffs2, r) ```

## Arguments

 `S,e1,e2` Objects of class `freealg` `n` Integer, possibly non-positive `r` Integer vector indicating variables to differentiate with respect to `x` Scalar value `words,words1,words2` A list of words, that is, a list of integer vectors representing the variables in each term `coeffs,coeffs1,coeffs2` Numeric vector representing the coefficients of each word

## Details

The function `Ops.freealg()` passes binary arithmetic operators (“`+`”, “`-`”, “`*`”, “`^`”, and “`==`”) to the appropriate specialist function.

The caret, as in `a^n`, denotes arithmetic exponentiation, as in `x^3==x*x*x`.

Functions `lowlevel_foo()` are low-level functions that interface directly with the `C` routines in the `src/` directory and are not intended for the end-user.

## Author(s)

Robin K. S. Hankin

## Examples

 ```1 2 3 4 5 6 7``` ```rfalg() as.freealg("1+x+xy+yx") # variables are non-commutative as.freealg("x") * as.freealg("X") # upper-case letters are lower-case inverses constant(as.freealg("x+y+X+Y")^6) # OEIS sequence A035610 ```

freealg documentation built on Nov. 19, 2021, 9:07 a.m.