2020-01-06 19:43:55 +01:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Test of F12 matrix elements"
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"heading_collapsed": true
},
2020-01-06 19:43:55 +01:00
"source": [
"## Initialization"
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 5,
2020-03-30 18:06:21 +02:00
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-30T10:15:59.908500Z",
"start_time": "2020-03-30T10:15:58.731Z"
},
"hidden": true,
"init_cell": true
},
"outputs": [
{
"data": {
"text/plain": [
"val png_image : string -> unit = <fun>\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 5,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- : unit = ()\n",
"Findlib has been successfully loaded. Additional directives:\n",
" #require \"package\";; to load a package\n",
" #list;; to list the available packages\n",
" #camlp4o;; to load camlp4 (standard syntax)\n",
" #camlp4r;; to load camlp4 (revised syntax)\n",
" #predicates \"p,q,...\";; to set these predicates\n",
" Topfind.reset();; to force that packages will be reloaded\n",
" #thread;; to enable threads\n",
"\n",
"- : unit = ()\n"
]
},
{
"data": {
"text/plain": [
"val png_image : string -> Jupyter_notebook.display_id = <fun>\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 5,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
}
],
2020-01-06 19:43:55 +01:00
"source": [
"let png_image = print_endline ;;\n",
"\n",
"(* --------- *)\n",
"\n",
"#cd \"/home/scemama/QCaml\";;\n",
"#use \"topfind\";;\n",
"#require \"jupyter.notebook\";;\n",
"\n",
"let png_image name = \n",
" Jupyter_notebook.display_file ~base64:true \"image/png\" (\"Notebooks/images/\"^name)\n",
";;\n",
"\n",
"#require \"lacaml.top\";;\n",
"#require \"alcotest\";;\n",
"#require \"str\";;\n",
"#require \"bigarray\";;\n",
"#require \"zarith\";;\n",
"#require \"getopt\";;\n",
"#directory \"_build\";;\n",
"#directory \"_build/Basis\";;\n",
"#directory \"_build/CI\";;\n",
"#directory \"_build/MOBasis\";;\n",
"#directory \"_build/Nuclei\";;\n",
"#directory \"_build/Parallel\";;\n",
"#directory \"_build/Perturbation\";;\n",
"#directory \"_build/SCF\";;\n",
"#directory \"_build/Utils\";;"
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"### Modules"
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 6,
2020-03-30 18:06:21 +02:00
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-30T10:16:00.033900Z",
"start_time": "2020-03-30T10:15:58.750Z"
},
"hidden": true,
"init_cell": true
},
2020-01-06 19:43:55 +01:00
"outputs": [],
"source": [
"#load \"Constants.cmo\";;\n",
"#load_rec \"Util.cma\";;\n",
"#load_rec \"Matrix.cmo\";;\n",
"#load_rec \"Simulation.cmo\";;\n",
"#load_rec \"Spindeterminant.cmo\";;\n",
"#load_rec \"Determinant.cmo\";;\n",
"#load_rec \"HartreeFock.cmo\";;\n",
"#load_rec \"MOBasis.cmo\";;\n",
"#load_rec \"F12CI.cmo\";;"
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"### Printers"
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 7,
2020-03-30 18:06:21 +02:00
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-30T10:16:00.095400Z",
"start_time": "2020-03-30T10:15:58.760Z"
},
"hidden": true,
"init_cell": true
},
"outputs": [
{
"data": {
"text/plain": [
"val pp_mo : Format.formatter -> MOBasis.t -> unit = <fun>\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 7,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
}
],
2020-01-06 19:43:55 +01:00
"source": [
"#install_printer AngularMomentum.pp_string ;;\n",
"#install_printer Basis.pp ;;\n",
"#install_printer Charge.pp ;;\n",
"#install_printer Coordinate.pp ;;\n",
"#install_printer Vector.pp;;\n",
"#install_printer Matrix.pp;;\n",
"#install_printer Util.pp_float_2darray;;\n",
"#install_printer Util.pp_float_array;;\n",
"#install_printer Util.pp_matrix;;\n",
"#install_printer HartreeFock.pp ;;\n",
"#install_printer Fock.pp ;;\n",
"#install_printer MOClass.pp ;;\n",
"let pp_mo ppf t = MOBasis.pp ~start:1 ~finish:0 ppf t ;;\n",
"#install_printer pp_mo;;\n",
"(*\n",
"#install_printer DeterminantSpace.pp;;\n",
"*)\n",
"#install_printer SpindeterminantSpace.pp;;\n",
"#install_printer Bitstring.pp;;\n",
"\n",
"(* --------- *)\n",
"\n",
"open Lacaml.D\n"
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"heading_collapsed": true
},
2020-01-06 19:43:55 +01:00
"source": [
"## Run"
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"### Simulation\n"
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 10,
2020-01-07 16:45:14 +01:00
"metadata": {
2020-03-30 18:06:21 +02:00
"ExecuteTime": {
"end_time": "2020-03-30T10:16:00.287500Z",
"start_time": "2020-03-30T10:15:58.769Z"
},
"hidden": true,
"init_cell": true,
2020-01-07 16:45:14 +01:00
"scrolled": false
},
2020-03-30 18:06:21 +02:00
"outputs": [
{
"data": {
"text/plain": [
"val basis_filename : string = \"/home/scemama/qp2/data/basis/6-31g\"\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 10,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val aux_basis_filename : string = \"/home/scemama/qp2/data/basis/cc-pvdz\"\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 10,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val nuclei : Nuclei.t = [|(Element.C, 0.0000 0.0000 0.0000)|]\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 10,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val frozen_core : bool = false\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 10,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val multiplicity : int = 1\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 10,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val state : int = 1\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val f12 : F12factor.t =\n",
" {F12factor.expo_s = 1.;\n",
" gaussian =\n",
" {GaussianOperator.coef_g =\n",
" [ -0.314400 -0.303700 -0.168100 -0.098110 -0.060240 -0.037260 ];\n",
" expo_g =\n",
" [ 0.220900 1.004000 3.622000 12.160000 45.870000 254.400000 ];\n",
" expo_g_inv =\n",
" [ 4.526935 0.996016 0.276091 0.082237 0.021801 0.003931 ]}}\n"
]
},
"execution_count": 10,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val basis : Basis.t =\n",
" \n",
" Atomic Basis set\n",
" ----------------\n",
"\n",
"-----------------------------------------------------------------------\n",
" # Angular Coordinates (Bohr) Exponents Coefficients\n",
" Momentum X Y Z\n",
"-----------------------------------------------------------------------\n",
" 1-3 S 0.0000 0.0000 0.0000 3.04752488e+03 1.83473713e-03\n",
" 4.57369518e+02 1.40373228e-02\n",
" 1.03948685e+02 6.88426223e-02\n",
" 2.92101553e+01 2.32184443e-01\n",
" 9.28666296e+00 4.67941348e-01\n",
" 3.16392696e+00 3.62311985e-01\n",
" \n",
" 7.86827235e+00 -1.19332420e-01\n",
" 1.88128854e+00 -1.60854152e-01\n",
" 5.44249258e-01 1.14345644e+00\n",
" \n",
" 1.68714478e-01 1.00000000e+00\n",
" \n",
" \n",
"-----------------------------------------------------------------------\n",
" 4-9 P 0.0000 0.0000 0.0000 7.86827235e+00 6.89990666e-02\n",
" 1.88128854e+00 3.16423961e-01\n",
" 5.44249258e-01 7.44308291e-01\n",
" \n",
" 1.68714478e-01 1.00000000e+00\n",
" \n",
" \n",
"-----------------------------------------------------------------------\n",
"\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 10,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val aux_basis : Basis.t =\n",
" \n",
" Atomic Basis set\n",
" ----------------\n",
"\n",
"-----------------------------------------------------------------------\n",
" # Angular Coordinates (Bohr) Exponents Coefficients\n",
" Momentum X Y Z\n",
"-----------------------------------------------------------------------\n",
" 1-6 S 0.0000 0.0000 0.0000 3.04752488e+03 1.83473713e-03\n",
" 4.57369518e+02 1.40373228e-02\n",
" 1.03948685e+02 6.88426223e-02\n",
" 2.92101553e+01 2.32184443e-01\n",
" 9.28666296e+00 4.67941348e-01\n",
" 3.16392696e+00 3.62311985e-01\n",
" \n",
" 7.86827235e+00 -1.19332420e-01\n",
" 1.88128854e+00 -1.60854152e-01\n",
" 5.44249258e-01 1.14345644e+00\n",
" \n",
" 1.68714478e-01 1.00000000e+00\n",
" \n",
" 6.66500000e+03 6.92000000e-04\n",
" 1.00000000e+03 5.32900000e-03\n",
" 2.28000000e+02 2.70770000e-02\n",
" 6.47100000e+01 1.01718000e-01\n",
" 2.10600000e+01 2.74740000e-01\n",
" 7.49500000e+00 4.48564000e-01\n",
" 2.79700000e+00 2.85074000e-01\n",
" 5.21500000e-01 1.52040000e-02\n",
" 1.59600000e-01 -3.19100000e-03\n",
" \n",
" 6.66500000e+03 -1.46000000e-04\n",
" 1.00000000e+03 -1.15400000e-03\n",
" 2.28000000e+02 -5.72500000e-03\n",
" 6.47100000e+01 -2.33120000e-02\n",
" 2.10600000e+01 -6.39550000e-02\n",
" 7.49500000e+00 -1.49981000e-01\n",
" 2.79700000e+00 -1.27262000e-01\n",
" 5.21500000e-01 5.44529000e-01\n",
" 1.59600000e-01 5.80496000e-01\n",
" \n",
" 1.59600000e-01 1.00000000e+00\n",
" \n",
" \n",
"-----------------------------------------------------------------------\n",
" 4-15 P 0.0000 0.0000 0.0000 7.86827235e+00 6.89990666e-02\n",
" 1.88128854e+00 3.16423961e-01\n",
" 5.44249258e-01 7.44308291e-01\n",
" \n",
" 1.68714478e-01 1.00000000e+00\n",
" \n",
" 9.43900000e+00 3.81090000e-02\n",
" 2.00200000e+00 2.09480000e-01\n",
" 5.45600000e-01 5.08557000e-01\n",
" 1.51700000e-01 4.68842000e-01\n",
" \n",
" 1.51700000e-01 1.00000000e+00\n",
" \n",
" \n",
"-----------------------------------------------------------------------\n",
" 19-24 D 0.0000 0.0000 0.0000 5.50000000e-01 1.00000000e+00\n",
" \n",
" \n",
"-----------------------------------------------------------------------\n",
"\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 10,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val charge : int = 0\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 10,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val simulation : Simulation.t = <abstr>\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 10,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
}
],
2020-01-06 19:43:55 +01:00
"source": [
"let basis_filename = \"/home/scemama/qp2/data/basis/6-31g\" \n",
"let aux_basis_filename = \"/home/scemama/qp2/data/basis/cc-pvdz\" \n",
"let nuclei = Nuclei.of_zmt_string \"c\" \n",
"let frozen_core = false\n",
"let multiplicity = 1\n",
"let state = 1\n",
"\n",
"let f12 = F12factor.gaussian_geminal 1.0 \n",
2020-05-19 22:41:25 +02:00
"let basis = Basis.of_nuclei_and_basis_filenames ~f12 ~nuclei [basis_filename] \n",
"let aux_basis = Basis.of_nuclei_and_basis_filenames ~nuclei (basis_filename :: aux_basis_filename :: []) \n",
2020-01-06 19:43:55 +01:00
"let charge = 0 \n",
"\n",
"\n",
"let simulation =\n",
" Simulation.make \n",
2020-05-19 22:41:25 +02:00
" ~charge ~multiplicity ~nuclei\n",
2020-01-06 19:43:55 +01:00
" ~cartesian:true\n",
" basis\n"
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 11,
2020-03-30 18:06:21 +02:00
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-30T10:16:00.298200Z",
"start_time": "2020-03-30T10:15:58.778Z"
},
"hidden": true,
"init_cell": true
},
"outputs": [
{
"data": {
"text/plain": [
"val n_elec_alfa : int = 3\n",
"val n_elec_beta : int = 3\n",
"val n_elec : int = 6\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 11,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
}
],
2020-01-06 19:43:55 +01:00
"source": [
"let n_elec_alfa, n_elec_beta, n_elec = \n",
" let e = Simulation.electrons simulation in\n",
" Electrons.(n_alfa e, n_beta e, n_elec e)"
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"### Hartree-Fock"
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 12,
2020-03-30 18:06:21 +02:00
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-30T10:16:00.474000Z",
"start_time": "2020-03-30T10:15:58.786Z"
},
"hidden": true,
"init_cell": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2020-05-19 22:41:25 +02:00
"15 significant shell pairs computed in 0.030632 seconds\n",
2020-03-30 18:06:21 +02:00
"1\n",
"2\n",
"3\n",
"6\n",
2020-05-19 22:41:25 +02:00
"Computed ERIs in 0.141639 seconds\n",
2020-03-30 18:06:21 +02:00
"MOs =\n",
"\n",
"\n",
2020-05-19 22:41:25 +02:00
" -- 1 -- -- 2 -- -- 3 -- -- 4 -- -- 5 --\n",
" 1 0.995189 -0.236456 -0 -0 0\n",
" 2 0.0272807 0.573253 -0 -0 0\n",
" 3 -0.00753288 0.50151 -0 -6.64951E-16 0\n",
" ... ... ... ... ...\n",
" 7 -0 -0 -0.0346136 -0.103467 0.874392\n",
" 8 -0 6.53154E-16 0.374215 -0.0232294 0.0788015\n",
" 9 -0 7.4731E-16 0.00656013 0.779165 0.118461\n",
2020-03-30 18:06:21 +02:00
" \n",
"\n",
2020-05-19 22:41:25 +02:00
" -- 6 -- -- 7 -- -- 8 -- -- 9 --\n",
" 1 0 0.0649867 -0 -0\n",
" 2 -1.35345E-15 -1.62901 -0 -0\n",
" 3 7.04525E-16 1.63955 -0 -0\n",
" ... ... ... ...\n",
" 7 -0.106576 -0 0.122185 -0.823344\n",
" 8 1.15222 -0 0.0274317 -0.074201\n",
" 9 0.0201988 -0 -0.920122 -0.111546\n",
2020-03-30 18:06:21 +02:00
" \n"
]
},
{
"data": {
"text/plain": [
"val hf : HartreeFock.t = \n",
"======================================================================\n",
" Restricted Hartree-Fock \n",
"======================================================================\n",
"\n",
" ------------------------------------------------------------\n",
" # HF energy Convergence HOMO-LUMO\n",
" ------------------------------------------------------------\n",
" 1 -36.54848150 7.4861e-01 0.2723\n",
" ------------------------------------------------------------\n",
"\n",
"\n",
" ============================================================\n",
" One-electron energy -52.6699343629\n",
" Kinetic 42.4526846308\n",
" Potential -95.1226189937\n",
" -------------------------------------------------------- \n",
" Two-electron energy 16.1214528647\n",
" Coulomb 21.8535626014\n",
" Exchange -5.7321097367\n",
" -------------------------------------------------------- \n",
" HF HOMO 0.8237527941\n",
" HF LUMO 8.2337246898\n",
" HF LUMO-LUMO 7.4099718957\n",
" -------------------------------------------------------- \n",
" Electronic energy -36.5484814981\n",
" Nuclear repulsion 0.0000000000\n",
" Hartree-Fock energy -36.5484814981\n",
" ============================================================\n",
" \n",
"\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 12,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val mo_basis : MOBasis.t =\n",
" Eigenvalues: -11.127416 -0.632049 -0.269831 0.131526 0.151773 \n",
2020-05-19 22:41:25 +02:00
" -- 1 -- -- 2 -- -- 3 -- -- 4 -- -- 5 --\n",
" 1 0.995189 -0.236456 -0 -0 0\n",
" 2 0.0272807 0.573253 -0 -0 0\n",
" 3 -0.00753288 0.50151 -0 -6.64951E-16 0\n",
" ... ... ... ... ...\n",
" 7 -0 -0 -0.0346136 -0.103467 0.874392\n",
" 8 -0 6.53154E-16 0.374215 -0.0232294 0.0788015\n",
" 9 -0 7.4731E-16 0.00656013 0.779165 0.118461\n",
2020-03-30 18:06:21 +02:00
" \n",
" Eigenvalues: 0.786913 0.828232 0.869410 0.849164 \n",
2020-05-19 22:41:25 +02:00
" -- 6 -- -- 7 -- -- 8 -- -- 9 --\n",
" 1 0 0.0649867 -0 -0\n",
" 2 -1.35345E-15 -1.62901 -0 -0\n",
" 3 7.04525E-16 1.63955 -0 -0\n",
" ... ... ... ...\n",
" 7 -0.106576 -0 0.122185 -0.823344\n",
" 8 1.15222 -0 0.0274317 -0.074201\n",
" 9 0.0201988 -0 -0.920122 -0.111546\n",
2020-03-30 18:06:21 +02:00
" \n",
" \n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 12,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
}
],
2020-01-06 19:43:55 +01:00
"source": [
"let hf = HartreeFock.make ~guess:`Hcore ~max_scf:1 simulation ;;\n",
"\n",
"let mo_basis = MOBasis.of_hartree_fock hf"
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"heading_collapsed": true
},
2020-01-06 19:43:55 +01:00
"source": [
"# FCI-F12"
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"## Common functions"
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 13,
2020-03-30 18:06:21 +02:00
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-30T10:16:00.507100Z",
"start_time": "2020-03-30T10:15:58.791Z"
},
"hidden": true,
"init_cell": true
},
"outputs": [
{
"data": {
"text/plain": [
"val f12 : F12factor.t =\n",
" {F12factor.expo_s = 1.;\n",
" gaussian =\n",
" {GaussianOperator.coef_g =\n",
" [ -0.314400 -0.303700 -0.168100 -0.098110 -0.060240 -0.037260 ];\n",
" expo_g =\n",
" [ 0.220900 1.004000 3.622000 12.160000 45.870000 254.400000 ];\n",
" expo_g_inv =\n",
" [ 4.526935 0.996016 0.276091 0.082237 0.021801 0.003931 ]}}\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 13,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val mo_num : int = 9\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 13,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val pp_spindet : Format.formatter -> Spindeterminant.t -> unit = <fun>\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 13,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val pp_det : Format.formatter -> Determinant.t -> unit = <fun>\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 13,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
}
],
2020-01-06 19:43:55 +01:00
"source": [
"let f12 = Util.of_some @@ Simulation.f12 simulation \n",
"\n",
"let mo_num = MOBasis.size mo_basis \n",
"\n",
"let pp_spindet = Spindeterminant.pp mo_num\n",
"\n",
"let pp_det = Determinant.pp mo_num\n",
"\n",
";;\n",
"\n",
"#install_printer pp_spindet ;;\n",
"#install_printer pp_det ;;\n",
"\n"
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 17,
2020-03-30 18:06:21 +02:00
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-30T10:16:03.181400Z",
"start_time": "2020-03-30T10:15:58.799Z"
},
"hidden": true,
"init_cell": true
},
"outputs": [
{
"data": {
"text/plain": [
"val simulation_aux : Simulation.t = <abstr>\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 17,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
2020-05-19 22:41:25 +02:00
"66 significant shell pairs computed in 0.170052 seconds\n",
2020-03-30 18:06:21 +02:00
"1\n",
"2\n",
"3\n",
"6\n",
"9\n",
"10\n",
"11\n",
"12\n",
"15\n",
"18\n",
2020-05-19 22:41:25 +02:00
"Computed ERIs in 3.375684 seconds\n"
2020-03-30 18:06:21 +02:00
]
},
{
"data": {
"text/plain": [
"val aux_basis : MOBasis.t =\n",
" Eigenvalues: -11.127416 -0.632049 -0.269831 0.131526 0.151773 \n",
2020-05-19 22:41:25 +02:00
" -- 1 -- -- 2 -- -- 3 -- -- 4 -- -- 5 --\n",
" 1 0.995189 -0.236456 -6.99905E-13 3.74871E-12 -1.80137E-11\n",
" 2 0.0272807 0.573253 1.6881E-12 1.54414E-12 2.46497E-12\n",
" 3 -0.00753288 0.50151 2.32851E-13 4.16589E-13 1.21024E-12\n",
" ... ... ... ... ...\n",
" 22 0 0 -0 0 0\n",
" 23 0 0 -0 0 0\n",
" 24 0 0 -0 0 0\n",
2020-03-30 18:06:21 +02:00
" \n",
2020-05-19 22:41:25 +02:00
" Eigenvalues: 0.786913 0.828232 0.869410 0.849164 1.480837 \n",
" -- 6 -- -- 7 -- -- 8 -- -- 9 -- -- 10 --\n",
" 1 2.65719E-12 0.0649867 3.37785E-12 1.73781E-11 0\n",
" 2 2.11976E-13 -1.62901 3.37812E-13 3.5811E-12 0\n",
" 3 -1.352E-13 1.63955 -1.27564E-13 -8.81657E-13 0\n",
" ... ... ... ... ...\n",
" 22 0 0 0 0 -0.866025\n",
" 23 0 0 0 0 0\n",
" 24 0 0 0 0 0\n",
2020-03-30 18:06:21 +02:00
" \n",
2020-05-19 22:41:25 +02:00
" Eigenvalues: 1.033846 1.027840 1.023514 1.247024 25.958539 \n",
" -- 11 -- -- 12 -- -- 13 -- -- 14 -- -- 15 --\n",
" 1 -3.09588E-10 2.21922E-10 -9.52402E-10 3.79632 -6.98298E-09\n",
" 2 1.67373E-10 1.08424E-10 1.58507E-10 -10.5897 1.20079E-09\n",
" 3 3.96217E-11 1.2302E-11 6.11965E-11 53.7881 5.40421E-10\n",
" ... ... ... ... ...\n",
" 22 -0 0 0 -0 -0\n",
" 23 1.4274E-14 0 0 -0 2.39877E-13\n",
" 24 -1.04644E-14 -1.17777E-14 0 -0 -0\n",
2020-03-30 18:06:21 +02:00
" \n",
2020-05-19 22:41:25 +02:00
" Eigenvalues: 25.891758 25.895674 18.767112 377.619959 1.478100 \n",
2020-03-30 18:06:21 +02:00
" -- 16 -- -- 17 -- -- 18 -- -- 19 -- -- 20 --\n",
2020-05-19 22:41:25 +02:00
" 1 9.02237E-09 -1.52394E-08 27.2935 436.547 1.14358E-12\n",
" 2 1.49437E-09 4.31003E-09 -127.494 -10.9671 -4.3086E-14\n",
" 3 -2.24755E-10 1.44203E-09 -21.2025 -23.8199 -6.40841E-14\n",
2020-03-30 18:06:21 +02:00
" ... ... ... ... ...\n",
2020-05-19 22:41:25 +02:00
" 22 1.08099E-13 1.08791E-13 -0 0 -0.210667\n",
" 23 1.28809E-13 0 -0 0 0.86485\n",
" 24 -2.16198E-13 -2.17582E-13 -0 0 0.421334\n",
2020-03-30 18:06:21 +02:00
" \n",
2020-05-19 22:41:25 +02:00
" Eigenvalues: 1.480427 1.470884 1.461621 \n",
2020-03-30 18:06:21 +02:00
" -- 21 -- -- 22 -- -- 23 --\n",
2020-05-19 22:41:25 +02:00
" 1 -7.95748E-13 1.61942E-12 5.76543E-10\n",
" 2 2.98909E-14 -6.0852E-14 -2.17012E-11\n",
" 3 4.43594E-14 -9.03033E-14 -3.22277E-11\n",
2020-03-30 18:06:21 +02:00
" ... ... ...\n",
2020-05-19 22:41:25 +02:00
" 22 -0.188927 0.412218 -0.00158824\n",
" 23 0.10621 0.490651 -0.00399134\n",
" 24 0.377853 -0.824436 0.00317648\n",
2020-03-30 18:06:21 +02:00
" \n",
" \n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 17,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val aux_num : int = 23\n"
]
},
2020-05-19 22:41:25 +02:00
"execution_count": 17,
2020-03-30 18:06:21 +02:00
"metadata": {},
"output_type": "execute_result"
}
],
2020-01-06 19:43:55 +01:00
"source": [
"let simulation_aux = \n",
" let charge = Charge.to_int @@ Simulation.charge simulation \n",
" and multiplicity = Electrons.multiplicity @@ Simulation.electrons simulation\n",
" and nuclei = Simulation.nuclei simulation\n",
" in\n",
" let general_basis = \n",
" Basis.general_basis @@ Simulation.basis simulation\n",
" in\n",
" GeneralBasis.combine [\n",
" general_basis ; GeneralBasis.read aux_basis_filename\n",
" ]\n",
2020-05-19 22:41:25 +02:00
" |> Basis.of_nuclei_and_general_basis ~f12 nuclei\n",
" |> Simulation.make ~charge ~multiplicity ~nuclei \n",
2020-01-06 19:43:55 +01:00
"\n",
"\n",
"let aux_basis = \n",
" MOBasis.of_mo_basis simulation_aux mo_basis\n",
"\n",
"let aux_num = \n",
" MOBasis.size aux_basis\n"
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 18,
2020-03-30 18:06:21 +02:00
"metadata": {
"ExecuteTime": {
"end_time": "2020-03-30T10:16:41.349200Z",
"start_time": "2020-03-30T10:15:58.806Z"
},
"hidden": true,
"init_cell": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2020-05-19 22:41:25 +02:00
"66 significant shell pairs computed in 2.944168 seconds\n",
2020-03-30 18:06:21 +02:00
"1\n",
"2\n",
"3\n",
"6\n",
"9\n",
"10\n",
"11\n",
"12\n",
"15\n",
"18\n",
2020-05-19 22:41:25 +02:00
"Computed ERIs in 47.577040 seconds\n"
2020-03-30 18:06:21 +02:00
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"4-idx transformation \n",
"23 / 23\n",
"4-idx transformation \n",
"23 / 23\n"
]
}
],
2020-01-06 19:43:55 +01:00
"source": [
"let () = ignore @@ MOBasis.f12_ints aux_basis\n",
"let () = ignore @@ MOBasis.two_e_ints aux_basis"
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"## Integral-based functions"
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"\\begin{equation}\n",
"\\langle I | \\hat{H} | J \\rangle = \\begin{cases}\n",
"\\sum_i h_{ii} + \\frac{1}{2} \\sum_{ij} \\langle ij || ij \\rangle \\text{ when } |J\\rangle = |I\\rangle \\\\\n",
"h_{ik} + \\sum_{j} \\langle ij || kj \\rangle \\text{ when } |J\\rangle = \\hat{T}_i^k |I\\rangle \\\\\n",
"\\langle ij || kl \\rangle \\text{ when } |J\\rangle = \\hat{T}_{ij}^{kl} |I\\rangle \\\\\n",
"\\end{cases}\n",
"\\end{equation}\n",
"\n",
"\n",
"\\begin{equation}\n",
"\\langle I | \\hat{F} | J \\rangle = \\begin{cases}\n",
"\\sum_i f_{ii} + \\frac{1}{2} \\sum_{ij} \\langle ij || ij \\rangle \\text{ when } |J\\rangle = |I\\rangle \\\\\n",
"f_{ik} + \\sum_{j} \\langle ij || kj \\rangle \\text{ when } |J\\rangle = \\hat{T}_i^k |I\\rangle \\\\\n",
"\\langle ij || kl \\rangle \\text{ when } |J\\rangle = \\hat{T}_{ij}^{kl} |I\\rangle \\\\\n",
"\\end{cases}\n",
"\\end{equation}"
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 19,
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-05-19 22:41:25 +02:00
"outputs": [
{
"data": {
"text/plain": [
"val cancel_singles : bool = false\n"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val mos_cabs : int list =\n",
" [10; 11; 12; 13; 14; 15; 16; 17; 18; 19; 20; 21; 22; 23]\n"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val mos_abs : int list =\n",
" [1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; 20; 21;\n",
" 22; 23]\n"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val mos_in : int list = [1; 2; 3; 4; 5; 6; 7; 8; 9]\n"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val mos_a : Determinant.t -> int list = <fun>\n"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val mos_b : Determinant.t -> int list = <fun>\n"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
2020-01-06 19:43:55 +01:00
"source": [
"let cancel_singles = false \n",
"\n",
"let mos_cabs = \n",
" Util.list_range (mo_num+1) aux_num\n",
" \n",
"let mos_abs = \n",
" Util.list_range 1 aux_num\n",
" \n",
"let mos_in = \n",
" Util.list_range 1 mo_num\n",
"\n",
"let mos_a k =\n",
" Determinant.alfa k\n",
" |> Spindeterminant.to_list\n",
" \n",
"let mos_b k =\n",
" Determinant.beta k\n",
" |> Spindeterminant.to_list\n",
" "
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"### H integrals"
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 20,
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-05-19 22:41:25 +02:00
"outputs": [
{
"data": {
"text/plain": [
"val h_one : int -> int -> '_weak1 -> float = <fun>\n"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val h_two : int -> int -> int -> int -> Spin.t -> Spin.t -> float = <fun>\n"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
2020-01-06 19:43:55 +01:00
"source": [
"let h_one =\n",
" let h = \n",
" MOBasis.one_e_ints aux_basis\n",
" in fun i j _ -> h.{i,j}\n",
" \n",
"let h_two = \n",
" let two_e_ints = MOBasis.two_e_ints aux_basis in\n",
" let h2 i j k l (s:Spin.t) (s':Spin.t) =\n",
" if s' <> s then\n",
" ERI.get_phys two_e_ints i j k l\n",
" else\n",
" (ERI.get_phys two_e_ints i j k l) -. \n",
" (ERI.get_phys two_e_ints i j l k)\n",
" in\n",
" h2\n",
"\n",
" \n",
" "
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"### F12 integrals"
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 21,
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-05-19 22:41:25 +02:00
"outputs": [
{
"data": {
"text/plain": [
"val f_two : int -> int -> int -> int -> Spin.t -> Spin.t -> float = <fun>\n"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val f_one : 'a -> 'b -> 'c -> float = <fun>\n"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
2020-01-06 19:43:55 +01:00
"source": [
"let f_two = \n",
" let two_e_ints = MOBasis.f12_ints aux_basis in\n",
" let f2 i j k l (s:Spin.t) (s':Spin.t) =\n",
" if s' <> s then\n",
" 0.5 *. F12.get_phys two_e_ints i j k l\n",
" else\n",
" 0.5 *. (\n",
" (F12.get_phys two_e_ints i j k l) -. \n",
" (F12.get_phys two_e_ints i j l k) )\n",
" in\n",
" let f3 i j k l (s:Spin.t) (s':Spin.t) = \n",
" if (i=k && j<>l) || (j=l && i<>k) then\n",
" 0.\n",
" else\n",
" f2 i j k l s s'\n",
" in\n",
" if cancel_singles then f3 else f2\n",
"\n",
"let f_one = fun _ _ _ -> 0.\n",
"\n",
"(*\n",
"let f_two = h_two\n",
"\n",
"let f_one = h_one\n",
2020-01-07 16:45:14 +01:00
"*)\n"
2020-01-06 19:43:55 +01:00
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"## Determinant-based functions"
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"### Integrals"
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 22,
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-05-19 22:41:25 +02:00
"outputs": [
{
"data": {
"text/plain": [
"val f12_integrals :\n",
" 'a ->\n",
" ('b -> 'c -> 'd -> float) *\n",
" (int -> int -> int -> int -> Spin.t -> Spin.t -> float) * 'e option = <fun>\n"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val h_ij : MOBasis.t -> CIMatrixElement.De.t -> CIMatrixElement.De.t -> float =\n",
" <fun>\n"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val f_ij : 'a -> CIMatrixElement.De.t -> CIMatrixElement.De.t -> float =\n",
" <fun>\n"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val hf_ij :\n",
" MOBasis.t -> CIMatrixElement.De.t -> CIMatrixElement.De.t -> float list =\n",
" <fun>\n"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
2020-01-06 19:43:55 +01:00
"source": [
"let f12_integrals mo_basis =\n",
" ( f_one, f_two, None )\n",
"\n",
"let h_ij mo_basis ki kj =\n",
" let integrals =\n",
" List.map (fun f -> f mo_basis)\n",
" [ CI.h_integrals ]\n",
" in\n",
" CIMatrixElement.make integrals ki kj \n",
" |> List.hd\n",
"\n",
"\n",
"let f_ij mo_basis ki kj =\n",
" let integrals =\n",
" List.map (fun f -> f mo_basis)\n",
" [ f12_integrals ]\n",
" in\n",
" CIMatrixElement.make integrals ki kj \n",
" |> List.hd \n",
"\n",
"\n",
"let hf_ij mo_basis ki kj =\n",
" let integrals =\n",
" List.map (fun f -> f mo_basis)\n",
" [ CI.h_integrals ; f12_integrals ]\n",
" in\n",
" CIMatrixElement.make integrals ki kj\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"### Determinant space"
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 23,
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-05-19 22:41:25 +02:00
"outputs": [
{
"data": {
"text/plain": [
"val is_a_double : DeterminantSpace.t -> Determinant.t -> bool = <fun>\n"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
2020-01-06 19:43:55 +01:00
"source": [
"let is_a_double det_space =\n",
" let mo_class = DeterminantSpace.mo_class det_space in\n",
" let mo_num = Array.length @@ MOClass.mo_class_array mo_class in\n",
" let m l =\n",
" List.fold_left (fun accu i ->\n",
" let j = i-1 in Bitstring.logor accu (Bitstring.shift_left_one mo_num j)\n",
" ) (Bitstring.zero mo_num) l\n",
" in\n",
" let aux_mask = m (MOClass.auxiliary_mos mo_class) in\n",
" fun k -> \n",
" let alfa =\n",
" Determinant.alfa k\n",
" |> Spindeterminant.bitstring\n",
" in\n",
" let beta =\n",
" Determinant.beta k\n",
" |> Spindeterminant.bitstring\n",
" in\n",
" let a = Bitstring.logand aux_mask alfa\n",
" and b = Bitstring.logand aux_mask beta\n",
" in\n",
" match Bitstring.popcount a + Bitstring.popcount b with\n",
" | 2 | 1 -> true\n",
" | 0 | _ -> false\n",
"\n"
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 24,
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-05-19 22:41:25 +02:00
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of determinants : 84 84 7056\n"
]
},
{
"data": {
"text/plain": [
"val in_space : DeterminantSpace.t = <abstr>\n"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of determinants : 1771 1771 3136441\n"
]
},
{
"data": {
"text/plain": [
"val aux_space : DeterminantSpace.t = <abstr>\n"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val det_space_in : unit -> Determinant.t Stream.t = <fun>\n"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val det_space_out : unit -> (Determinant.t * Determinant.t) Stream.t = <fun>\n"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
2020-01-06 19:43:55 +01:00
"source": [
"let in_space = \n",
" DeterminantSpace.fci_f12_of_mo_basis aux_basis ~frozen_core mo_num\n",
" \n",
"let aux_space = \n",
" DeterminantSpace.fci_of_mo_basis aux_basis ~frozen_core \n",
"\n",
"let det_space_in () =\n",
" DeterminantSpace.determinant_stream in_space\n",
"\n",
"let det_space_out () =\n",
" let s = \n",
" DeterminantSpace.determinant_stream aux_space\n",
" in\n",
" Stream.from (fun _ ->\n",
" try\n",
" let is_a_double = is_a_double in_space in\n",
" let rec result () =\n",
" let ki = Stream.next s in\n",
" if is_a_double ki then\n",
" Some (ki,ki)\n",
" else\n",
" result ()\n",
" in\n",
" result ()\n",
" with Stream.Failure -> None\n",
" )\n",
" "
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 25,
2020-01-06 19:43:55 +01:00
"metadata": {
2020-03-30 18:06:21 +02:00
"hidden": true,
2020-01-06 19:43:55 +01:00
"scrolled": false
},
2020-05-19 22:41:25 +02:00
"outputs": [
{
"data": {
"text/plain": [
"val ci : CI.t =\n",
" {CI.e_shift = -37.5503734698766749; det_space = <abstr>; m_H = <lazy>;\n",
" m_S2 = <lazy>; eigensystem = <lazy>; n_states = 1}\n"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" 1 0.0000000000 4.27876562e-01\n",
" 2 -0.0892428622 1.30475694e-01\n",
" 3 -0.0992140908 8.74622552e-02\n",
" 4 -0.1022422166 2.82063810e-02\n",
" 5 -0.1043598897 3.75067379e-02\n",
" 6 -0.1065557159 4.71900677e-02\n",
" 7 -0.1080257508 1.17050850e-02\n",
" 8 -0.1082438353 4.19578665e-03\n",
" 0 -0.1082636845 1.74312819e-03\n",
" 1 -0.1082673418 7.12907013e-04\n",
" 2 -0.1082677387 3.29773623e-04\n",
" 3 -0.1082678068 1.62017164e-04\n",
" 4 -0.1082678363 1.97376384e-04\n",
" 5 -0.1082678767 1.65667212e-04\n",
" 6 -0.1082678966 1.24231166e-04\n",
" 7 -0.1082679014 1.06697750e-05\n",
" 8 -0.1082679016 5.05286931e-06\n",
" 0 -0.1082679016 2.52890819e-06\n"
]
},
{
"data": {
"text/plain": [
"val ci_coef : Lacaml.D.Mat.t =\n",
" \n",
"\n",
" -- 1 --\n",
" 1 -0.780949\n",
" 2 -0\n",
" 3 -0\n",
" ...\n",
" 7054 -0\n",
" 7055 -0\n",
" 7056 -3.12865E-06\n",
" \n",
"val ci_energy : Lacaml.D.Vec.t =\n",
" R1 R2 R3\n",
" -37.6586 -36.7238 -36.2286\n"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" 1 -0.1082679016 4.37907116e-07\n",
"\n"
]
},
{
"data": {
"text/plain": [
"- : unit = ()\n"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"let ci = CI.make ~n_states:state in_space\n",
"\n",
"let ci_coef, ci_energy = Lazy.force ci.eigensystem \n",
"\n",
"let _ = print_newline () \n"
]
},
{
"cell_type": "markdown",
"metadata": {
2020-03-30 18:06:21 +02:00
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"Permutation operator $p_{12}$ that generates a new determinant with electrons 1 and 2 swapped."
]
},
{
"cell_type": "raw",
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"let p12 det_space =\n",
" let mo_class = DeterminantSpace.mo_class det_space in\n",
" let mo_num = Array.length @@ MOClass.mo_class_array mo_class in\n",
" let m l =\n",
" List.fold_left (fun accu i ->\n",
" let j = i-1 in Bitstring.logor accu (Bitstring.shift_left_one mo_num j)\n",
" ) (Bitstring.zero mo_num) l\n",
" in\n",
" let aux_mask = m (MOClass.auxiliary_mos mo_class) in\n",
" let not_aux_mask =\n",
" Bitstring.(shift_left_one mo_num (mo_num-1) |> minus_one |> logxor aux_mask)\n",
" in\n",
" fun k ->\n",
" let alfa =\n",
" Determinant.alfa k\n",
" |> Spindeterminant.bitstring\n",
" in\n",
" let beta =\n",
" Determinant.beta k\n",
" |> Spindeterminant.bitstring\n",
" in\n",
" let a = Bitstring.logand aux_mask alfa\n",
" and b = Bitstring.logand aux_mask beta\n",
" in\n",
" match Bitstring.popcount a, Bitstring.popcount b with\n",
" | 2, 0 \n",
" | 0, 2 -> Some (Determinant.negate_phase k)\n",
" | 1, 1 -> Some (Determinant.of_spindeterminants\n",
" (Spindeterminant.of_bitstring @@\n",
" Bitstring.(logor b (logand not_aux_mask alfa)) )\n",
" (Spindeterminant.of_bitstring @@\n",
" Bitstring.(logor a (logand not_aux_mask beta))\n",
" ) )\n",
" | 1, 0 \n",
" | 0, 1 -> Some k\n",
" | _ -> None\n",
" \n",
" \n"
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"## Matrices $\\langle I | H | \\alpha \\rangle$ and $\\langle I | F | \\alpha \\rangle$ "
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 26,
2020-01-06 19:43:55 +01:00
"metadata": {
2020-03-30 18:06:21 +02:00
"hidden": true,
2020-01-06 19:43:55 +01:00
"scrolled": true
},
2020-05-19 22:41:25 +02:00
"outputs": [
{
"data": {
"text/plain": [
"val randomize : bool = false\n"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val out_list : (Determinant.t * Determinant.t) list =\n",
" [(phase:+1\n",
" a:+1 ++-------+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ++-------+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +-+------+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +-+------+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -++------+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -++------+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +--+-----+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +--+-----+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+-+-----+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+-+-----+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --++-----+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --++-----+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +---+----+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +---+----+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+--+----+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+--+----+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --+-+----+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --+-+----+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ---++----+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ---++----+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +----+---+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +----+---+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+---+---+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+---+---+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --+--+---+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --+--+---+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ---+-+---+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ---+-+---+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ----++---+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ----++---+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +-----+--+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +-----+--+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+----+--+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+----+--+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --+---+--+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --+---+--+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ---+--+--+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ---+--+--+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ----+-+--+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ----+-+--+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -----++--+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -----++--+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +------+-+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +------+-+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+-----+-+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+-----+-+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --+----+-+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --+----+-+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ---+---+-+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ---+---+-+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ----+--+-+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ----+--+-+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -----+-+-+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -----+-+-+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ------++-+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ------++-+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +-------++------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +-------++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+------++------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+------++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --+-----++------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --+-----++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ---+----++------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ---+----++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ----+---++------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ----+---++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -----+--++------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -----+--++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ------+-++------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ------+-++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -------+++------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -------+++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ++--------+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ++--------+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +-+-------+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +-+-------+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -++-------+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -++-------+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +--+------+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +--+------+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+-+------+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+-+------+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --++------+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --++------+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +---+-----+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +---+-----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+--+-----+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+--+-----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --+-+-----+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --+-+-----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ---++-----+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ---++-----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +----+----+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +----+----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+---+----+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+---+----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --+--+----+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --+--+----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ---+-+----+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ---+-+----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ----++----+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ----++----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +-----+---+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +-----+---+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+----+---+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+----+---+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --+---+---+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --+---+---+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ---+--+---+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ---+--+---+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ----+-+---+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ----+-+---+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -----++---+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -----++---+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +------+--+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +------+--+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+-----+--+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+-----+--+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --+----+--+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --+----+--+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ---+---+--+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ---+---+--+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ----+--+--+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ----+--+--+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -----+-+--+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -----+-+--+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ------++--+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ------++--+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +-------+-+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +-------+-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+------+-+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+------+-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --+-----+-+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --+-----+-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ---+----+-+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ---+----+-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ----+---+-+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ----+---+-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -----+--+-+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -----+--+-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ------+-+-+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ------+-+-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -------++-+-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -------++-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +--------++-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +--------++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+-------++-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+-------++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --+------++-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --+------++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ---+-----++-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ---+-----++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ----+----++-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ----+----++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -----+---++-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -----+---++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ------+--++-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ------+--++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -------+-++-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -------+-++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --------+++-----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --------+++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ++---------+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ++---------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +-+--------+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +-+--------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -++--------+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -++--------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +--+-------+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +--+-------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+-+-------+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+-+-------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --++-------+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --++-------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +---+------+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +---+------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+--+------+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+--+------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --+-+------+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --+-+------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ---++------+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ---++------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +----+-----+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +----+-----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+---+-----+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+---+-----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --+--+-----+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --+--+-----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ---+-+-----+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ---+-+-----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ----++-----+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 ----++-----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 +-----+----+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 +-----+----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 -+----+----+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 -+----+----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 --+---+----+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
",\n",
"phase:+1\n",
"a:+1 --+---+----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
");\n",
"(phase:+1\n",
" a:+1 ---+--+----+----------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
", ...);\n",
"...]\n"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val in_list : Determinant.t list =\n",
" [phase:+1\n",
" a:+1 +++-------------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-+------------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-++------------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+++------------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++--+-----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-+-----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-+-----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--++-----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-++-----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+++-----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++---+----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+--+----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++--+----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+-+----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+-+----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++-+----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---++----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--++----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-++----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+++----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++----+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+---+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++---+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+--+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+--+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++--+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+-+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+-+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+-+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++-+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----++---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---++---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--++---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-++---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+++---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-----+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+----+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++----+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+---+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+---+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++---+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+--+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+--+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+--+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++--+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+-+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+-+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+-+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+-+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++-+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----++--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----++--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---++--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--++--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-++--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+++--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++------+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-----+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-----+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+----+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+----+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++----+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+---+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+---+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+---+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++---+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+--+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+--+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+--+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+--+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++--+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----+-+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----+-+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---+-+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--+-+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-+-+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----++-+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +------++-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-----++-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+----++-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+---++-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+--++-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+-++-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+++-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +++-------------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-+------------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-++------------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+++------------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++--+-----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-+-----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-+-----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--++-----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-++-----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+++-----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++---+----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+--+----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++--+----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+-+----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+-+----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++-+----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---++----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--++----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-++----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+++----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++----+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+---+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++---+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+--+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+--+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++--+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+-+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+-+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+-+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++-+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----++---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---++---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--++---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-++---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+++---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-----+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+----+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++----+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+---+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+---+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++---+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+--+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+--+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+--+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++--+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+-+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+-+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+-+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+-+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++-+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----++--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----++--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---++--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--++--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-++--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+++--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++------+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-----+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-----+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+----+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+----+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++----+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+---+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+---+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+---+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++---+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+--+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+--+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+--+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+--+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++--+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----+-+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----+-+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---+-+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--+-+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-+-+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----++-+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +------++-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-----++-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+----++-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+---++-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+--++-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+-++-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+++-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +++-------------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-+------------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-++------------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+++------------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++--+-----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-+-----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-+-----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--++-----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-++-----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+++-----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++---+----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+--+----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++--+----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+-+----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+-+----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++-+----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---++----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--++----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-++----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+++----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++----+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+---+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++---+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+--+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+--+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++--+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+-+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+-+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+-+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++-+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----++---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---++---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--++---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-++---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+++---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-----+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+----+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++----+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+---+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+---+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++---+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+--+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+--+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+--+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++--+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+-+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+-+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+-+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+-+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++-+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----++--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----++--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---++--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--++--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-++--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+++--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++------+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-----+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-----+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+----+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+----+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++----+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+---+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+---+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+---+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++---+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+--+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+--+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+--+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+--+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++--+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----+-+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----+-+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---+-+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--+-+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-+-+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----++-+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +------++-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-----++-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+----++-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+---++-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+--++-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+-++-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+++-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +++-------------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-+------------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-++------------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+++------------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++--+-----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-+-----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-+-----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--++-----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-++-----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+++-----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++---+----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+--+----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++--+----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+-+----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+-+----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++-+----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---++----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--++----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-++----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+++----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++----+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+---+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++---+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+--+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+--+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++--+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+-+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+-+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+-+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++-+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----++---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---++---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--++---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-++---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+++---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-----+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+----+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++----+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+---+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+---+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++---+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+--+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+--+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+--+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++--+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+-+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+-+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"...]\n"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val det_a : Determinant.t array =\n",
" [|phase:+1\n",
" a:+1 ++-------+------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+------+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++------+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+-----+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+-----+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++-----+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+----+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+----+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+----+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++----+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+---+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+---+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+---+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+---+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++---+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----+--+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----+--+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---+--+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--+--+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-+--+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----++--+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +------+-+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-----+-+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+----+-+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+---+-+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+--+-+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+-+-+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------++-+------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-------++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+------++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-----++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+----++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+---++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+--++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+-++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -------+++------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++--------+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-------+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-------+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+------+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+------+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++------+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+-----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+-----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+-----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++-----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++----+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----+---+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----+---+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---+---+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--+---+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-+---+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----++---+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +------+--+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-----+--+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+----+--+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+---+--+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+--+--+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+-+--+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------++--+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-------+-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+------+-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-----+-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+----+-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+---+-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+--+-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+-+-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -------++-+-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--------++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-------++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+------++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-----++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+----++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+---++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+--++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -------+-++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --------+++-----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++---------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+--------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++--------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+-------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+-------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++-------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++------+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+-----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+-----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+-----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+-----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++-----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----+----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----+----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---+----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--+----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-+----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----++----+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +------+---+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-----+---+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+----+---+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+---+---+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+--+---+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+-+---+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------++---+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-------+--+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+------+--+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-----+--+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+----+--+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+---+--+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+--+--+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+-+--+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -------++--+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--------+-+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-------+-+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+------+-+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-----+-+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+----+-+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+---+-+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+--+-+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -------+-+-+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --------++-+----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---------++----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--------++----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-------++----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+------++----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-----++----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+----++----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+---++----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -------+--++----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --------+-++----------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++----------+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+---------+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++---------+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+--------+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+--------+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++--------+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+-------+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+-------+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+-------+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++-------+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+------+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+------+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+------+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+------+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++------+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----+-----+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----+-----+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---+-----+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--+-----+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-+-----+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----++-----+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +------+----+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-----+----+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+----+----+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+---+----+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+--+----+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+-+----+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------++----+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-------+---+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+------+---+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-----+---+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+----+---+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+---+---+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+--+---+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+-+---+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -------++---+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--------+--+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-------+--+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+------+--+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-----+--+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+----+--+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+---+--+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+--+--+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -------+-+--+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --------++--+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---------+-+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--------+-+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-------+-+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+------+-+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-----+-+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+----+-+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+---+-+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -------+--+-+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --------+-+-+---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----------++---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---------++---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--------++---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-------++---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+------++---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+-----++---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+----++---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -------+---++---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --------+--++---------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-----------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+----------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++----------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+---------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+---------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++---------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+--------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+--------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+--------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++--------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+-------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+-------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+-------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+-------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++-------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----+------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----+------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---+------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--+------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-+------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----++------+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +------+-----+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-----+-----+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+----+-----+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+---+-----+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+--+-----+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+-+-----+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------++-----+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-------+----+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+------+----+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-----+----+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+----+----+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+---+----+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+--+----+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+-+----+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -------++----+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--------+---+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-------+---+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+------+---+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-----+---+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+----+---+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+---+---+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+--+---+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -------+-+---+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --------++---+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---------+--+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--------+--+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-------+--+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+------+--+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-----+--+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+----+--+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+---+--+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -------+--+--+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --------+-+--+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----------+-+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---------+-+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--------+-+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-------+-+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+------+-+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+-----+-+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+----+-+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -------+---+-+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --------+--+-+--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----------++--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----------++--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---------++--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--------++--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-------++--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+------++--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+-----++--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -------+----++--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --------+---++--------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++------------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-----------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-----------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+----------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+----------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++----------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+---------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+---------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+---------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++---------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+--------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+--------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+--------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+--------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++--------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----+-------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----+-------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---+-------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--+-------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-+-------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----++-------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +------+------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-----+------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+----+------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+---+------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+--+------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+-+------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------++------+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-------+-----+-------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"...|]\n"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val det_I : Determinant.t array =\n",
" [|phase:+1\n",
" a:+1 +++-------------------------------------------------------------\n",
" b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-+------------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-++------------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+++------------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++--+-----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-+-----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-+-----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--++-----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-++-----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+++-----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++---+----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+--+----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++--+----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+-+----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+-+----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++-+----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---++----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--++----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-++----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+++----------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++----+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+---+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++---+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+--+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+--+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++--+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+-+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+-+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+-+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++-+---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----++---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---++---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--++---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-++---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+++---------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-----+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+----+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++----+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+---+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+---+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++---+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+--+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+--+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+--+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++--+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+-+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+-+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+-+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+-+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++-+--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----++--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----++--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---++--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--++--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-++--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+++--------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++------+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-----+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-----+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+----+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+----+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++----+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+---+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+---+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+---+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++---+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+--+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+--+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+--+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+--+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++--+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----+-+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----+-+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---+-+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--+-+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-+-+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----++-+-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +------++-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-----++-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+----++-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+---++-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+--++-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+-++-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+++-------------------------------------------------------\n",
"b:+1 +++-------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +++-------------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-+------------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-++------------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+++------------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++--+-----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-+-----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-+-----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--++-----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-++-----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+++-----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++---+----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+--+----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++--+----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+-+----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+-+----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++-+----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---++----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--++----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-++----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+++----------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++----+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+---+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++---+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+--+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+--+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++--+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+-+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+-+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+-+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++-+---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----++---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---++---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--++---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-++---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+++---------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-----+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+----+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++----+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+---+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+---+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++---+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+--+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+--+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+--+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++--+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+-+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+-+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+-+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+-+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++-+--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----++--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----++--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---++--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--++--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-++--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+++--------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++------+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-----+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-----+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+----+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+----+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++----+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+---+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+---+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+---+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++---+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+--+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+--+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+--+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+--+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++--+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----+-+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----+-+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---+-+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--+-+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-+-+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----++-+-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +------++-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-----++-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+----++-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+---++-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+--++-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+-++-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+++-------------------------------------------------------\n",
"b:+1 ++-+------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +++-------------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-+------------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-++------------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+++------------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++--+-----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-+-----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-+-----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--++-----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-++-----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+++-----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++---+----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+--+----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++--+----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+-+----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+-+----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++-+----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---++----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--++----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-++----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+++----------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++----+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+---+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++---+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+--+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+--+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++--+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+-+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+-+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+-+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++-+---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----++---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---++---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--++---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-++---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+++---------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-----+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+----+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++----+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+---+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+---+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++---+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+--+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+--+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+--+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++--+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+-+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+-+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+-+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+-+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++-+--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----++--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----++--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---++--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--++--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-++--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+++--------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++------+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-----+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-----+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+----+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+----+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++----+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+---+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+---+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+---+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++---+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+--+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+--+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--+--+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-+--+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----++--+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-----+-+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+----+-+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+---+-+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+--+-+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+-+-+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----++-+-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +------++-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-----++-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+----++-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+---++-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+--++-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -----+-++-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ------+++-------------------------------------------------------\n",
"b:+1 +-++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +++-------------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-+------------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-++------------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+++------------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++--+-----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+-+-----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++-+-----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--++-----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-++-----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+++-----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++---+----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+--+----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++--+----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+-+----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+-+----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++-+----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---++----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--++----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-++----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+++----------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++----+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+---+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++---+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+--+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+--+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++--+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+-+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+-+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+-+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++-+---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----++---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---++---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+--++---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---+-++---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ----+++---------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ++-----+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +-+----+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -++----+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +--+---+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+-+---+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --++---+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +---+--+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+--+--+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 --+-+--+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 ---++--+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 +----+-+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"phase:+1\n",
"a:+1 -+---+-+--------------------------------------------------------\n",
"b:+1 -+++------------------------------------------------------------\n",
";\n",
"...|]\n"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
2020-01-06 19:43:55 +01:00
"source": [
"let randomize = false\n",
"\n",
"let out_list =\n",
" Util.stream_to_list (det_space_out ())\n",
" \n",
"let in_list =\n",
" Util.stream_to_list (det_space_in ())\n",
" \n",
"let det_a = Array.of_list out_list\n",
" |> Array.map (fun (i,_) -> i)\n",
"\n",
"let det_I =\n",
" if randomize then\n",
" let n = 123456789 in\n",
" in_list\n",
" |> List.map (fun k -> (Random.int n, k))\n",
" |> List.sort compare\n",
" |> List.map (fun (_,k) -> k)\n",
" |> Array.of_list\n",
" else\n",
" Array.of_list in_list\n"
]
},
{
"cell_type": "raw",
"metadata": {
2020-03-30 18:06:21 +02:00
"hidden": true,
2020-01-06 19:43:55 +01:00
"raw_mimetype": "text/markdown"
},
"source": [
"let m_H_aux, m_F_aux = \n",
" \n",
" let rec col_vecs_list accu_H accu_F = function\n",
" | [] -> \n",
" List.rev accu_H, \n",
" List.rev accu_F \n",
" | (ki, ki') :: rest when ki = ki' ->\n",
" begin\n",
" let h, f = \n",
" List.map (fun kj ->\n",
" match hf_ij aux_basis kj ki with\n",
" | [ a ; b ] -> a, b\n",
" | _ -> assert false ) in_list\n",
" |> List.split\n",
" in\n",
" let h = Vec.of_list h in\n",
" let f = Vec.of_list f in\n",
" scal 0.5 f; (* Specific to He singlet *)\n",
" col_vecs_list (h::accu_H) (f::accu_F) rest\n",
" end\n",
" | (ki, ki') :: rest ->\n",
" begin\n",
" assert false;\n",
" end\n",
" in\n",
" let h, f = \n",
" col_vecs_list [] [] out_list\n",
" in\n",
" Mat.of_col_vecs_list h,\n",
" Mat.of_col_vecs_list f"
]
},
{
"cell_type": "markdown",
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-01-06 19:43:55 +01:00
"source": [
"Function to generate all intermediate external determinants $|\\alpha \\rangle$ between $|I\\rangle$ and $|J\\rangle$, with a positive phase factor.\n",
"\n",
2020-01-07 16:45:14 +01:00
"* `exc` is the degree of excitation between $|I\\rangle$ and $|J\\rangle$"
2020-01-06 19:43:55 +01:00
]
},
{
"cell_type": "code",
2020-05-19 22:41:25 +02:00
"execution_count": 27,
2020-03-30 18:06:21 +02:00
"metadata": {
"hidden": true
},
2020-05-19 22:41:25 +02:00
"outputs": [
{
"data": {
"text/plain": [
"val generate_alphas :\n",
" Determinant.t -> Determinant.t -> int -> Determinant.t list = <fun>\n"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"val compute_HaaF :\n",
" CIMatrixElement.De.t ->\n",
" CIMatrixElement.De.t list -> CIMatrixElement.De.t -> float = <fun>\n"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
2020-01-06 19:43:55 +01:00
"source": [
"let generate_alphas ki kj exc =\n",
" (* Check input excitation degree *)\n",
" let d = Determinant.degree ki kj in\n",
" if d <> exc then\n",
" Printf.sprintf \"Invalid excitation degree. Expected %d and found %d.\" exc d\n",
" |> failwith;\n",
" \n",
" (* Generate single excitations *)\n",
" let all_singles ki =\n",
" let mos_a, mos_b = Determinant.to_lists ki in\n",
" [ List.map (fun hole -> \n",
" List.map (fun particle ->\n",
" if hole = particle then None else\n",
" Some (Determinant.single_excitation Spin.Alfa hole particle ki)\n",
" ) mos_abs\n",
" ) mos_a\n",
" ;\n",
" List.map (fun hole -> \n",
" List.map (fun particle ->\n",
" if hole = particle then None else\n",
" Some (Determinant.single_excitation Spin.Beta hole particle ki)\n",
" ) mos_abs\n",
" ) mos_b \n",
" ]\n",
" |> List.concat\n",
" |> List.concat\n",
" |> Util.list_some\n",
" |> List.filter (fun x -> Determinant.is_none x = false)\n",
" |> List.map (fun x -> Determinant.set_phase Phase.Pos x)\n",
" in\n",
" \n",
" (* Generate double excitations *)\n",
" let all_doubles ki =\n",
" let mos_a, mos_b = Determinant.to_lists ki in\n",
" [ List.map (fun hole -> (* Alpha-Alpha *)\n",
" List.map (fun particle ->\n",
" List.map (fun hole' -> \n",
" List.map (fun particle' ->\n",
" if hole = particle || hole' = particle' then None else\n",
" if hole' > hole && particle' < particle then\n",
" Some (Determinant.double_excitation Spin.Alfa hole particle Spin.Alfa hole' particle' ki)\n",
" else None\n",
" ) mos_abs\n",
" ) mos_a \n",