# Transvectant computations


```python
from sympy import Function, Symbol, symbols, init_printing, expand
from IPython.display import Math, display

init_printing()
from transvectants import *

def disp(expr):
    display(Math(my_latex(expr)))
```


```python
x, y = symbols('x y')
f = Function('f')(x, y)
```


```python
disp(expand(partial_transvectant((f, f), [[0, 1]])))
```


$\displaystyle 0$



```python
disp(expand(partial_transvectant((f, f), [[0, 1], [0, 1], [0, 1], [0, 1]])))
```


$\displaystyle 2 f_{xxxx} f_{yyyy} - 8 f_{xyyy} f_{xxxy} + 6 \left(f_{xxyy}\right)^{2}$



```python
disp(expand(partial_transvectant((f, f, f, f, f, f), [[0, 1], [1, 2], [3, 4], [4, 5]])))
```


$\displaystyle \left(f_{x}\right)^{4} \left(f_{yy}\right)^{2} - 4 \left(f_{x}\right)^{3} f_{y} f_{yy} f_{xy} + 2 \left(f_{x}\right)^{2} f_{xx} \left(f_{y}\right)^{2} f_{yy} + 4 \left(f_{x}\right)^{2} \left(f_{y}\right)^{2} \left(f_{xy}\right)^{2} - 4 f_{x} f_{xx} \left(f_{y}\right)^{3} f_{xy} + \left(f_{xx}\right)^{2} \left(f_{y}\right)^{4}$



```python
disp(expand(partial_transvectant((f, f, f), [[0, 1], [0, 1], [0, 2], [0, 2]])))
```


$\displaystyle \left(f_{xx}\right)^{2} f_{yyyy} + 2 f_{xx} f_{yy} f_{xxyy} - 4 f_{xx} f_{xy} f_{xyyy} + f_{xxxx} \left(f_{yy}\right)^{2} - 4 f_{yy} f_{xy} f_{xxxy} + 4 \left(f_{xy}\right)^{2} f_{xxyy}$



```python
disp(expand(partial_transvectant((f, f, f, f, f), [[0, 1], [0, 1], [2, 3], [2, 3], [2, 4]]) ) -2*(expand(partial_transvectant((f, f, f, f, f), [[0, 1], [1, 2], [2, 3], [3, 0], [0, 4]]) )))
```


$\displaystyle 0$



```python
disp(expand(partial_transvectant((f, f, f), [[0, 1], [0, 1], [0, 1], [0, 2]])))
```


$\displaystyle f_{x} f_{xxx} f_{yyyy} - f_{x} f_{yyy} f_{xxxy} + 3 f_{x} f_{xyy} f_{xxyy} - 3 f_{x} f_{xyyy} f_{xxy} - f_{xxx} f_{y} f_{xyyy} + f_{xxxx} f_{y} f_{yyy} - 3 f_{y} f_{xyy} f_{xxxy} + 3 f_{y} f_{xxy} f_{xxyy}$



```python
disp(expand(partial_transvectant((f, f), [[0, 1], [0, 1], [0, 1]])))
```


$\displaystyle 0$



