@@ -44,10 +44,8 @@ function diff(arg::UnaryOperation{Cos}, wrt::Variable)
4444end
4545
4646function diff (arg:: Power , wrt:: Variable )
47- outer = replace_bound_letters (arg. base, wrt)
48-
4947 return BinaryOperation {Mult} (
50- BinaryOperation {Mult} (arg. exponent, Power (outer , arg. exponent - 1 )),
48+ BinaryOperation {Mult} (arg. exponent, Power (arg . base , arg. exponent - 1 )),
5149 diff (arg. base, wrt),
5250 )
5351end
@@ -63,18 +61,6 @@ function diff(arg::BinaryOperation{Op}, wrt::Variable) where {Op<:AdditiveOperat
6361 return BinaryOperation {Op} (diff (arg. arg1, wrt), diff (arg. arg2, wrt))
6462end
6563
66- function replace_bound_letters (arg:: Tensor , letters_to_skip:: Tensor... )
67- letters = unique (get_letters (get_indices (arg)))
68- free_letters = unique (get_letters (get_free_indices (arg)))
69- bound_letters = setdiff (letters, free_letters)
70- next_letter = get_next_letter (arg, letters_to_skip... )
71-
72- letter_map =
73- Dict (bound_letters[li] => next_letter + li - 1 for li ∈ eachindex (bound_letters))
74-
75- return replace_letters (arg, letter_map)
76- end
77-
7864function collect_factors (arg:: BinaryOperation{Mult} )
7965 return Value[collect_factors (arg. arg1); collect_factors (arg. arg2)]
8066end
0 commit comments