Skip to content

Commit

Permalink
Notebook for metaprogramming table generation
Browse files Browse the repository at this point in the history
  • Loading branch information
David Sanders committed Aug 19, 2015
1 parent f2a37b9 commit 8b4dad1
Showing 1 changed file with 187 additions and 0 deletions.
187 changes: 187 additions & 0 deletions src/Metaprogramming generation of tables.ipynb
@@ -0,0 +1,187 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(i1,i2,i3) = (0,0,3)\n",
"(i1,i2,i3) = (0,1,2)\n",
"(i1,i2,i3) = (0,2,1)\n",
"(i1,i2,i3) = (0,3,0)\n",
"(i1,i2,i3) = (1,0,2)\n",
"(i1,i2,i3) = (1,1,1)\n",
"(i1,i2,i3) = (1,2,0)\n",
"(i1,i2,i3) = (2,0,1)\n",
"(i1,i2,i3) = (2,1,0)\n",
"(i1,i2,i3) = (3,0,0)\n"
]
}
],
"source": [
"num_vars = 3\n",
"order = 3\n",
"table = NTuple{order}\n",
"\n",
"for i1 in 0:order\n",
" sum1 = i1\n",
" for i2 in 0:order - i1\n",
" sum2 = i2 + sum1\n",
" i3 = order - (sum2)\n",
" @show (i1, i2, i3)\n",
" end\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"quote # In[16], line 2:\n",
" i3 = order - sum2 # line 3:\n",
" println(i1,i2,i3)\n",
"end"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ex = quote \n",
" i3 = order - sum2\n",
" println(i1, i2, i3)\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
":(for i2 = 0:order - sum1 # line 2:\n",
" sum2 = i2 + sum1 # line 3:\n",
" begin # In[16], line 2:\n",
" i3 = order - sum2 # line 3:\n",
" println(i1,i2,i3)\n",
" end\n",
" end)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ex = :(for i2 in 0:order-sum1\n",
" sum2 = i2 + sum1\n",
" $ex\n",
"end)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
":(for i1 = 0:order # line 2:\n",
" sum1 = i1 # line 4:\n",
" for i2 = 0:order - sum1 # line 2:\n",
" sum2 = i2 + sum1 # line 3:\n",
" begin # In[16], line 2:\n",
" i3 = order - sum2 # line 3:\n",
" println(i1,i2,i3)\n",
" end\n",
" end\n",
" end)"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ex = :(for i1 in 0:order\n",
" sum1 = i1\n",
"\n",
" $ex\n",
"end)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"003\n",
"012\n",
"021\n",
"030\n",
"102\n",
"111\n",
"120\n",
"201\n",
"210\n",
"300\n"
]
}
],
"source": [
"eval(ex)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 0.4.0-dev",
"language": "julia",
"name": "julia-0.4"
},
"language_info": {
"name": "julia",
"version": "0.4.0"
}
},
"nbformat": 4,
"nbformat_minor": 0
}

0 comments on commit 8b4dad1

Please sign in to comment.