```python
#C = transvectant(f, f, 2)
#D = -partial_transvectant((f, f, f), [[0, 1], [1, 2]])
# We are going to build these by weight, not degree. 
# Hence order does not match dispaper
# Weight 4 (2 of 'em)

I4_1 = partial_transvectant((f,f),[[0,1],[0,1]]) # = C
I4_2 = partial_transvectant((f, f, f), [[0, 1], [1, 2]]) # = -D

# Weight 6 (2 of 'em)
print('weight 3:')
I6_1 = partial_transvectant((f,f,f),[[0,1],[0,1],[0,2]]) # = transvectant(f, C, 1)
I6_2 = partial_transvectant((f,f,f,f),[[0,1],[0,2],[0,3]])

# Weight 8 (7 of 'em??)
print('weight 4:')
I8_1 = expand(partial_transvectant((f,f,f),[[0,1],[0,1],[1,2],[0,2]]))
I8_2 = expand(partial_transvectant((f,f,f,f),[[0,1],[0,1],[1,2],[2,3]]))
I8_3 = expand(partial_transvectant((f,f,f,f),[[0,1],[1,2],[2,3],[3,0]]))
I8_4 = expand(partial_transvectant((f,f,f,f),[[0,1],[1,2],[1,2],[2,3]]))

I8_5 = expand(partial_transvectant((f,f,f,f,f),[[0,1],[1,2],[2,3],[3,4]]))
I8_6 = expand(partial_transvectant((f,f,f,f,f),[[0,1],[0,2],[0,3],[3,4]]))
I8_7 = expand(partial_transvectant((f,f,f,f,f),[[0,1],[0,2],[0,3],[0,4]]))



print('weight 2')
disp(I4_1)
disp(I4_2)

print('weight 3')
disp(I6_1)
disp(expand(I6_2))

print('weight 4')
disp(I8_1)
print('')
disp(I8_2)
print('')
disp(I8_3)
print('')
disp(I8_4)
print('')
disp(I8_5)
print('')
disp(I8_6)
print('')
disp(I8_7)
```

    weight 3:
    weight 4:
    weight 2



$\displaystyle 2 f_{xx} f_{yy} - 2 \left(f_{xy}\right)^{2}$



$\displaystyle - \left(f_{x}\right)^{2} f_{yy} + 2 f_{x} f_{y} f_{xy} - f_{xx} \left(f_{y}\right)^{2}$


    weight 3



$\displaystyle - \left(f_{xx} f_{yyy} + f_{yy} f_{xxy} - 2 f_{xy} f_{xyy}\right) f_{x} + \left(f_{xx} f_{xyy} + f_{xxx} f_{yy} - 2 f_{xy} f_{xxy}\right) f_{y}$



$\displaystyle - \left(f_{x}\right)^{3} f_{yyy} + 3 \left(f_{x}\right)^{2} f_{y} f_{xyy} - 3 f_{x} \left(f_{y}\right)^{2} f_{xxy} + f_{xxx} \left(f_{y}\right)^{3}$


    weight 4



$\displaystyle 2 f_{xx} f_{yyy} f_{xxy} - 2 f_{xx} \left(f_{xyy}\right)^{2} + 2 f_{xxx} f_{yy} f_{xyy} - 2 f_{xxx} f_{yyy} f_{xy} - 2 f_{yy} \left(f_{xxy}\right)^{2} + 2 f_{xy} f_{xyy} f_{xxy}$


    



$\displaystyle - f_{x} f_{xx} f_{yy} f_{xyy} + f_{x} f_{xx} f_{yyy} f_{xy} - f_{x} f_{xxx} \left(f_{yy}\right)^{2} + 3 f_{x} f_{yy} f_{xy} f_{xxy} - 2 f_{x} \left(f_{xy}\right)^{2} f_{xyy} - \left(f_{xx}\right)^{2} f_{y} f_{yyy} - f_{xx} f_{y} f_{yy} f_{xxy} + 3 f_{xx} f_{y} f_{xy} f_{xyy} + f_{xxx} f_{y} f_{yy} f_{xy} - 2 f_{y} \left(f_{xy}\right)^{2} f_{xxy}$


    



$\displaystyle 2 \left(f_{xx}\right)^{2} \left(f_{yy}\right)^{2} - 4 f_{xx} f_{yy} \left(f_{xy}\right)^{2} + 2 \left(f_{xy}\right)^{4}$


    



$\displaystyle - 2 \left(f_{x}\right)^{2} f_{yyy} f_{xxy} + 2 \left(f_{x}\right)^{2} \left(f_{xyy}\right)^{2} + 2 f_{x} f_{xxx} f_{y} f_{yyy} - 2 f_{x} f_{y} f_{xyy} f_{xxy} - 2 f_{xxx} \left(f_{y}\right)^{2} f_{xyy} + 2 \left(f_{y}\right)^{2} \left(f_{xxy}\right)^{2}$


    



