Мне нужно написать функцию (и), которая полностью расширяет некоммутативное умножение по сравнению с сложением?
Например:
а ** (б + с ^ 2)
расширится до
а ** б + а ** с ^ 2
и аналогично справа.
Я использую ReplaceRepeated (.//). Так как я использую NonCommulativeMultiply вместо Times, Expand не работает. Я использовал пакет NCAlgebra, который имеет NCExpand, однако ReplaceRepeated не работает при использовании этого пакета (как указано в документации NCAlgebra ... argh).
Чтобы избежать взлома ReplaceRepeated, мне нужно написать собственный NCExpand, который не будет конфликтовать.
Все идеи приветствуются, спасибо ...