# Ops.spray: Arithmetic Ops Group Methods for sprays In spray: Sparse Arrays and Multivariate Polynomials

## Description

Allows arithmetic operators to be used for spray calculations, such as addition, multiplication, division, integer powers, etc. Objects of class spray are interpreted as sparse multivariate polynomials.

## Usage

 ```1 2 3 4 5 6 7 8 9``` ```## S3 method for class 'spray' Ops(e1, e2 = NULL) spray_negative(S) spray_times_spray(S1,S2) spray_times_scalar(S,x) spray_plus_spray(S1,S2) spray_plus_scalar(S,x) spray_power_scalar(S,n) spray_eq_spray(S1,S2) ```

## Arguments

 `e1,e2,S,S1,S2` Objects of class spray, here interpreted as sparse multivariate polynomials `x` Real valued scalar `n` Non-negative integer

## Details

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

The most interesting operators are “`*`” and “`+`” which execute multivariate polynomial multiplication and addition respectively.

Testing for equality uses `spray_eq_spray()`. Note that `spray_eq_spray(S1,S2)` is algebraically equivalent to `is.zero(S1-S2)`, but faster (`FALSE` is returned as soon as a mismatch is found).

## Value

The functions all return spray objects except “`==`”, which returns a logical.

Notes here

## Author(s)

Robin K. S. Hankin

`ooom`

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15``` ```M <- matrix(sample(0:3,21,replace=TRUE),ncol=3) a <- spray(M,sample(7)) b <- homog(3,4) # arithmetic operators mostly work as expected: a + 2*b a - a*b^2/4 a+b S1 <- spray(partitions::compositions(4,3)) S2 <- spray(diag(3)) # S2 = x+y+z stopifnot( (S1+S2)^3 == S1^3 + 3*S1^2*S2 + 3*S1*S2^2 + S2^3 ) ```

spray documentation built on May 29, 2017, 10:42 p.m.