$\displaystyle \left(f_{x}\right)^{2} f_{xx} \left(f_{yy}\right)^{2} - \left(f_{x}\right)^{2} f_{yy} \left(f_{xy}\right)^{2} - 2 f_{x} f_{xx} f_{y} f_{yy} f_{xy} + 2 f_{x} f_{y} \left(f_{xy}\right)^{3} + \left(f_{xx}\right)^{2} \left(f_{y}\right)^{2} f_{yy} - f_{xx} \left(f_{y}\right)^{2} \left(f_{xy}\right)^{2}$


    



$\displaystyle - \left(f_{x}\right)^{3} f_{yy} f_{xyy} + \left(f_{x}\right)^{3} f_{yyy} f_{xy} - \left(f_{x}\right)^{2} f_{xx} f_{y} f_{yyy} + 2 \left(f_{x}\right)^{2} f_{y} f_{yy} f_{xxy} - \left(f_{x}\right)^{2} f_{y} f_{xy} f_{xyy} + 2 f_{x} f_{xx} \left(f_{y}\right)^{2} f_{xyy} - f_{x} f_{xxx} \left(f_{y}\right)^{2} f_{yy} - f_{x} \left(f_{y}\right)^{2} f_{xy} f_{xxy} - f_{xx} \left(f_{y}\right)^{3} f_{xxy} + f_{xxx} \left(f_{y}\right)^{3} f_{xy}$


    



$\displaystyle \left(f_{x}\right)^{4} f_{yyyy} - 4 \left(f_{x}\right)^{3} f_{y} f_{xyyy} + 6 \left(f_{x}\right)^{2} \left(f_{y}\right)^{2} f_{xxyy} - 4 f_{x} \left(f_{y}\right)^{3} f_{xxxy} + f_{xxxx} \left(f_{y}\right)^{4}$



```python
# Only 'weight 4' affine invariant
disp(I4_2/I4_1)

# Only 'weight 6' affine invariant
disp(I6_2/I6_1)

```


$$\frac{- \left(f_{x}\right)^{2} f_{yy} + 2 f_{x} f_{y} f_{xy} - \left(f_{y}\right)^{2} f_{xx}}{2 f_{xx} f_{yy} - 2 \left(f_{xy}\right)^{2}}$$



$$\frac{- \left(f_{x}\right)^{3} f_{yyy} + 3 \left(f_{x}\right)^{2} f_{y} f_{xyy} - 3 f_{x} \left(f_{y}\right)^{2} f_{xxy} + \left(f_{y}\right)^{3} f_{xxx}}{\left(f_{xx} f_{xyy} - 2 f_{xy} f_{xxy} + f_{yy} f_{xxx}\right) f_{y} - \left(f_{xx} f_{yyy} - 2 f_{xy} f_{xyy} + f_{yy} f_{xxy}\right) f_{x}}$$



```python
disp(partial_transvectant((f,f,f,f,f),[[0,2],[1,2],[2,3],[3,4]]))
```


$$- \left(f_{x}\right)^{3} f_{xy} f_{yyy} + \left(f_{x}\right)^{3} f_{yy} f_{xyy} + \left(f_{x}\right)^{2} f_{y} f_{xx} f_{yyy} + \left(f_{x}\right)^{2} f_{y} f_{xy} f_{xyy} - 2 \left(f_{x}\right)^{2} f_{y} f_{yy} f_{xxy} - 2 f_{x} \left(f_{y}\right)^{2} f_{xx} f_{xyy} + f_{x} \left(f_{y}\right)^{2} f_{xy} f_{xxy} + f_{x} \left(f_{y}\right)^{2} f_{yy} f_{xxx} + \left(f_{y}\right)^{3} f_{xx} f_{xxy} - \left(f_{y}\right)^{3} f_{xy} f_{xxx}$$



```python
disp(partial_transvectant((f,f,C),[[0,1],[1,2]]))
```


$$4 \left(\left(f_{x} f_{xy} - f_{y} f_{xx}\right) \left(f_{xx} f_{yyy} - 2 f_{xy} f_{xyy} + f_{yy} f_{xxy}\right) - \left(f_{x} f_{yy} - f_{y} f_{xy}\right) \left(f_{xx} f_{xyy} - 2 f_{xy} f_{xxy} + f_{yy} f_{xxx}\right)\right) f{\left (x,y \right )}$$



