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'
!x

Arguments

e1, e2

Dual or numeric operands.

x

A dual number (for unary !).

Value

A dual for arithmetic ops; logical for comparisons.

Examples

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