Implements arithmetic (+, -, *, /, ^),
comparison (==, !=, <, >, <=, >=),
and logical (&, |) operators. Derivatives follow standard
calculus rules (sum, product, quotient, power, chain).
# S4 method for class 'dualr,dualr'
e1 + e2
# S4 method for class 'dualr,numeric'
e1 + e2
# S4 method for class 'numeric,dualr'
e1 + e2
# S4 method for class 'dualr,dualr'
e1 - e2
# S4 method for class 'dualr,numeric'
e1 - e2
# S4 method for class 'numeric,dualr'
e1 - e2
# S4 method for class 'dualr,dualr'
e1 * e2
# S4 method for class 'dualr,numeric'
e1 * e2
# S4 method for class 'numeric,dualr'
e1 * e2
# S4 method for class 'dualr,dualr'
e1/e2
# S4 method for class 'dualr,numeric'
e1/e2
# S4 method for class 'numeric,dualr'
e1/e2
# S4 method for class 'dualr,dualr'
e1^e2
# S4 method for class 'dualr,numeric'
e1^e2
# S4 method for class 'numeric,dualr'
e1^e2
# S4 method for class 'dualr,dualr'
Ops(e1, e2)
# S4 method for class 'dualr,numeric'
Ops(e1, e2)
# S4 method for class 'numeric,dualr'
Ops(e1, e2)
# S4 method for class 'dualr,missing'
e1 + e2
# S4 method for class 'dualr,missing'
e1 - e2
# S4 method for class 'dualr'
!xA dual for arithmetic ops; logical for comparisons.
x <- dual_variable(3)
y <- dual_variable(4)
# Arithmetic
value(x + y) # 7
#> [1] 7
deriv(x * x) # 6 (= 2 * 3)
#> [1] 6
value(x^2) # 9
#> [1] 9
deriv(x^2) # 6
#> [1] 6
# Comparison (uses values only)
x < y # TRUE
#> [1] TRUE
x == y # FALSE
#> [1] FALSE