```python
#disp(transvectant(C, C, 2))
funcs = (C, f**2)
pairs = [[0, 1]]
disp(partial_transvectant(funcs, pairs))
```


$$4 \left(\left(f_{xx} f_{xyy} - 2 f_{xy} f_{xxy} + f_{yy} f_{xxx}\right) f_{y} - \left(f_{xx} f_{yyy} - 2 f_{xy} f_{xyy} + f_{yy} f_{xxy}\right) f_{x}\right) f{\left (x,y \right )}$$



```python
# Construct linear, quadratic, cubic forms
fx, fy, fxx, fxy, fyy, fxxx, fxxy, fxyy, fyyy = symbols('f_x, f_y, f_{xx}, f_{xy}, f_{yy}, f_{xxx}, f_{xxy}, f_{xyy}, f_{yyy}') 
l = fx*x + fy*y
q = fxx*x*x + 2*fxy*x*y + fyy*y*y
c = fxxx*x*x*x + 3*fxxy*x*x*y + 3*fxyy*x*y*y + fyyy*y*y*y
```


```python
# I3 as a form (Robert's method to annoy us...)
disp(-expand(transvectant(q,transvectant(c,c,2),2)/288))
# I5
disp(expand(transvectant(transvectant(c,c,2),transvectant(c,c,2),2)/10368))
# I6
disp(transvectant(c,l**3,3)/36)
```


$$- f_{xxx} f_{xyy} f_{yy} + f_{xxx} f_{xy} f_{yyy} + f_{xxy}^{2} f_{yy} - f_{xxy} f_{xx} f_{yyy} - f_{xxy} f_{xyy} f_{xy} + f_{xx} f_{xyy}^{2}$$



```python

```


```python

```


$$- 2 f_{xx} f_{xxy} f_{yyy} + 2 f_{xx} \left(f_{xyy}\right)^{2} + 2 f_{xy} f_{xxx} f_{yyy} - 2 f_{xy} f_{xxy} f_{xyy} - 2 f_{yy} f_{xxx} f_{xyy} + 2 f_{yy} \left(f_{xxy}\right)^{2}$$



```python

```


$$2 f_{xx} f_{xxy} f_{yyy} - 2 f_{xx} \left(f_{xyy}\right)^{2} - 2 f_{xy} f_{xxx} f_{yyy} + 2 f_{xy} f_{xxy} f_{xyy} + 2 f_{yy} f_{xxx} f_{xyy} - 2 f_{yy} \left(f_{xxy}\right)^{2}$$



```python

```


$$0$$



```python
disp(simplify(partial_transvectant((f,f,f,f),[[0,1],[1,2],[2,3]])))
disp(simplify(partial_transvectant((f,f,f,f),[[0,1],[1,2],[2,3],[0,1]])))
disp(simplify(partial_transvectant((f,f,f,f),[[0,1],[1,2],[2,3],[0,2]])))
disp(simplify(partial_transvectant((f,f,f,f),[[0,1],[1,2],[2,3],[0,1],[0,2]])))

disp(simplify(partial_transvectant((f,f,f,f),[[0,1],[1,2],[2,3],[3,0]])))
disp(simplify(partial_transvectant((f,f,f,f),[[0,1],[1,2],[2,3],[3,0],[0,1]])))
disp(simplify(partial_transvectant((f,f,f,f),[[0,1],[1,2],[2,3],[3,0],[0,2]])))
disp(simplify(partial_transvectant((f,f,f,f),[[0,1],[0,1],[1,2],[1,2],[2,3]])))
disp(simplify(partial_transvectant((f,f,f,f),[[0,1],[0,1],[1,2],[1,2],[2,3],[2,3]])))
disp(simplify(partial_transvectant((f,f,f,f),[[0,1],[1,2],[2,3],[3,0],[0,1],[1,2]])))
```


$$0$$



