
Last chance! 50% off unlimited learning
Sale ends in
mvp
objectsAllows arithmetic operators to be used for multivariate polynomials such as addition, multiplication, integer powers, etc.
# S3 method for mvp
Ops(e1, e2)
mvp_negative(S)
mvp_times_mvp(S1,S2)
mvp_times_scalar(S,x)
mvp_plus_mvp(S1,S2)
mvp_plus_numeric(S,x)
mvp_eq_mvp(S1,S2)
mvp_modulo(S1,S2)
The high-level functions documented here return an object of
mvp
, the low-level functions documented at lowlevel.Rd
return lists. But don't use the low-level functions.
Objects of class mvp
Scalar, length one numeric vector
Robin K. S. Hankin
The function Ops.mvp()
passes unary and binary arithmetic
operators “+
”, “-
”, “*
” and
“^
” to the appropriate specialist function.
The most interesting operator is “*
”, which is passed to
mvp_times_mvp()
. I guess “+
” is quite
interesting too.
The caret “^
” denotes arithmetic exponentiation, as in
x^3==x*x*x
. As an experimental feature, this is (sort of)
vectorised: if n
is a vector, then a^n
returns the sum
of a
raised to the power of each element of n
. For example,
a^c(n1,n2,n3)
is a^n1 + a^n2 + a^n3
. Internally,
n
is tabulated in the interests of efficiency, so
a^c(0,2,5,5,5) = 1 + a^2 + 3a^5
is evaluated with only a
single fifth power. Similar functionality is implemented in the
freealg package.
lowlevel
(p1 <- rmvp(3))
(p2 <- rmvp(3))
p1*p2
p1+p2
p1^3
p1*(p1+p2) == p1^2+p1*p2 # should be TRUE
Run the code above in your browser using DataLab