Reduce(ScalarAdd, IntTuple(Int(0)) + IntTuple(Int(2)))(\n",
" Elemwise(ScalarDiv)(Tensor("x", IntTuple(Int.var("x_dim_0")) + (IntTuple(Int(5)) + IntTuple(Int(7)))), Tensor("y", IntTuple(Int(1)) + (IntTuple(Int(5)) + IntTuple(Int(1)))))\n",
")\n",
"
\n"
],
"text/latex": [
"\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n",
"\\PY{n}{Reduce}\\PY{p}{(}\\PY{n}{ScalarAdd}\\PY{p}{,} \\PY{n}{IntTuple}\\PY{p}{(}\\PY{n}{Int}\\PY{p}{(}\\PY{l+m+mi}{0}\\PY{p}{)}\\PY{p}{)} \\PY{o}{+} \\PY{n}{IntTuple}\\PY{p}{(}\\PY{n}{Int}\\PY{p}{(}\\PY{l+m+mi}{2}\\PY{p}{)}\\PY{p}{)}\\PY{p}{)}\\PY{p}{(}\n",
" \\PY{n}{Elemwise}\\PY{p}{(}\\PY{n}{ScalarDiv}\\PY{p}{)}\\PY{p}{(}\\PY{n}{Tensor}\\PY{p}{(}\\PY{l+s+s2}{\\PYZdq{}}\\PY{l+s+s2}{x}\\PY{l+s+s2}{\\PYZdq{}}\\PY{p}{,} \\PY{n}{IntTuple}\\PY{p}{(}\\PY{n}{Int}\\PY{o}{.}\\PY{n}{var}\\PY{p}{(}\\PY{l+s+s2}{\\PYZdq{}}\\PY{l+s+s2}{x\\PYZus{}dim\\PYZus{}0}\\PY{l+s+s2}{\\PYZdq{}}\\PY{p}{)}\\PY{p}{)} \\PY{o}{+} \\PY{p}{(}\\PY{n}{IntTuple}\\PY{p}{(}\\PY{n}{Int}\\PY{p}{(}\\PY{l+m+mi}{5}\\PY{p}{)}\\PY{p}{)} \\PY{o}{+} \\PY{n}{IntTuple}\\PY{p}{(}\\PY{n}{Int}\\PY{p}{(}\\PY{l+m+mi}{7}\\PY{p}{)}\\PY{p}{)}\\PY{p}{)}\\PY{p}{)}\\PY{p}{,} \\PY{n}{Tensor}\\PY{p}{(}\\PY{l+s+s2}{\\PYZdq{}}\\PY{l+s+s2}{y}\\PY{l+s+s2}{\\PYZdq{}}\\PY{p}{,} \\PY{n}{IntTuple}\\PY{p}{(}\\PY{n}{Int}\\PY{p}{(}\\PY{l+m+mi}{1}\\PY{p}{)}\\PY{p}{)} \\PY{o}{+} \\PY{p}{(}\\PY{n}{IntTuple}\\PY{p}{(}\\PY{n}{Int}\\PY{p}{(}\\PY{l+m+mi}{5}\\PY{p}{)}\\PY{p}{)} \\PY{o}{+} \\PY{n}{IntTuple}\\PY{p}{(}\\PY{n}{Int}\\PY{p}{(}\\PY{l+m+mi}{1}\\PY{p}{)}\\PY{p}{)}\\PY{p}{)}\\PY{p}{)}\\PY{p}{)}\n",
"\\PY{p}{)}\n",
"\\end{Verbatim}\n"
],
"text/plain": [
"Reduce(ScalarAdd, IntTuple(Int(0)) + IntTuple(Int(2)))(\n",
" Elemwise(ScalarDiv)(Tensor(\"x\", IntTuple(Int.var(\"x_dim_0\")) + (IntTuple(Int(5)) + IntTuple(Int(7)))), Tensor(\"y\", IntTuple(Int(1)) + (IntTuple(Int(5)) + IntTuple(Int(1)))))\n",
")"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"egraph.extract(expr)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "uVjDI5hr6fZ3",
"outputId": "4b05f145-14cc-41a5-a5e5-0a2db7019adc"
},
"outputs": [
{
"data": {
"text/plain": [
"[Elemwise(ScalarDiv)(\n",
" Reduce(ScalarAdd, IntTuple(Int(0)) + IntTuple(Int(2)))(Tensor(\"x\", IntTuple(Int.var(\"x_dim_0\")) + (IntTuple(Int(5)) + IntTuple(Int(7))))),\n",
" Squeeze(IntTuple(Int(0)) + IntTuple(Int(2)))(Tensor(\"y\", IntTuple(Int(1)) + (IntTuple(Int(5)) + IntTuple(Int(1))))),\n",
" ),\n",
" Reduce(ScalarAdd, IntTuple(Int(0)) + IntTuple(Int(2)))(\n",
" Elemwise(ScalarDiv)(Tensor(\"x\", IntTuple(Int.var(\"x_dim_0\")) + (IntTuple(Int(5)) + IntTuple(Int(7)))), Tensor(\"y\", IntTuple(Int(1)) + (IntTuple(Int(5)) + IntTuple(Int(1)))))\n",
" ),\n",
" Reduce(ScalarAdd, IntTuple(Int(0)))(\n",
" Reduce(ScalarAdd, IntTuple(Int(2)))(\n",
" Elemwise(ScalarDiv)(\n",
" Tensor(\"x\", IntTuple(Int.var(\"x_dim_0\")) + (IntTuple(Int(5)) + IntTuple(Int(7)))), Tensor(\"y\", IntTuple(Int(1)) + (IntTuple(Int(5)) + IntTuple(Int(1))))\n",
" )\n",
" )\n",
" ),\n",
" Reduce(ScalarAdd, IntTuple(Int(1)))(\n",
" Reduce(ScalarAdd, IntTuple(Int(0)))(\n",
" Elemwise(ScalarDiv)(\n",
" Tensor(\"x\", IntTuple(Int.var(\"x_dim_0\")) + (IntTuple(Int(5)) + IntTuple(Int(7)))), Tensor(\"y\", IntTuple(Int(1)) + (IntTuple(Int(5)) + IntTuple(Int(1))))\n",
" )\n",
" )\n",
" )]"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"egraph.extract_multiple(expr, 10)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "mw6a1kafJNax"
},
"outputs": [],
"source": [
"egraph.check(\n",
" eq(Sum(axis=(0, 2))(Div(x, y))).to(\n",
" # Sum(axis=0)(Mul(Sum(axis=0)(x), Squeeze(axis=0)(y)))\n",
" Div(\n",
" Sum(axis=(0, 2))(x),\n",
" Squeeze(axis=(0, 2))(y),\n",
" )\n",
" # Sum(axis=(0,))(Sum(axis=(1, 2))(y))\n",
" # Squeeze(axis=(0, 2))(y)\n",
" )\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "NgovSVpBRpu0"
},
"outputs": [],
"source": []
}
],
"metadata": {
"mystnb": {
"execution_mode": "off"
},
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.12"
}
},
"nbformat": 4,
"nbformat_minor": 0
}