$$f_{x} f_{xx} f_{xy} f_{yyy} - f_{x} f_{xx} f_{yy} f_{xyy} - 2 f_{x} \left(f_{xy}\right)^{2} f_{xyy} + 3 f_{x} f_{xy} f_{yy} f_{xxy} - f_{x} \left(f_{yy}\right)^{2} f_{xxx} - f_{y} \left(f_{xx}\right)^{2} f_{yyy} + 3 f_{y} f_{xx} f_{xy} f_{xyy} - f_{y} f_{xx} f_{yy} f_{xxy} - 2 f_{y} \left(f_{xy}\right)^{2} f_{xxy} + f_{y} f_{xy} f_{yy} f_{xxx}$$



$$0$$



$$0$$



$$2 \left(f_{xx}\right)^{2} \left(f_{yy}\right)^{2} - 4 f_{xx} \left(f_{xy}\right)^{2} f_{yy} + 2 \left(f_{xy}\right)^{4}$$



$$0$$



$$0$$



$$\left(\left(f_{xx} f_{xxyy} - 2 f_{xy} f_{xxxy} + f_{yy} f_{xxxx}\right) f_{xyy} - 2 \left(f_{xx} f_{xyyy} - 2 f_{xy} f_{xxyy} + f_{yy} f_{xxxy}\right) f_{xxy} + \left(f_{xx} f_{yyyy} - 2 f_{xy} f_{xyyy} + f_{yy} f_{xxyy}\right) f_{xxx}\right) f_{y} - \left(\left(f_{xx} f_{xxyy} - 2 f_{xy} f_{xxxy} + f_{yy} f_{xxxx}\right) f_{yyy} - 2 \left(f_{xx} f_{xyyy} - 2 f_{xy} f_{xxyy} + f_{yy} f_{xxxy}\right) f_{xyy} + \left(f_{xx} f_{yyyy} - 2 f_{xy} f_{xyyy} + f_{yy} f_{xxyy}\right) f_{xxy}\right) f_{x}$$



$$2 \left(f_{xx}\right)^{2} f_{xxyy} f_{yyyy} - 2 \left(f_{xx}\right)^{2} \left(f_{xyyy}\right)^{2} - 4 f_{xx} f_{xy} f_{xxxy} f_{yyyy} + 4 f_{xx} f_{xy} f_{xxyy} f_{xyyy} + 2 f_{xx} f_{yy} f_{xxxx} f_{yyyy} - 4 f_{xx} f_{yy} f_{xxxy} f_{xyyy} + 2 f_{xx} f_{yy} \left(f_{xxyy}\right)^{2} + 8 \left(f_{xy}\right)^{2} f_{xxxy} f_{xyyy} - 8 \left(f_{xy}\right)^{2} \left(f_{xxyy}\right)^{2} - 4 f_{xy} f_{yy} f_{xxxx} f_{xyyy} + 4 f_{xy} f_{yy} f_{xxxy} f_{xxyy} + 2 \left(f_{yy}\right)^{2} f_{xxxx} f_{xxyy} - 2 \left(f_{yy}\right)^{2} \left(f_{xxxy}\right)^{2}$$



$$- f_{xx} \left(f_{xxy}\right)^{2} f_{yyyy} + 4 f_{xx} f_{xxy} f_{xyy} f_{xyyy} - 2 f_{xx} f_{xxy} f_{yyy} f_{xxyy} - 4 f_{xx} \left(f_{xyy}\right)^{2} f_{xxyy} + 4 f_{xx} f_{xyy} f_{yyy} f_{xxxy} - f_{xx} \left(f_{yyy}\right)^{2} f_{xxxx} + 2 f_{xy} f_{xxx} f_{xxy} f_{yyyy} - 4 f_{xy} f_{xxx} f_{xyy} f_{xyyy} + 2 f_{xy} f_{xxx} f_{yyy} f_{xxyy} - 4 f_{xy} \left(f_{xxy}\right)^{2} f_{xyyy} + 10 f_{xy} f_{xxy} f_{xyy} f_{xxyy} - 4 f_{xy} f_{xxy} f_{yyy} f_{xxxy} - 4 f_{xy} \left(f_{xyy}\right)^{2} f_{xxxy} + 2 f_{xy} f_{xyy} f_{yyy} f_{xxxx} - f_{yy} \left(f_{xxx}\right)^{2} f_{yyyy} + 4 f_{yy} f_{xxx} f_{xxy} f_{xyyy} - 2 f_{yy} f_{xxx} f_{xyy} f_{xxyy} - 4 f_{yy} \left(f_{xxy}\right)^{2} f_{xxyy} + 4 f_{yy} f_{xxy} f_{xyy} f_{xxxy} - f_{yy} \left(f_{xyy}\right)^{2} f_{xxxx}$$



