Skip to content

Instantly share code, notes, and snippets.

@foxqstm
Created May 17, 2022 11:18
Show Gist options
  • Save foxqstm/57f693de9c6cf900b1c8b48f2aa2345d to your computer and use it in GitHub Desktop.
Save foxqstm/57f693de9c6cf900b1c8b48f2aa2345d to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 45,
"id": "8670c6c9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"190\n",
"(0, 1)\n",
"Emb -40.49338713790425\n",
"EmbO -20.493387137904172\n",
"(0, 2)\n",
"Emb -40.451522578908104\n",
"EmbO -20.451522578908047\n",
"(0, 3)\n",
"Emb -40.332560790995785\n",
"EmbO -20.3325607909957\n",
"(0, 4)\n",
"Emb -40.3196294350776\n",
"EmbO -20.319629435077655\n",
"(0, 5)\n",
"Emb -40.243506204939266\n",
"EmbO -20.243506204939223\n",
"(0, 6)\n",
"Emb -40.06719161359707\n",
"EmbO -20.067191613596954\n",
"(0, 7)\n",
"Emb -40.033070283381306\n",
"EmbO -20.03307028338122\n",
"(0, 8)\n",
"Emb -39.9747144181317\n",
"EmbO -19.974714418131676\n",
"(0, 9)\n",
"Emb -39.900097809824665\n",
"EmbO -19.900097809824604\n",
"(0, 10)\n",
"Emb -39.76954484872376\n",
"EmbO -19.769544848723648\n",
"(0, 11)\n",
"Emb -39.18954647477006\n",
"EmbO -19.189546474770047\n",
"(0, 12)\n",
"Emb -39.172891029955274\n",
"EmbO -19.172891029955217\n",
"(0, 13)\n",
"Emb -39.084629875815494\n",
"EmbO -19.084629875815406\n",
"(0, 14)\n",
"Emb -39.05301396180111\n",
"EmbO -19.053013961801188\n",
"(0, 15)\n",
"Emb -38.99870685840591\n",
"EmbO -18.99870685840598\n",
"(0, 16)\n",
"Emb -38.97632154728909\n",
"EmbO -18.976321547289146\n",
"(0, 17)\n",
"Emb -38.950520035552\n",
"EmbO -18.95052003555201\n",
"(0, 18)\n",
"Emb -38.894631398337125\n",
"EmbO -18.894631398337093\n",
"(0, 19)\n",
"Emb -38.885180043911376\n",
"EmbO -18.885180043911284\n",
"(1, 2)\n",
"Emb -39.052630448239036\n",
"EmbO -19.052630448238986\n",
"(1, 3)\n",
"Emb -38.93366866032672\n",
"EmbO -18.933668660326642\n",
"(1, 4)\n",
"Emb -38.92073730440853\n",
"EmbO -18.920737304408597\n",
"(1, 5)\n",
"Emb -38.8446140742702\n",
"EmbO -18.84461407427016\n",
"(1, 6)\n",
"Emb -38.668299482928\n",
"EmbO -18.668299482927896\n",
"(1, 7)\n",
"Emb -38.63417815271224\n",
"EmbO -18.634178152712163\n",
"(1, 8)\n",
"Emb -38.57582228746263\n",
"EmbO -18.575822287462614\n",
"(1, 9)\n",
"Emb -38.501205679155596\n",
"EmbO -18.501205679155547\n",
"(1, 10)\n",
"Emb -38.37065271805469\n",
"EmbO -18.370652718054593\n",
"(1, 11)\n",
"Emb -37.79065434410099\n",
"EmbO -17.790654344100993\n",
"(1, 12)\n",
"Emb -37.773998899286205\n",
"EmbO -17.773998899286163\n",
"(1, 13)\n",
"Emb -37.685737745146426\n",
"EmbO -17.685737745146348\n",
"(1, 14)\n",
"Emb -37.654121831132045\n",
"EmbO -17.65412183113213\n",
"(1, 15)\n",
"Emb -37.59981472773684\n",
"EmbO -17.599814727736927\n",
"(1, 16)\n",
"Emb -37.57742941662002\n",
"EmbO -17.577429416620085\n",
"(1, 17)\n",
"Emb -37.551627904882935\n",
"EmbO -17.551627904882952\n",
"(1, 18)\n",
"Emb -37.49573926766806\n",
"EmbO -17.495739267668036\n",
"(1, 19)\n",
"Emb -37.48628791324231\n",
"EmbO -17.486287913242226\n",
"(2, 3)\n",
"Emb -38.89180410133057\n",
"EmbO -18.891804101330514\n",
"(2, 4)\n",
"Emb -38.878872745412394\n",
"EmbO -18.878872745412473\n",
"(2, 5)\n",
"Emb -38.80274951527406\n",
"EmbO -18.802749515274037\n",
"(2, 6)\n",
"Emb -38.62643492393185\n",
"EmbO -18.626434923931768\n",
"(2, 7)\n",
"Emb -38.59231359371609\n",
"EmbO -18.592313593716035\n",
"(2, 8)\n",
"Emb -38.53395772846648\n",
"EmbO -18.53395772846649\n",
"(2, 9)\n",
"Emb -38.45934112015945\n",
"EmbO -18.459341120159422\n",
"(2, 10)\n",
"Emb -38.32878815905855\n",
"EmbO -18.328788159058465\n",
"(2, 11)\n",
"Emb -37.74878978510485\n",
"EmbO -17.748789785104865\n",
"(2, 12)\n",
"Emb -37.73213434029006\n",
"EmbO -17.732134340290035\n",
"(2, 13)\n",
"Emb -37.64387318615028\n",
"EmbO -17.643873186150223\n",
"(2, 14)\n",
"Emb -37.612257272135906\n",
"EmbO -17.612257272136006\n",
"(2, 15)\n",
"Emb -37.557950168740696\n",
"EmbO -17.5579501687408\n",
"(2, 16)\n",
"Emb -37.535564857623875\n",
"EmbO -17.53556485762396\n",
"(2, 17)\n",
"Emb -37.50976334588678\n",
"EmbO -17.509763345886824\n",
"(2, 18)\n",
"Emb -37.45387470867191\n",
"EmbO -17.45387470867191\n",
"(2, 19)\n",
"Emb -37.44442335424617\n",
"EmbO -17.4444233542461\n",
"(3, 4)\n",
"Emb -38.75991095750007\n",
"EmbO -18.759910957500125\n",
"(3, 5)\n",
"Emb -38.68378772736173\n",
"EmbO -18.68378772736169\n",
"(3, 6)\n",
"Emb -38.507473136019534\n",
"EmbO -18.507473136019424\n",
"(3, 7)\n",
"Emb -38.47335180580377\n",
"EmbO -18.47335180580369\n",
"(3, 8)\n",
"Emb -38.414995940554164\n",
"EmbO -18.414995940554142\n",
"(3, 9)\n",
"Emb -38.34037933224713\n",
"EmbO -18.340379332247075\n",
"(3, 10)\n",
"Emb -38.20982637114623\n",
"EmbO -18.20982637114612\n",
"(3, 11)\n",
"Emb -37.62982799719253\n",
"EmbO -17.62982799719252\n",
"(3, 12)\n",
"Emb -37.61317255237774\n",
"EmbO -17.61317255237769\n",
"(3, 13)\n",
"Emb -37.52491139823796\n",
"EmbO -17.524911398237876\n",
"(3, 14)\n",
"Emb -37.49329548422358\n",
"EmbO -17.49329548422366\n",
"(3, 15)\n",
"Emb -37.43898838082838\n",
"EmbO -17.438988380828455\n",
"(3, 16)\n",
"Emb -37.416603069711556\n",
"EmbO -17.416603069711613\n",
"(3, 17)\n",
"Emb -37.39080155797447\n",
"EmbO -17.39080155797448\n",
"(3, 18)\n",
"Emb -37.33491292075959\n",
"EmbO -17.334912920759564\n",
"(3, 19)\n",
"Emb -37.32546156633384\n",
"EmbO -17.325461566333754\n",
"(4, 5)\n",
"Emb -38.670856371443556\n",
"EmbO -18.670856371443648\n",
"(4, 6)\n",
"Emb -38.49454178010136\n",
"EmbO -18.49454178010138\n",
"(4, 7)\n",
"Emb -38.46042044988559\n",
"EmbO -18.460420449885646\n",
"(4, 8)\n",
"Emb -38.40206458463598\n",
"EmbO -18.4020645846361\n",
"(4, 9)\n",
"Emb -38.327447976328955\n",
"EmbO -18.32744797632903\n",
"(4, 10)\n",
"Emb -38.19689501522805\n",
"EmbO -18.196895015228073\n",
"(4, 11)\n",
"Emb -37.61689664127435\n",
"EmbO -17.616896641274472\n",
"(4, 12)\n",
"Emb -37.600241196459564\n",
"EmbO -17.600241196459642\n",
"(4, 13)\n",
"Emb -37.51198004231978\n",
"EmbO -17.51198004231983\n",
"(4, 14)\n",
"Emb -37.4803641283054\n",
"EmbO -17.480364128305613\n",
"(4, 15)\n",
"Emb -37.42605702491019\n",
"EmbO -17.426057024910406\n",
"(4, 16)\n",
"Emb -37.40367171379337\n",
"EmbO -17.40367171379357\n",
"(4, 17)\n",
"Emb -37.377870202056286\n",
"EmbO -17.377870202056435\n",
"(4, 18)\n",
"Emb -37.32198156484141\n",
"EmbO -17.32198156484152\n",
"(4, 19)\n",
"Emb -37.312530210415666\n",
"EmbO -17.31253021041571\n",
"(5, 6)\n",
"Emb -38.41841854996302\n",
"EmbO -18.418418549962944\n",
"(5, 7)\n",
"Emb -38.38429721974725\n",
"EmbO -18.38429721974721\n",
"(5, 8)\n",
"Emb -38.325941354497644\n",
"EmbO -18.325941354497665\n",
"(5, 9)\n",
"Emb -38.25132474619062\n",
"EmbO -18.251324746190598\n",
"(5, 10)\n",
"Emb -38.120771785089715\n",
"EmbO -18.12077178508964\n",
"(5, 11)\n",
"Emb -37.540773411136016\n",
"EmbO -17.54077341113604\n",
"(5, 12)\n",
"Emb -37.52411796632123\n",
"EmbO -17.52411796632121\n",
"(5, 13)\n",
"Emb -37.43585681218144\n",
"EmbO -17.4358568121814\n",
"(5, 14)\n",
"Emb -37.40424089816707\n",
"EmbO -17.40424089816718\n",
"(5, 15)\n",
"Emb -37.34993379477186\n",
"EmbO -17.349933794771975\n",
"(5, 16)\n",
"Emb -37.327548483655036\n",
"EmbO -17.327548483655136\n",
"(5, 17)\n",
"Emb -37.30174697191795\n",
"EmbO -17.301746971918\n",
"(5, 18)\n",
"Emb -37.24585833470307\n",
"EmbO -17.245858334703087\n",
"(5, 19)\n",
"Emb -37.23640698027733\n",
"EmbO -17.236406980277277\n",
"(6, 7)\n",
"Emb -38.207982628405055\n",
"EmbO -18.207982628404945\n",
"(6, 8)\n",
"Emb -38.149626763155446\n",
"EmbO -18.149626763155396\n",
"(6, 9)\n",
"Emb -38.075010154848414\n",
"EmbO -18.07501015484833\n",
"(6, 10)\n",
"Emb -37.94445719374751\n",
"EmbO -17.944457193747375\n",
"(6, 11)\n",
"Emb -37.36445881979381\n",
"EmbO -17.364458819793775\n",
"(6, 12)\n",
"Emb -37.34780337497902\n",
"EmbO -17.347803374978945\n",
"(6, 13)\n",
"Emb -37.25954222083924\n",
"EmbO -17.25954222083913\n",
"(6, 14)\n",
"Emb -37.22792630682487\n",
"EmbO -17.227926306824912\n",
"(6, 15)\n",
"Emb -37.17361920342966\n",
"EmbO -17.17361920342971\n",
"(6, 16)\n",
"Emb -37.15123389231284\n",
"EmbO -17.151233892312867\n",
"(6, 17)\n",
"Emb -37.125432380575745\n",
"EmbO -17.125432380575734\n",
"(6, 18)\n",
"Emb -37.069543743360875\n",
"EmbO -17.069543743360818\n",
"(6, 19)\n",
"Emb -37.06009238893513\n",
"EmbO -17.060092388935008\n",
"(7, 8)\n",
"Emb -38.115505432939685\n",
"EmbO -18.115505432939663\n",
"(7, 9)\n",
"Emb -38.04088882463265\n",
"EmbO -18.040888824632596\n",
"(7, 10)\n",
"Emb -37.91033586353175\n",
"EmbO -17.910335863531643\n",
"(7, 11)\n",
"Emb -37.33033748957805\n",
"EmbO -17.330337489578042\n",
"(7, 12)\n",
"Emb -37.31368204476326\n",
"EmbO -17.313682044763212\n",
"(7, 13)\n",
"Emb -37.22542089062348\n",
"EmbO -17.225420890623397\n",
"(7, 14)\n",
"Emb -37.1938049766091\n",
"EmbO -17.19380497660918\n",
"(7, 15)\n",
"Emb -37.1394978732139\n",
"EmbO -17.139497873213976\n",
"(7, 16)\n",
"Emb -37.11711256209708\n",
"EmbO -17.117112562097134\n",
"(7, 17)\n",
"Emb -37.09131105035999\n",
"EmbO -17.09131105036\n",
"(7, 18)\n",
"Emb -37.03542241314511\n",
"EmbO -17.035422413145085\n",
"(7, 19)\n",
"Emb -37.025971058719364\n",
"EmbO -17.025971058719275\n",
"(8, 9)\n",
"Emb -37.98253295938304\n",
"EmbO -17.98253295938305\n",
"(8, 10)\n",
"Emb -37.85197999828214\n",
"EmbO -17.851979998282093\n",
"(8, 11)\n",
"Emb -37.27198162432844\n",
"EmbO -17.271981624328493\n",
"(8, 12)\n",
"Emb -37.25532617951365\n",
"EmbO -17.255326179513663\n",
"(8, 13)\n",
"Emb -37.16706502537387\n",
"EmbO -17.16706502537385\n",
"(8, 14)\n",
"Emb -37.13544911135949\n",
"EmbO -17.135449111359634\n",
"(8, 15)\n",
"Emb -37.08114200796429\n",
"EmbO -17.081142007964427\n",
"(8, 16)\n",
"Emb -37.05875669684747\n",
"EmbO -17.05875669684759\n",
"(8, 17)\n",
"Emb -37.03295518511038\n",
"EmbO -17.032955185110453\n",
"(8, 18)\n",
"Emb -36.977066547895504\n",
"EmbO -16.97706654789554\n",
"(8, 19)\n",
"Emb -36.967615193469754\n",
"EmbO -16.96761519346973\n",
"(9, 10)\n",
"Emb -37.77736338997511\n",
"EmbO -17.777363389975022\n",
"(9, 11)\n",
"Emb -37.19736501602141\n",
"EmbO -17.197365016021422\n",
"(9, 12)\n",
"Emb -37.18070957120662\n",
"EmbO -17.18070957120659\n",
"(9, 13)\n",
"Emb -37.09244841706684\n",
"EmbO -17.09244841706678\n",
"(9, 14)\n",
"Emb -37.06083250305247\n",
"EmbO -17.060832503052563\n",
"(9, 15)\n",
"Emb -37.00652539965726\n",
"EmbO -17.006525399657356\n",
"(9, 16)\n",
"Emb -36.984140088540435\n",
"EmbO -16.98414008854052\n",
"(9, 17)\n",
"Emb -36.95833857680334\n",
"EmbO -16.958338576803385\n",
"(9, 18)\n",
"Emb -36.90244993958847\n",
"EmbO -16.902449939588468\n",
"(9, 19)\n",
"Emb -36.89299858516273\n",
"EmbO -16.89299858516266\n",
"(10, 11)\n",
"Emb -37.066812054920504\n",
"EmbO -17.06681205492047\n",
"(10, 12)\n",
"Emb -37.05015661010572\n",
"EmbO -17.05015661010564\n",
"(10, 13)\n",
"Emb -36.96189545596594\n",
"EmbO -16.961895455965823\n",
"(10, 14)\n",
"Emb -36.93027954195156\n",
"EmbO -16.930279541951606\n",
"(10, 15)\n",
"Emb -36.87597243855635\n",
"EmbO -16.875972438556403\n",
"(10, 16)\n",
"Emb -36.85358712743953\n",
"EmbO -16.853587127439564\n",
"(10, 17)\n",
"Emb -36.82778561570244\n",
"EmbO -16.82778561570243\n",
"(10, 18)\n",
"Emb -36.77189697848757\n",
"EmbO -16.77189697848751\n",
"(10, 19)\n",
"Emb -36.762445624061826\n",
"EmbO -16.762445624061705\n",
"(11, 12)\n",
"Emb -36.47015823615202\n",
"EmbO -16.470158236152038\n",
"(11, 13)\n",
"Emb -36.38189708201224\n",
"EmbO -16.381897082012223\n",
"(11, 14)\n",
"Emb -36.35028116799786\n",
"EmbO -16.350281167998006\n",
"(11, 15)\n",
"Emb -36.29597406460265\n",
"EmbO -16.295974064602802\n",
"(11, 16)\n",
"Emb -36.27358875348583\n",
"EmbO -16.273588753485964\n",
"(11, 17)\n",
"Emb -36.24778724174874\n",
"EmbO -16.24778724174883\n",
"(11, 18)\n",
"Emb -36.19189860453387\n",
"EmbO -16.19189860453391\n",
"(11, 19)\n",
"Emb -36.182447250108126\n",
"EmbO -16.182447250108105\n",
"(12, 13)\n",
"Emb -36.36524163719745\n",
"EmbO -16.365241637197393\n",
"(12, 14)\n",
"Emb -36.333625723183076\n",
"EmbO -16.333625723183175\n",
"(12, 15)\n",
"Emb -36.279318619787865\n",
"EmbO -16.279318619787972\n",
"(12, 16)\n",
"Emb -36.256933308671044\n",
"EmbO -16.256933308671133\n",
"(12, 17)\n",
"Emb -36.23113179693395\n",
"EmbO -16.231131796934\n",
"(12, 18)\n",
"Emb -36.17524315971908\n",
"EmbO -16.17524315971908\n",
"(12, 19)\n",
"Emb -36.16579180529334\n",
"EmbO -16.165791805293274\n",
"(13, 14)\n",
"Emb -36.24536456904329\n",
"EmbO -16.245364569043364\n",
"(13, 15)\n",
"Emb -36.191057465648086\n",
"EmbO -16.191057465648157\n",
"(13, 16)\n",
"Emb -36.168672154531265\n",
"EmbO -16.168672154531322\n",
"(13, 17)\n",
"Emb -36.14287064279418\n",
"EmbO -16.142870642794186\n",
"(13, 18)\n",
"Emb -36.0869820055793\n",
"EmbO -16.08698200557927\n",
"(13, 19)\n",
"Emb -36.07753065115355\n",
"EmbO -16.07753065115346\n",
"(14, 15)\n",
"Emb -36.159441551633705\n",
"EmbO -16.15944155163394\n",
"(14, 16)\n",
"Emb -36.137056240516884\n",
"EmbO -16.137056240517104\n",
"(14, 17)\n",
"Emb -36.1112547287798\n",
"EmbO -16.11125472877997\n",
"(14, 18)\n",
"Emb -36.05536609156492\n",
"EmbO -16.055366091565052\n",
"(14, 19)\n",
"Emb -36.04591473713918\n",
"EmbO -16.045914737139242\n",
"(15, 16)\n",
"Emb -36.08274913712168\n",
"EmbO -16.082749137121898\n",
"(15, 17)\n",
"Emb -36.056947625384595\n",
"EmbO -16.056947625384765\n",
"(15, 18)\n",
"Emb -36.00105898816972\n",
"EmbO -16.001058988169845\n",
"(15, 19)\n",
"Emb -35.99160763374397\n",
"EmbO -15.991607633744039\n",
"(16, 17)\n",
"Emb -36.034562314267774\n",
"EmbO -16.034562314267923\n",
"(16, 18)\n",
"Emb -35.978673677052896\n",
"EmbO -15.978673677053008\n",
"(16, 19)\n",
"Emb -35.96922232262715\n",
"EmbO -15.9692223226272\n",
"(17, 18)\n",
"Emb -35.95287216531581\n",
"EmbO -15.952872165315874\n",
"(17, 19)\n",
"Emb -35.94342081089006\n",
"EmbO -15.943420810890064\n",
"(18, 19)\n",
"Emb -35.88753217367518\n",
"EmbO -15.887532173675147\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import scipy.linalg as LA\n",
"import random\n",
"import itertools\n",
"import operator\n",
"import cmath\n",
"import math\n",
"from tqdm import tqdm\n",
"import matplotlib.pyplot as plt\n",
"\n",
"\n",
"def lat_to_num(lat,L,dim):\n",
"\n",
" dd=1\n",
" num=0\n",
" for l in lat:\n",
" num+=l*L**(dim-dd)\n",
" dd+=1\n",
" return num\n",
" \n",
"def num_to_lat(num,L,dim):\n",
"\n",
" n=num\n",
" lat=[]\n",
" for d in range(dim,0,-1):\n",
" if d==1:\n",
" lat.append(n%L)\n",
" else:\n",
" dn=(n//L**(d-1))\n",
" lat.append(dn)\n",
" n-=dn*L**(d-1)\n",
" return lat\n",
" \n",
"def dist(lat1,lat2,L):\n",
" period=True\n",
" l=0\n",
" for i in range(len(lat1)):\n",
" if period:\n",
" ll=lat1[i]-lat2[i]\n",
" if abs(ll)==L-1:\n",
" ll=1\n",
" else:\n",
" ll=lat1[i]-lat2[i]\n",
" l+=(ll)**2\n",
" \n",
" return l\n",
"\n",
"def nn(lat1,lat2,L):\n",
" if dist(lat1,lat2,L)==1:\n",
" return True\n",
" else:\n",
" return False\n",
"\n",
"def AM(W,dim,L):\n",
" val=[]\n",
" for num in range(L**dim):\n",
" val.append([0]*L**dim)\n",
" for num1 in range(L**dim):\n",
" for num2 in range(num1,L**dim):\n",
" if num1==num2:\n",
" val[num1][num1]=random.uniform(-W/2,W/2)\n",
" else:\n",
" lat1=num_to_lat(num1,L,dim)\n",
" lat2=num_to_lat(num2,L,dim)\n",
"# print(num1,num2,nn(lat1,lat2,L))\n",
" if nn(lat1,lat2,L):\n",
" val[num1][num2]=-1\n",
" val[num2][num1]=-1\n",
" return val\n",
"\n",
"def mixsort2(ea,av,eb,bv):\n",
" \n",
" emin=10**5\n",
" ia=0\n",
" ib=0\n",
" e=[]\n",
" vec=[]\n",
" for i in range(len(ea)+len(eb)):\n",
" if ia<len(ea):\n",
" if ea[ia]<eb[ib]:\n",
" e.append(ea[ia])\n",
" vec.append(av[ia])\n",
" ia+=1\n",
" else:\n",
" e.append(eb[ib])\n",
" vec.append(bv[ib])\n",
" ib+=1 \n",
" \n",
" np.array(vec)\n",
" return e,vec\n",
"\n",
"def mixsort1(ea,av):\n",
" \n",
" emin=10**5\n",
" e=ea\n",
" eo=[]\n",
" vo=[]\n",
" for i in range(len(ea)):\n",
" arg=np.argmin(e)\n",
" eo.append(ea[arg])\n",
" vo.append(av[arg])\n",
" e.pop(arg)\n",
" \n",
" np.array(vo)\n",
" return eo,vo\n",
"\n",
"def mixsort(ea,av,eb,bv,cv,dv):\n",
" \n",
" emin=10**5\n",
" ia=0\n",
" ib=0\n",
" e=[]\n",
" vec=[]\n",
" eo=[]\n",
" sign=[]\n",
" for i in range(len(ea)+len(eb)):\n",
" if ia<len(ea):\n",
" if ea[ia]<eb[ib]:\n",
" e.append(ea[ia])\n",
" vec.append(av[ia])\n",
" eo.append(cv[ia])\n",
" sign.append(+1)\n",
" ia+=1\n",
" else:\n",
" e.append(eb[ib])\n",
" vec.append(bv[ib])\n",
" eo.append(dv[ib])\n",
" sign.append(-1)\n",
" ib+=1 \n",
" \n",
" np.array(vec)\n",
" np.array(eo)\n",
" return e,vec,eo,sign\n",
"\n",
"def hermitian(arr):\n",
" arr=np.array(arr)\n",
" return np.conjugate(arr.T)\n",
"\n",
"def chain(l_2d):\n",
" \n",
" return list(itertools.chain.from_iterable(l_2d))\n",
" \n",
"dim=5\n",
"L=4\n",
"W=10.0\n",
"Ne=2\n",
"Nmax=20\n",
"U=10\n",
"\n",
"#Create AM\n",
"H0=AM(W,dim,L)\n",
"H0=np.array(H0)\n",
"\n",
"#Solve one body problem\n",
"l,v=LA.eigh(H0)\n",
" \n",
"#for n in range(len(v)):\n",
"# print(v.T@v)\n",
"\n",
"#iv=LA.inv(v)\n",
"#print(iv@a@v)\n",
"\n",
"#print('eigvec',v)\n",
"#print('eigval',l)\n",
"\n",
"#copy to spin-1/2\n",
"vup=[]\n",
"vdown=[]\n",
"for vec in v:\n",
" vup.append(vec)\n",
" vdown.append(vec)\n",
" \n",
"#degeneracy problem\n",
"Hsp=[]\n",
"for i in range(len(vup)):\n",
"# print(cc)\n",
" Uij=0\n",
" for j in range(len(vup[i])): \n",
" Uij+=vup[i][j]*U*vdown[i][j]\n",
" \n",
" Hsp.append([[0,Uij],[np.conjugate(Uij),0]])\n",
"Hsp=np.array(Hsp)\n",
"\n",
"#Solve the degeneracy\n",
"lspup=[]\n",
"vspup=[]\n",
"lspdown=[]\n",
"vspdown=[]\n",
"lsoup=[]\n",
"lsodown=[]\n",
"for i,h in enumerate(Hsp):\n",
"# print('h',h)\n",
" a,b=LA.eigh(h)\n",
" lspup.append(l[i]+a[0])\n",
" lsoup.append(l[i])\n",
" vspup.append(v[i]*(b[0][0]+b[0][1]))\n",
" lspdown.append(l[i]+a[1])\n",
" lsodown.append(l[i])\n",
" vspdown.append(v[i]*(b[1][0]+b[1][1]))\n",
"#print('Etest',Etest)\n",
"#print('lspup',lspup)\n",
"#print('lspdown',lspdown)\n",
"\n",
"#print('lspdown',lspdown)\n",
"#print('lspup',lspup)\n",
"\n",
"#Sort eigenvalue and eigenvectors\n",
"be,bv,bo,sign=mixsort(lspup,vspup,lspdown,vspdown,lsoup,lsodown)\n",
"\n",
"c=list(itertools.combinations(list(range(Nmax)),Ne))\n",
"print(len(c))\n",
"\n",
"#Create excited state basis\n",
"c=list(itertools.combinations(list(range(Nmax)),Ne))\n",
"mbv=[1]*len(c)\n",
"Emb=[0]*len(c)\n",
"EmbO=[0]*len(c)\n",
"spin=[[]]*len(c)\n",
"for i,cc in enumerate(c):\n",
" for j in cc:\n",
" mbv[i]*=bv[j]\n",
" Emb[i]+=be[j]\n",
" EmbO[i]+=bo[j]\n",
" spin[i].append(sign[j])\n",
" \n",
"for i,cc in enumerate(c):\n",
" print(cc)\n",
"# print('spin',spin[i])\n",
" print('Emb',Emb[i])\n",
" print('EmbO',EmbO[i])\n",
"\n",
"Emb.sort()\n",
" \n",
"dE=[]\n",
"for i in range(len(c)-1):\n",
" dE.append(Emb[i+1]-Emb[i])\n",
"\n",
"dE=len(dE)*dE/sum(dE) \n",
"\n",
"plt.figure()\n",
"plt.hist(dE,bins=20,density=True)\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"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.8.11"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment