In [1]:
using Flows


INFO: Recompiling stale cache file /home/hofi/.julia/lib/v0.4/Flows.ji for module Flows.

In [2]:
@funs F,G,H


Out[2]:
(F,G,H)

In [3]:
@x_vars u,v,w


Out[3]:
(u,v,w)

In [4]:
@t_vars t,s,r


Out[4]:
(t,s,r)

In [5]:
ex = exp(t,D(F),L)*exp(s,G,R)*exp(r,H)


Out[5]:
$\underbrace{\mathrm{e}^{tD_{F}}}_\mathrm{L}\underbrace{\mathrm{e}^{sD_{G}}}_\mathrm{R}\mathrm{e}^{rD_{H}}$

In [6]:
show_exponential_labels(false)


Out[6]:
false

In [7]:
ex


Out[7]:
$\mathrm{e}^{tD_{F}}\mathrm{e}^{sD_{G}}\mathrm{e}^{rD_{H}}$

In [8]:
string(ex)


Out[8]:
"exp(t,D(F),L)*exp(s,D(G),R)*exp(r,D(H))"

In [9]:
show_exponential_labels()


Out[9]:
true

In [10]:
ex


Out[10]:
$\underbrace{\mathrm{e}^{tD_{F}}}_\mathrm{L}\underbrace{\mathrm{e}^{sD_{G}}}_\mathrm{R}\mathrm{e}^{rD_{H}}$

In [11]:
ex1=exp(t,D(F),L)


Out[11]:
$\underbrace{\mathrm{e}^{tD_{F}}}_\mathrm{L}$

In [12]:
ex2=exp(t,D(F),R)


Out[12]:
$\underbrace{\mathrm{e}^{tD_{F}}}_\mathrm{R}$

In [13]:
ex1==ex2


Out[13]:
false

In [14]:
ex = ex1+ex2


Out[14]:
$\underbrace{\mathrm{e}^{tD_{F}}}_\mathrm{L}+\underbrace{\mathrm{e}^{tD_{F}}}_\mathrm{R}$

In [15]:
_L = Flows.L
_R = Flows.R


Out[15]:
Flows.Label("R")

In [16]:
t_derivative(ex, t, to_the_right=[R])


Out[16]:
$\underbrace{\mathrm{e}^{tD_{F}}}_\mathrm{L}D_{F}+D_{F}\underbrace{\mathrm{e}^{tD_{F}}}_\mathrm{R}$

In [17]:
ex = exp(t,F)*(exp(t,G)+exp(t,H))


Out[17]:
$\mathrm{e}^{tD_{F}}(\mathrm{e}^{tD_{G}}+\mathrm{e}^{tD_{H}})$

In [18]:
t_derivative(ex, t, to_the_right=[default])


Out[18]:
$\mathrm{e}^{tD_{F}}(D_{H}\mathrm{e}^{tD_{H}}+D_{G}\mathrm{e}^{tD_{G}})+D_{F}\mathrm{e}^{tD_{F}}(\mathrm{e}^{tD_{G}}+\mathrm{e}^{tD_{H}})$

In [19]:
t_derivative(ex, t)


Out[19]:
$\mathrm{e}^{tD_{F}}(D_{F}(\mathrm{e}^{tD_{G}}+\mathrm{e}^{tD_{H}})+\mathrm{e}^{tD_{G}}D_{G}+\mathrm{e}^{tD_{H}}D_{H})$

In [20]:
expand(t_derivative(ex, t))


Out[20]:
$\mathrm{e}^{tD_{F}}\mathrm{e}^{tD_{G}}D_{G}+\mathrm{e}^{tD_{F}}D_{F}\mathrm{e}^{tD_{G}}+\mathrm{e}^{tD_{F}}\mathrm{e}^{tD_{H}}D_{H}+\mathrm{e}^{tD_{F}}D_{F}\mathrm{e}^{tD_{H}}$

In [21]:
ex = (exp(t,G)+exp(t,H))*exp(t,F)