```python
disp(simplify(partial_transvectant((f,f,f),[[0,1],[1,2],[2,0]])))
disp(simplify(partial_transvectant((f,f,f),[[0,1],[1,2],[0,1]])))
disp(simplify(partial_transvectant((f,f,f),[[0,1],[1,2],[2,0],[0,1]])))
```


```python
disp(simplify(partial_transvectant((f,f,f,f),[[0,1],[0,1],[1,2],[1,2],[2,3]])))
disp(simplify(partial_transvectant((f,f,f,f),[[0,1],[0,1],[1,2],[1,2],[2,3],[2,3]])))
```


$$\left(\left(f_{xx} f_{xxyy} - 2 f_{xy} f_{xxxy} + f_{yy} f_{xxxx}\right) f_{xyy} - 2 \left(f_{xx} f_{xyyy} - 2 f_{xy} f_{xxyy} + f_{yy} f_{xxxy}\right) f_{xxy} + \left(f_{xx} f_{yyyy} - 2 f_{xy} f_{xyyy} + f_{yy} f_{xxyy}\right) f_{xxx}\right) f_{y} - \left(\left(f_{xx} f_{xxyy} - 2 f_{xy} f_{xxxy} + f_{yy} f_{xxxx}\right) f_{yyy} - 2 \left(f_{xx} f_{xyyy} - 2 f_{xy} f_{xxyy} + f_{yy} f_{xxxy}\right) f_{xyy} + \left(f_{xx} f_{yyyy} - 2 f_{xy} f_{xyyy} + f_{yy} f_{xxyy}\right) f_{xxy}\right) f_{x}$$



$$2 \left(f_{xx}\right)^{2} f_{xxyy} f_{yyyy} - 2 \left(f_{xx}\right)^{2} \left(f_{xyyy}\right)^{2} - 4 f_{xx} f_{xy} f_{xxxy} f_{yyyy} + 4 f_{xx} f_{xy} f_{xxyy} f_{xyyy} + 2 f_{xx} f_{yy} f_{xxxx} f_{yyyy} - 4 f_{xx} f_{yy} f_{xxxy} f_{xyyy} + 2 f_{xx} f_{yy} \left(f_{xxyy}\right)^{2} + 8 \left(f_{xy}\right)^{2} f_{xxxy} f_{xyyy} - 8 \left(f_{xy}\right)^{2} \left(f_{xxyy}\right)^{2} - 4 f_{xy} f_{yy} f_{xxxx} f_{xyyy} + 4 f_{xy} f_{yy} f_{xxxy} f_{xxyy} + 2 \left(f_{yy}\right)^{2} f_{xxxx} f_{xxyy} - 2 \left(f_{yy}\right)^{2} \left(f_{xxxy}\right)^{2}$$



```python
disp(expand(partial_transvectant((f,f,f,f,f),[[0,1],[1,2],[2,3],[3,4]])))
```


$$\left(f_{x}\right)^{2} f_{xx} \left(f_{yy}\right)^{2} - \left(f_{x}\right)^{2} \left(f_{xy}\right)^{2} f_{yy} - 2 f_{x} f_{y} f_{xx} f_{xy} f_{yy} + 2 f_{x} f_{y} \left(f_{xy}\right)^{3} + \left(f_{y}\right)^{2} \left(f_{xx}\right)^{2} f_{yy} - \left(f_{y}\right)^{2} f_{xx} \left(f_{xy}\right)^{2}$$



