Nothing
require(salad)
set.seed(1)
x <- dual(sample(1:6))
A <- x[1:3]
B <- x[4:6]
S <- A + B
P <- A * B
D <- A - B
Q <- A / B
N <- -A
X <- c(S,P,D,Q,N)
X0 <- new("dual", x = c(7, 6, 8, 6, 8, 15, -5, 2, -2, 1/6,
2, 3/5, -1, -4, -3), d = structure(list(x1 = c(1, 0, 0, 6, 0,
0, 1, 0, 0, 1/6, 0, 0, -1, 0, 0), x2 = c(0, 1,
0, 0, 2, 0, 0, 1, 0, 0, 0.5, 0, 0, -1, 0), x3 = c(0, 0, 1, 0,
0, 5, 0, 0, 1, 0, 0, 0.2, 0, 0, -1), x4 = c(1, 0, 0, 1, 0, 0,
-1, 0, 0, -1/36, 0, 0, 0, 0, 0), x5 = c(0, 1, 0,
0, 4, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0), x6 = c(0, 0, 1, 0, 0,
3, 0, 0, -1, 0, 0, -0.12, 0, 0, 0)), class = "differential"))
stopifnot(salad:::test_near_equality(X, X0))
Z <- (2 + B) + (A - 1) + (1 - B*4) / 3 + 5 / (2*A + 3)
Z0 <- new("dual", x = c(1.33333333333333, 5.12121212121212, 3.22222222222222
), d = structure(list(x1 = c(0.6, 0, 0), x2 = c(0, 0.917355371900826,
0), x3 = c(0, 0, 0.876543209876543), x4 = c(-0.333333333333333,
0, 0), x5 = c(0, -0.333333333333333, 0), x6 = c(0, 0, -0.333333333333333
)), class = "differential"))
stopifnot(salad:::test_near_equality(Z, Z0))
X2 <- x**2
A.B <- A**B
pA <- 3**A
T <- c(X2, A.B, pA)
T0 <- new("dual", x = c(1, 16, 9, 36, 4, 25, 1, 16, 243, 3, 81, 27),
d = structure(list(x1 = c(2, 0, 0, 0, 0, 0, 6, 0, 0, 3.29583686600433,
0, 0), x2 = c(0, 8, 0, 0, 0, 0, 0, 8, 0, 0, 88.9875953821169,
0), x3 = c(0, 0, 6, 0, 0, 0, 0, 0, 405, 0, 0, 29.662531794039
), x4 = c(0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0), x5 = c(0,
0, 0, 0, 4, 0, 0, 22.1807097779182, 0, 0, 0, 0), x6 = c(0,
0, 0, 0, 0, 10, 0, 0, 266.962786146351, 0, 0, 0)), class = "differential"))
stopifnot(salad:::test_near_equality(T, T0))
# mb <- microbenchmark::microbenchmark(A + B, A * B, A - B, A / B, -A, times = 1000)
# print(mb)
# mb <- microbenchmark::microbenchmark(x**2, A**B, 3**A, times = 1000)
# print(mb)
# mb <- microbenchmark::microbenchmark((2 + B) + (A - 1) + (1 - B*4) / 3 + 5 / (2*A + 3), times = 1000)
# print(mb)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.