Out[21]:
$(\mathrm{e}^{tD_{G}}+\mathrm{e}^{tD_{H}})\mathrm{e}^{tD_{F}}$

In [22]:
t_derivative(ex, t)


Out[22]:
$(\mathrm{e}^{tD_{G}}+\mathrm{e}^{tD_{H}})\mathrm{e}^{tD_{F}}D_{F}+(\mathrm{e}^{tD_{G}}D_{G}+\mathrm{e}^{tD_{H}}D_{H})\mathrm{e}^{tD_{F}}$

In [23]:
ex = D(F)*exp(t,G)*D(F)*exp(t,G)*D(F)*exp(t,G)*D(F)


Out[23]:
$D_{F}\mathrm{e}^{tD_{G}}D_{F}\mathrm{e}^{tD_{G}}D_{F}\mathrm{e}^{tD_{G}}D_{F}$

In [24]:
ex1 = t_derivative(ex, t)


Out[24]:
$D_{F}\mathrm{e}^{tD_{G}}(D_{G}D_{F}\mathrm{e}^{tD_{G}}D_{F}\mathrm{e}^{tD_{G}}+D_{F}\mathrm{e}^{tD_{G}}(D_{F}\mathrm{e}^{tD_{G}}D_{G}+D_{G}D_{F}\mathrm{e}^{tD_{G}}))D_{F}$

In [25]:
ex1 = D(F)*D(F)*D(G)


Out[25]:
$D_{F}D_{F}D_{G}$

In [26]:
ex2 = D(F)*D(G)*D(G)


Out[26]:
$D_{F}D_{G}D_{G}$

In [27]:
add_factorized(ex1, ex2)


Out[27]:
$D_{F}(D_{F}+D_{G})D_{G}$

In [28]:
add_factorized(D(F), ex2)


Out[28]:
$D_{F}(\mathrm{Id}+D_{G}D_{G})$

In [29]:
add_factorized(D(G), ex2)


Out[29]:
$(\mathrm{Id}+D_{F}D_{G})D_{G}$

In [30]:
@funs R


WARNING: imported binding for R overwritten in module Main
Out[30]:
(R,)

In [31]:
@t_vars τ


Out[31]:
(τ,)

In [32]:
show_exponential_labels()


Out[32]:
true

In [33]:
ex = exp(τ,D(F+R),_L)exp(t-τ,D(F),_R)


Out[33]:
$\underbrace{\mathrm{e}^{τD_{F+R}}}_\mathrm{L}\underbrace{\mathrm{e}^{(-τ+t)D_{F}}}_\mathrm{R}$

In [34]:
show_exponential_labels(false)


Out[34]:
false

In [35]:
ex = t_derivative(ex,τ)


Out[35]:
$\mathrm{e}^{τD_{F+R}}(D_{F+R}-D_{F})\mathrm{e}^{(-τ+t)D_{F}}$

In [36]:
ex = expand_lie_derivatives(ex)


Out[36]:
$\mathrm{e}^{τD_{F+R}}D_{R}\mathrm{e}^{(-τ+t)D_{F}}$

In [37]:
ex=exp(2t,D(F))exp(3t,D(G),L)


Out[37]:
$\mathrm{e}^{2tD_{F}}\mathrm{e}^{3tD_{G}}$

In [38]:
t_derivative(ex,t)


Out[38]:
$\mathrm{e}^{2tD_{F}}(2D_{F}\mathrm{e}^{3tD_{G}}+3\mathrm{e}^{3tD_{G}}D_{G})$

In [39]:
add_factorized(2D(F)D(H), -D(F)D(G)D(H))


Out[39]:
$D_{F}(2\mathrm{Id}-D_{G})D_{H}$

In [40]:
ex=2*D(F)*3*D(G)*5*D(H)


Out[40]:
$30D_{F}D_{G}D_{H}$

In [41]:
ex = exp(t,F)D(G)exp(-t,F,_R)


Out[41]:
$\mathrm{e}^{tD_{F}}D_{G}\mathrm{e}^{-tD_{F}}$