```python
disp(expand(partial_transvectant((f,f,f,f,f),[[0,1],[1,2],[2,3],[3,4]])))
disp(expand(partial_transvectant((f,f,f,f,f),[[0,1],[0,2],[0,3],[3,4]])))
disp(expand(partial_transvectant((f,f,f,f,f),[[0,1],[0,2],[0,3],[0,4]])))
```


$$\left(f_{x}\right)^{2} f_{xx} \left(f_{yy}\right)^{2} - \left(f_{x}\right)^{2} \left(f_{xy}\right)^{2} f_{yy} - 2 f_{x} f_{y} f_{xx} f_{xy} f_{yy} + 2 f_{x} f_{y} \left(f_{xy}\right)^{3} + \left(f_{y}\right)^{2} \left(f_{xx}\right)^{2} f_{yy} - \left(f_{y}\right)^{2} f_{xx} \left(f_{xy}\right)^{2}$$



$$- \left(f_{x}\right)^{2} f_{xx} \left(f_{yy}\right)^{2} + \left(f_{x}\right)^{2} \left(f_{xy}\right)^{2} f_{yy} + 2 f_{x} f_{y} f_{xx} f_{xy} f_{yy} - 2 f_{x} f_{y} \left(f_{xy}\right)^{3} - \left(f_{y}\right)^{2} \left(f_{xx}\right)^{2} f_{yy} + \left(f_{y}\right)^{2} f_{xx} \left(f_{xy}\right)^{2}$$



$$\left(f_{x}\right)^{3} f_{xy} f_{yyy} - \left(f_{x}\right)^{3} f_{yy} f_{xyy} - \left(f_{x}\right)^{2} f_{y} f_{xx} f_{yyy} - \left(f_{x}\right)^{2} f_{y} f_{xy} f_{xyy} + 2 \left(f_{x}\right)^{2} f_{y} f_{yy} f_{xxy} + 2 f_{x} \left(f_{y}\right)^{2} f_{xx} f_{xyy} - f_{x} \left(f_{y}\right)^{2} f_{xy} f_{xxy} - f_{x} \left(f_{y}\right)^{2} f_{yy} f_{xxx} - \left(f_{y}\right)^{3} f_{xx} f_{xxy} + \left(f_{y}\right)^{3} f_{xy} f_{xxx}$$



$$\left(f_{x}\right)^{4} f_{yyyy} - 4 \left(f_{x}\right)^{3} f_{y} f_{xyyy} + 6 \left(f_{x}\right)^{2} \left(f_{y}\right)^{2} f_{xxyy} - 4 f_{x} \left(f_{y}\right)^{3} f_{xxxy} + \left(f_{y}\right)^{4} f_{xxxx}$$



```python

```

Transvectants:

(1) We can use transvectants to create lots of invariants. More than Robert can.
(2) We understand the role of weight and degree, and have a nice graph-based picture for all the invariants up to weight 8
(3) There is no issue with SA(2), but for A(2) the weight 4 invariants have non-removable singularities. There are three possible solutions: (i) claim you only do this on parts of images, (ii) look at the weight 8 invariants instead, particularly I8_1 and I8_3 which do not have f_x in at all, or I4^2/I8, (iii) consider projection as Robert did. Our preference is (ii) but we haven't done it yet.


Moving frame:

(1) We understand it, but it is still ugly
(2) So we just write it as is

Hence:

We can build all the invariants we need now.
We still have a projection issue. And hence a high weight invariant issue. And hence a serious noise problem.

But we probably now have enough for a paper. So we should write it. 



b48de94967ea2764cb25d86d07ed412b688cbeb8
ipynb
Jupyter Notebook
code/Transvectant computations.ipynb
rgbrown/invariants
ed70550c21f51a5e1a53c6ea423d1db6f0f0d037
MIT
code/Transvectant computations.ipynb
rgbrown/invariants
ed70550c21f51a5e1a53c6ea423d1db6f0f0d037
MIT
code/Transvectant computations.ipynb
rgbrown/invariants
ed70550c21f51a5e1a53c6ea423d1db6f0f0d037
MIT
Qwen/Qwen-72B
1. YES
2. YES