Fast Symbolic Multivariate Polynomials
mvp-package.Rd
Fast manipulation of symbolic multivariate polynomials using the 'Map' class of the Standard Template Library. The package uses print and coercion methods from the 'mpoly' package but offers speed improvements. It is comparable in speed to the 'spray' package for sparse arrays, but retains the symbolic benefits of 'mpoly'. To cite the package in publications, use Hankin 2022 <doi:10.48550/ARXIV.2210.15991>. Uses 'disordR' discipline.
Details
The DESCRIPTION file:
This package was not yet installed at build time.
Index: This package was not yet installed at build time.
Author
Robin K. S. Hankin [aut, cre] (<https://orcid.org/0000-0001-5982-0415>)
Maintainer: Robin K. S. Hankin <hankin.robin@gmail.com>
Examples
(p <- as.mvp("1+x+x*y+x^5"))
#> mvp object algebraically equal to
#> 1 + x + x y + x^5
p + as.mvp("a+b^6")
#> mvp object algebraically equal to
#> 1 + a + b^6 + x + x y + x^5
p^3
#> mvp object algebraically equal to
#> 1 + 3 x + 3 x y + 3 x^2 + 6 x^2 y + 3 x^2 y^2 + x^3 + 3 x^3 y + 3 x^3 y^2 + x^3
#> y^3 + 3 x^5 + 6 x^6 + 6 x^6 y + 3 x^7 + 6 x^7 y + 3 x^7 y^2 + 3 x^10 + 3 x^11 +
#> 3 x^11 y + x^15
subs(p^4,x="a+b^2")
#> mvp object algebraically equal to
#> 1 + 4 a + 12 a b^2 + 24 a b^2 y + 12 a b^2 y^2 + 12 a b^4 + 36 a b^4 y + 36 a
#> b^4 y^2 + 12 a b^4 y^3 + 4 a b^6 + 16 a b^6 y + 24 a b^6 y^2 + 16 a b^6 y^3 + 4
#> a b^6 y^4 + 20 a b^8 + 72 a b^10 + 72 a b^10 y + 84 a b^12 + 168 a b^12 y + 84
#> a b^12 y^2 + 32 a b^14 + 96 a b^14 y + 96 a b^14 y^2 + 32 a b^14 y^3 + 60 a
#> b^18 + 132 a b^20 + 132 a b^20 y + 72 a b^22 + 144 a b^22 y + 72 a b^22 y^2 +
#> 60 a b^28 + 64 a b^30 + 64 a b^30 y + 20 a b^38 + 4 a y + 6 a^2 + 12 a^2 b^2 +
#> 36 a^2 b^2 y + 36 a^2 b^2 y^2 + 12 a^2 b^2 y^3 + 6 a^2 b^4 + 24 a^2 b^4 y + 36
#> a^2 b^4 y^2 + 24 a^2 b^4 y^3 + 6 a^2 b^4 y^4 + 40 a^2 b^6 + 180 a^2 b^8 + 180
#> a^2 b^8 y + 252 a^2 b^10 + 504 a^2 b^10 y + 252 a^2 b^10 y^2 + 112 a^2 b^12 +
#> 336 a^2 b^12 y + 336 a^2 b^12 y^2 + 112 a^2 b^12 y^3 + 270 a^2 b^16 + 660 a^2
#> b^18 + 660 a^2 b^18 y + 396 a^2 b^20 + 792 a^2 b^20 y + 396 a^2 b^20 y^2 + 420
#> a^2 b^26 + 480 a^2 b^28 + 480 a^2 b^28 y + 190 a^2 b^36 + 12 a^2 y + 6 a^2 y^2
#> + 4 a^3 + 4 a^3 b^2 + 16 a^3 b^2 y + 24 a^3 b^2 y^2 + 16 a^3 b^2 y^3 + 4 a^3
#> b^2 y^4 + 40 a^3 b^4 + 240 a^3 b^6 + 240 a^3 b^6 y + 420 a^3 b^8 + 840 a^3 b^8
#> y + 420 a^3 b^8 y^2 + 224 a^3 b^10 + 672 a^3 b^10 y + 672 a^3 b^10 y^2 + 224
#> a^3 b^10 y^3 + 720 a^3 b^14 + 1980 a^3 b^16 + 1980 a^3 b^16 y + 1320 a^3 b^18 +
#> 2640 a^3 b^18 y + 1320 a^3 b^18 y^2 + 1820 a^3 b^24 + 2240 a^3 b^26 + 2240 a^3
#> b^26 y + 1140 a^3 b^34 + 12 a^3 y + 12 a^3 y^2 + 4 a^3 y^3 + a^4 + 20 a^4 b^2 +
#> 180 a^4 b^4 + 180 a^4 b^4 y + 420 a^4 b^6 + 840 a^4 b^6 y + 420 a^4 b^6 y^2 +
#> 280 a^4 b^8 + 840 a^4 b^8 y + 840 a^4 b^8 y^2 + 280 a^4 b^8 y^3 + 1260 a^4 b^12
#> + 3960 a^4 b^14 + 3960 a^4 b^14 y + 2970 a^4 b^16 + 5940 a^4 b^16 y + 2970 a^4
#> b^16 y^2 + 5460 a^4 b^22 + 7280 a^4 b^24 + 7280 a^4 b^24 y + 4845 a^4 b^32 + 4
#> a^4 y + 6 a^4 y^2 + 4 a^4 y^3 + a^4 y^4 + 4 a^5 + 72 a^5 b^2 + 72 a^5 b^2 y +
#> 252 a^5 b^4 + 504 a^5 b^4 y + 252 a^5 b^4 y^2 + 224 a^5 b^6 + 672 a^5 b^6 y +
#> 672 a^5 b^6 y^2 + 224 a^5 b^6 y^3 + 1512 a^5 b^10 + 5544 a^5 b^12 + 5544 a^5
#> b^12 y + 4752 a^5 b^14 + 9504 a^5 b^14 y + 4752 a^5 b^14 y^2 + 12012 a^5 b^20 +
#> 17472 a^5 b^22 + 17472 a^5 b^22 y + 15504 a^5 b^30 + 12 a^6 + 84 a^6 b^2 + 168
#> a^6 b^2 y + 84 a^6 b^2 y^2 + 112 a^6 b^4 + 336 a^6 b^4 y + 336 a^6 b^4 y^2 +
#> 112 a^6 b^4 y^3 + 1260 a^6 b^8 + 5544 a^6 b^10 + 5544 a^6 b^10 y + 5544 a^6
#> b^12 + 11088 a^6 b^12 y + 5544 a^6 b^12 y^2 + 20020 a^6 b^18 + 32032 a^6 b^20 +
#> 32032 a^6 b^20 y + 38760 a^6 b^28 + 12 a^6 y + 12 a^7 + 32 a^7 b^2 + 96 a^7 b^2
#> y + 96 a^7 b^2 y^2 + 32 a^7 b^2 y^3 + 720 a^7 b^6 + 3960 a^7 b^8 + 3960 a^7 b^8
#> y + 4752 a^7 b^10 + 9504 a^7 b^10 y + 4752 a^7 b^10 y^2 + 25740 a^7 b^16 +
#> 45760 a^7 b^18 + 45760 a^7 b^18 y + 77520 a^7 b^26 + 24 a^7 y + 12 a^7 y^2 + 4
#> a^8 + 270 a^8 b^4 + 1980 a^8 b^6 + 1980 a^8 b^6 y + 2970 a^8 b^8 + 5940 a^8 b^8
#> y + 2970 a^8 b^8 y^2 + 25740 a^8 b^14 + 51480 a^8 b^16 + 51480 a^8 b^16 y +
#> 125970 a^8 b^24 + 12 a^8 y + 12 a^8 y^2 + 4 a^8 y^3 + 60 a^9 b^2 + 660 a^9 b^4
#> + 660 a^9 b^4 y + 1320 a^9 b^6 + 2640 a^9 b^6 y + 1320 a^9 b^6 y^2 + 20020 a^9
#> b^12 + 45760 a^9 b^14 + 45760 a^9 b^14 y + 167960 a^9 b^22 + 6 a^10 + 132 a^10
#> b^2 + 132 a^10 b^2 y + 396 a^10 b^4 + 792 a^10 b^4 y + 396 a^10 b^4 y^2 + 12012
#> a^10 b^10 + 32032 a^10 b^12 + 32032 a^10 b^12 y + 184756 a^10 b^20 + 12 a^11 +
#> 72 a^11 b^2 + 144 a^11 b^2 y + 72 a^11 b^2 y^2 + 5460 a^11 b^8 + 17472 a^11
#> b^10 + 17472 a^11 b^10 y + 167960 a^11 b^18 + 12 a^11 y + 6 a^12 + 1820 a^12
#> b^6 + 7280 a^12 b^8 + 7280 a^12 b^8 y + 125970 a^12 b^16 + 12 a^12 y + 6 a^12
#> y^2 + 420 a^13 b^4 + 2240 a^13 b^6 + 2240 a^13 b^6 y + 77520 a^13 b^14 + 60
#> a^14 b^2 + 480 a^14 b^4 + 480 a^14 b^4 y + 38760 a^14 b^12 + 4 a^15 + 64 a^15
#> b^2 + 64 a^15 b^2 y + 15504 a^15 b^10 + 4 a^16 + 4845 a^16 b^8 + 4 a^16 y +
#> 1140 a^17 b^6 + 190 a^18 b^4 + 20 a^19 b^2 + a^20 + 4 b^2 + 4 b^2 y + 6 b^4 +
#> 12 b^4 y + 6 b^4 y^2 + 4 b^6 + 12 b^6 y + 12 b^6 y^2 + 4 b^6 y^3 + b^8 + 4 b^8
#> y + 6 b^8 y^2 + 4 b^8 y^3 + b^8 y^4 + 4 b^10 + 12 b^12 + 12 b^12 y + 12 b^14 +
#> 24 b^14 y + 12 b^14 y^2 + 4 b^16 + 12 b^16 y + 12 b^16 y^2 + 4 b^16 y^3 + 6
#> b^20 + 12 b^22 + 12 b^22 y + 6 b^24 + 12 b^24 y + 6 b^24 y^2 + 4 b^30 + 4 b^32
#> + 4 b^32 y + b^40
aderiv(p^2,x=4)
#> mvp object algebraically equal to
#> 240 x + 720 x^2 + 720 x^2 y + 5040 x^6
horner(p,1:3)
#> mvp object algebraically equal to
#> 6 + 8 x + 8 x y + 3 x^2 + 6 x^2 y + 3 x^2 y^2 + 8 x^5 + 6 x^6 + 6 x^6 y + 3
#> x^10