In [42]:
ex = t_derivative(ex,t)


Out[42]:
$\mathrm{e}^{tD_{F}}(D_{F}D_{G}-D_{G}D_{F})\mathrm{e}^{-tD_{F}}$

In [43]:
ex = t_derivative(ex,t)


Out[43]:
$\mathrm{e}^{tD_{F}}(-(D_{F}D_{G}-D_{G}D_{F})D_{F}+D_{F}(D_{F}D_{G}-D_{G}D_{F}))\mathrm{e}^{-tD_{F}}$

In [44]:
expand(ex)


Out[44]:
$\mathrm{e}^{tD_{F}}D_{F}D_{F}D_{G}\mathrm{e}^{-tD_{F}}-2\mathrm{e}^{tD_{F}}D_{F}D_{G}D_{F}\mathrm{e}^{-tD_{F}}+\mathrm{e}^{tD_{F}}D_{G}D_{F}D_{F}\mathrm{e}^{-tD_{F}}$

In [45]:
ex = t_derivative(ex,t)


Out[45]:
$\mathrm{e}^{tD_{F}}(-(-(D_{F}D_{G}-D_{G}D_{F})D_{F}+D_{F}(D_{F}D_{G}-D_{G}D_{F}))D_{F}+D_{F}(-(D_{F}D_{G}-D_{G}D_{F})D_{F}+D_{F}(D_{F}D_{G}-D_{G}D_{F})))\mathrm{e}^{-tD_{F}}$

In [46]:
expand(ex)


Out[46]:
$-\mathrm{e}^{tD_{F}}D_{G}D_{F}D_{F}D_{F}\mathrm{e}^{-tD_{F}}-3\mathrm{e}^{tD_{F}}D_{F}D_{F}D_{G}D_{F}\mathrm{e}^{-tD_{F}}+3\mathrm{e}^{tD_{F}}D_{F}D_{G}D_{F}D_{F}\mathrm{e}^{-tD_{F}}+\mathrm{e}^{tD_{F}}D_{F}D_{F}D_{F}D_{G}\mathrm{e}^{-tD_{F}}$

In [47]:
ex1=expand_lie_commutators(commutator(D(F),commutator(D(F),commutator(D(F),D(G)))))


Out[47]:
$-(-(D_{F}D_{G}-D_{G}D_{F})D_{F}+D_{F}(D_{F}D_{G}-D_{G}D_{F}))D_{F}+D_{F}(-(D_{F}D_{G}-D_{G}D_{F})D_{F}+D_{F}(D_{F}D_{G}-D_{G}D_{F}))$

In [48]:
ex1 = exp(t,F)*ex1*exp(-t,F,_R)


Out[48]:
$\mathrm{e}^{tD_{F}}(-(-(D_{F}D_{G}-D_{G}D_{F})D_{F}+D_{F}(D_{F}D_{G}-D_{G}D_{F}))D_{F}+D_{F}(-(D_{F}D_{G}-D_{G}D_{F})D_{F}+D_{F}(D_{F}D_{G}-D_{G}D_{F})))\mathrm{e}^{-tD_{F}}$

In [49]:
ex==ex1


Out[49]:
true

In [50]:
ex = D(G)*D(F)*exp(2t,F)*D(F)^2*exp(3s,5F)*D(7F)*D(G)


Out[50]:
$D_{G}D_{F}\mathrm{e}^{2tD_{F}}D_{F}D_{F}\mathrm{e}^{3sD_{5F}}D_{7F}D_{G}$

In [51]:
normalize_lie_products(ex)


Out[51]:
$7D_{G}\mathrm{e}^{(15s+2t)D_{F}}D_{F}D_{F}D_{F}D_{F}D_{G}$

In [52]:
normalize_lie_products(ex, to_the_right=[default])


Out[52]:
$7D_{G}D_{F}D_{F}D_{F}D_{F}\mathrm{e}^{(15s+2t)D_{F}}D_{G}$

In [ ]: