cleaning up, documenting stuff

This commit is contained in:
William Ball 2022-06-20 11:41:19 -07:00
parent 558bedf9b1
commit 8074694ff8
10 changed files with 1593 additions and 114186 deletions

View file

@ -1 +0,0 @@
/target

View file

@ -1,352 +0,0 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "approx"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "072df7202e63b127ab55acfe16ce97013d5b97bf160489336d3f1840fd78e99e"
dependencies = [
"num-traits",
]
[[package]]
name = "autocfg"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
[[package]]
name = "bai_finch"
version = "0.1.0"
dependencies = [
"nalgebra",
"num",
"num-complex 0.3.1",
"rayon",
]
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "crossbeam-channel"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
dependencies = [
"cfg-if",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-deque"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
dependencies = [
"cfg-if",
"crossbeam-epoch",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-epoch"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd"
dependencies = [
"cfg-if",
"crossbeam-utils",
"lazy_static",
"memoffset",
"scopeguard",
]
[[package]]
name = "crossbeam-utils"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
dependencies = [
"cfg-if",
"lazy_static",
]
[[package]]
name = "either"
version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.97"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12b8adadd720df158f4d70dfe7ccc6adb0472d7c55ca83445f6a5ab3e36f8fb6"
[[package]]
name = "matrixmultiply"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a8a15b776d9dfaecd44b03c5828c2199cddff5247215858aac14624f8d6b741"
dependencies = [
"rawpointer",
]
[[package]]
name = "memoffset"
version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9"
dependencies = [
"autocfg",
]
[[package]]
name = "nalgebra"
version = "0.27.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120"
dependencies = [
"approx",
"matrixmultiply",
"nalgebra-macros",
"num-complex 0.4.0",
"num-rational 0.4.0",
"num-traits",
"simba",
"typenum",
]
[[package]]
name = "nalgebra-macros"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "num"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b7a8e9be5e039e2ff869df49155f1c06bd01ade2117ec783e56ab0932b67a8f"
dependencies = [
"num-bigint",
"num-complex 0.3.1",
"num-integer",
"num-iter",
"num-rational 0.3.2",
"num-traits",
]
[[package]]
name = "num-bigint"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d0a3d5e207573f948a9e5376662aa743a2ea13f7c50a554d7af443a73fbfeba"
dependencies = [
"autocfg",
"num-integer",
"num-traits",
]
[[package]]
name = "num-complex"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5"
dependencies = [
"num-traits",
]
[[package]]
name = "num-complex"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085"
dependencies = [
"num-traits",
]
[[package]]
name = "num-integer"
version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
dependencies = [
"autocfg",
"num-traits",
]
[[package]]
name = "num-iter"
version = "0.1.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
dependencies = [
"autocfg",
"num-integer",
"num-traits",
]
[[package]]
name = "num-rational"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
dependencies = [
"autocfg",
"num-bigint",
"num-integer",
"num-traits",
]
[[package]]
name = "num-rational"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a"
dependencies = [
"autocfg",
"num-integer",
"num-traits",
]
[[package]]
name = "num-traits"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
dependencies = [
"autocfg",
]
[[package]]
name = "num_cpus"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
dependencies = [
"hermit-abi",
"libc",
]
[[package]]
name = "paste"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58"
[[package]]
name = "proc-macro2"
version = "1.0.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038"
dependencies = [
"unicode-xid",
]
[[package]]
name = "quote"
version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
dependencies = [
"proc-macro2",
]
[[package]]
name = "rawpointer"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
[[package]]
name = "rayon"
version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
dependencies = [
"autocfg",
"crossbeam-deque",
"either",
"rayon-core",
]
[[package]]
name = "rayon-core"
version = "1.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
dependencies = [
"crossbeam-channel",
"crossbeam-deque",
"crossbeam-utils",
"lazy_static",
"num_cpus",
]
[[package]]
name = "scopeguard"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
name = "simba"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c"
dependencies = [
"approx",
"num-complex 0.4.0",
"num-traits",
"paste",
]
[[package]]
name = "syn"
version = "1.0.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7"
dependencies = [
"proc-macro2",
"quote",
"unicode-xid",
]
[[package]]
name = "typenum"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06"
[[package]]
name = "unicode-xid"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"

View file

@ -1,16 +0,0 @@
[package]
name = "bai_finch"
version = "0.1.0"
authors = ["William Ball <wball1@swarthmore.edu>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
num = "0.3.1"
nalgebra = "0.27.1"
num-complex = "0.3.1"
rayon = "1.5.1"
[profile.release]
debug = true

View file

@ -1,271 +0,0 @@
#![allow(dead_code)]
use num_complex::Complex64;
type F = f64;
type Matrix2x2 = nalgebra::SMatrix<Complex64, 2, 2>;
type MatrixBig = nalgebra::DMatrix<Complex64>;
type MatrixBigr = nalgebra::DMatrix<f64>;
const G: Matrix2x2 = Matrix2x2::new(
Complex64::new(2.0 / 12.0, -2.0 / 12.0),
Complex64::new(-1.0 / 12.0, -5.0 / 12.0),
Complex64::new(4.0 / 12.0, -4.0 / 12.0),
Complex64::new(-2.0 / 12.0, -10.0 / 12.0),
);
const R: Matrix2x2 = Matrix2x2::new(
Complex64::new(-6.0 / 12.0, 8.0 / 12.0),
Complex64::new(0.0, 11.0 / 12.0),
Complex64::new(0.0, 4.0 / 12.0),
Complex64::new(-6.0 / 12.0, -8.0 / 12.0),
);
const NC: usize = 5;
const K0: i32 = 100;
const LC: usize = 3;
const NC2: usize = NC * NC;
const UPPER_BOUND: i32 = 10_000;
fn fancy_l(q: f64) -> MatrixBigr {
let mut fancy_l = MatrixBigr::zeros(NC2, NC2);
for m in 0..NC {
for n in 0..NC {
for r in 0..NC {
for s in 0..NC {
if m <= n {
let mut sum_m = Complex64::new(0.0, 0.0);
for k in 1..K0 {
sum_m += normal_m(k, q, n as i32, s as i32)
* normal_m(k as i32, q, m as i32, r as i32).conj();
}
let sum_f = (0..=LC)
.map(|l: usize| -> Complex64 {
zeta(l as f64 + 2.0 * q, K0)
* (0..=l)
.map(|lp| {
normal_f(q, m as i32, r as i32, (l - lp) as i32)
* normal_f(q, n as i32, s as i32, lp as i32).conj()
})
.sum::<Complex64>()
})
.sum::<Complex64>();
fancy_l[(m * NC + n, r * NC + s)] = 2.0 * (sum_m.re + sum_f.re);
} else {
fancy_l[(m * NC + n, r * NC + s)] = fancy_l[(n * NC + m, s * NC + r)];
}
}
}
}
}
fancy_l
// MatrixBigr::from_diagonal_element(NC2, NC2, 2.0) * (fancy_m(q) + fancy_f(q)).map(|z| z.re)
}
fn integral_choose(n: i32, k: i32) -> f64 {
match k.cmp(&0) {
std::cmp::Ordering::Less => 0.0,
std::cmp::Ordering::Equal => 1.0,
std::cmp::Ordering::Greater => (0..k).map(|i| (n - i) as f64 / (k - i) as f64).product(),
}
}
fn non_integral_choose(q: f64, k: i32) -> f64 {
match k.cmp(&0) {
std::cmp::Ordering::Less => 0.0,
std::cmp::Ordering::Equal => 1.0,
std::cmp::Ordering::Greater => (0..k).map(|i| (q - i as f64) / (k - i) as f64).product(),
}
}
fn normal_f(q: f64, n: i32, s: i32, l: i32) -> Complex64 {
let r11 = R[(0, 0)];
let r12 = R[(0, 1)];
let r21 = R[(1, 0)];
let r22 = R[(1, 1)];
let g11 = G[(0, 0)];
let g12 = G[(0, 1)];
let g21 = G[(1, 0)];
let g22 = G[(1, 1)];
(0..=s)
.into_iter()
.map(|j: i32| -> Complex64 {
non_integral_choose(-n as f64 - q, j)
* integral_choose(n, s - j)
* (0..=j)
.map(|l1: i32| -> Complex64 {
(0..=(s - j))
.map(|l3: i32| -> Complex64 {
(0..=(n - s + j))
.map(|l4: i32| -> Complex64 {
integral_choose(j, l1)
* non_integral_choose(
-n as f64 - q - j as f64,
l - l1 - l3 - l4,
)
* integral_choose(s - j, l3)
* integral_choose(n - s + j, l4)
* r21.powi(l1)
* r22.powi(l - l1 - l3 - l4)
* r11.powi(l3)
* r12.powi(l4)
* g21.powi(j - l1)
* g22.powf(
-n as f64 - q - j as f64 - l as f64
+ l1 as f64
+ l3 as f64
+ l4 as f64,
)
* g11.powi(s - j - l3)
* g12.powi(n - s + j - l4)
})
.sum()
})
.sum()
})
.sum::<Complex64>()
})
.sum()
}
fn zeta(s: f64, k0: i32) -> f64 {
(k0..=UPPER_BOUND)
.into_iter()
.map(|j| (j as f64).powf(-s))
.sum::<f64>()
- (UPPER_BOUND as f64).powf(1.0 - s) / (1.0 - s)
}
fn fancy_f(q: f64) -> MatrixBig {
let mut fancy_f = MatrixBig::zeros(NC2, NC2);
for m in 0..NC {
for n in 0..NC {
for r in 0..NC {
for s in 0..NC {
if m <= n {
fancy_f[(m * NC + n, r * NC + s)] = (0..=LC)
.map(|l: usize| -> Complex64 {
zeta(l as f64 + 2.0 * q, K0)
* (0..=l)
.map(|lp| {
normal_f(q, m as i32, r as i32, (l - lp) as i32)
* normal_f(q, n as i32, s as i32, lp as i32).conj()
})
.sum::<Complex64>()
})
.sum::<Complex64>();
} else {
fancy_f[(m * NC + n, r * NC + s)] =
fancy_f[(n * NC + m, s * NC + r)].conj();
}
}
}
}
}
fancy_f
}
fn normal_m(k: i32, q: f64, n: i32, s: i32) -> Complex64 {
let ak = R + Matrix2x2::from_diagonal_element(Complex64::new(k as f64, 0.0)) * G;
let a11 = ak[(0, 0)];
let a12 = ak[(0, 1)];
let a21 = ak[(1, 0)];
let a22 = ak[(1, 1)];
(0..=s)
.into_iter()
.map(|j| {
non_integral_choose(-n as f64 - q, j)
* integral_choose(n, s - j)
* a21.powi(j)
* a22.powf(-n as f64 - q - j as f64)
* a11.powi(s - j)
* a12.powi(n - s + j)
})
.sum()
}
fn fancy_m(q: f64) -> MatrixBig {
let mut fancy_m = MatrixBig::zeros(NC2, NC2);
for m in 0..NC {
for n in 0..NC {
for r in 0..NC {
for s in 0..NC {
if m <= n {
let mut sum = Complex64::new(0.0, 0.0);
for k in 1..K0 {
sum += normal_m(k, q, n as i32, s as i32)
* normal_m(k as i32, q, m as i32, r as i32).conj();
}
fancy_m[(m * NC + n, r * NC + s)] = sum;
} else {
fancy_m[(m * NC + n, r * NC + s)] =
fancy_m[(n * NC + m, s * NC + r)].conj();
}
}
}
}
}
fancy_m
}
fn secant_method(f: fn(F) -> F, target: F, x0: F, x1: F, accuracy: F, iterations: usize) -> F {
let mut x0 = x0;
let mut x1 = x1;
let mut y0 = f(x0);
let mut y1 = f(x1);
let mut count = 0;
println!("f({}) =\t{}", x1, y1);
while (y1 - target).abs() >= accuracy && count < iterations {
let new_x = x0 - (y0 - target) * (x1 - x0) / (y1 - y0);
x0 = x1;
x1 = new_x;
y0 = y1;
y1 = f(x1);
println!("f({}) =\t{}", x1, y1);
count += 1;
}
x0
}
fn power_method(
vec: nalgebra::DVector<f64>,
mat: nalgebra::DMatrix<f64>,
iterations: usize,
tolerance: f64,
) -> f64 {
let mut previous_entry = vec[0];
let mut previous_val = 0f64;
let mut current = mat.clone() * vec;
let mut current_val = current[0] / previous_entry;
let mut count = 0;
while count < iterations && (current_val - previous_val).abs() > tolerance {
previous_val = current_val;
previous_entry = current[0];
current = mat.clone() * current;
current_val = current[0] / previous_entry;
count += 1;
}
println!("found eigenvalue {} in {} iterations", current_val, count);
current_val
}
fn test(x: f64) -> f64 {
x.cos() - x
}
fn lambda(q: f64) -> f64 {
let lq = fancy_l(q);
let mut phi0 = nalgebra::DVector::zeros(NC2);
phi0[0] = 1.0;
power_method(phi0, lq, 50, std::f64::EPSILON)
}
fn main() {
// secant_method(lambda, 1.0, 1.3, 1.31, f64::EPSILON, 100);
// secant_method(test, 0.0, 0.0, 1.0, f64::EPSILON, 100);
println!("{}", normal_m(5, 1.3, 3, 3));
}

View file

@ -10,14 +10,35 @@
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 158, 7]
NotebookDataLength[ 356704, 8682]
NotebookOptionsPosition[ 352872, 8631]
NotebookOutlinePosition[ 353362, 8649]
CellTagsIndexPosition[ 353319, 8646]
NotebookDataLength[ 359067, 8756]
NotebookOptionsPosition[ 353340, 8675]
NotebookOutlinePosition[ 353830, 8693]
CellTagsIndexPosition[ 353787, 8690]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[CellGroupData[{
Cell["Handy functions", "Section",
CellChangeTimes->{{3.8646830510411797`*^9,
3.864683053091597*^9}},ExpressionUUID->"d9d62207-947e-4a55-994c-\
be968ba39c8b"],
Cell[CellGroupData[{
Cell["Quadratic forms and linear relations", "Subsection",
CellChangeTimes->{{3.8646832235938597`*^9,
3.864683227491637*^9}},ExpressionUUID->"ffcc14d7-54b2-406a-8618-\
9531332769aa"],
Cell["\<\
Gets a list of indices of the pivots of a matrix in reduced echelon form.\
\>", "Text",
CellChangeTimes->{{3.8646834675398283`*^9, 3.864683486796194*^9},
3.864683635933962*^9},ExpressionUUID->"ac72a206-5663-4fb8-9a75-\
6d188f4c76e1"],
Cell[BoxData[
RowBox[{
RowBox[{"pivots", "[", "A_", "]"}], ":=",
@ -29,6 +50,30 @@ Cell[BoxData[
3.831194930347896*^9, 3.831194932848599*^9}},
CellLabel->"In[1]:=",ExpressionUUID->"e1bc883b-2413-4a7d-abe0-4a19eb3f78fd"],
Cell[TextData[{
"Constructs the matrix we\[CloseCurlyQuote]ve been calling ",
Cell[BoxData[
FormBox[
TemplateBox[<|"boxes" -> FormBox[
StyleBox["P", "TI"], TraditionalForm], "errors" -> {}, "input" -> "P",
"state" -> "Boxes"|>,
"TeXAssistantTemplate"], TraditionalForm]],ExpressionUUID->
"b6d67594-7399-484f-ab24-507fe2e7cb7d"],
" of any dimension. The most useful one by far is the ",
Cell[BoxData[
FormBox[
TemplateBox[<|"boxes" -> FormBox[
RowBox[{"4", "\[Cross]", "4"}], TraditionalForm], "errors" -> {},
"input" -> "4\\times 4", "state" -> "Boxes"|>,
"TeXAssistantTemplate"], TraditionalForm]],ExpressionUUID->
"a290e079-0f52-414c-9475-c308d5277d84"],
" one."
}], "Text",
CellChangeTimes->{{3.864683498626568*^9, 3.864683509251071*^9}, {
3.864683595451868*^9, 3.864683668047246*^9}, {3.864731506766433*^9,
3.86473166070006*^9}},ExpressionUUID->"87b40a25-ff96-4305-b802-\
220d3c3714ee"],
Cell[BoxData[
RowBox[{
RowBox[{"pMatrix", "[", "n_", "]"}], ":=",
@ -56,7 +101,15 @@ Cell[BoxData[
CellChangeTimes->{{3.831107414093502*^9, 3.83110748040809*^9}, {
3.831107557920609*^9, 3.8311075805621977`*^9}, {3.8311076270925627`*^9,
3.831107722019619*^9}, {3.83468833600141*^9, 3.8346883410498962`*^9}},
CellLabel->"In[2]:=",ExpressionUUID->"025b5df5-f2a6-4cee-a294-e76ee16e74d4"],
CellLabel->"In[9]:=",ExpressionUUID->"025b5df5-f2a6-4cee-a294-e76ee16e74d4"],
Cell["\<\
Computes the gram matrix given a matrix whose columns are circles in a tuple \
in abbc coordinates.\
\>", "Text",
CellChangeTimes->{{3.86468368363731*^9,
3.8646837180951366`*^9}},ExpressionUUID->"03438c1b-508d-4333-9054-\
9967574ef3d3"],
Cell[BoxData[
RowBox[{
@ -71,6 +124,15 @@ Cell[BoxData[
3.831110193792735*^9}},
CellLabel->"In[3]:=",ExpressionUUID->"54cc4a6c-be37-4091-ac21-3dfd11eb53ea"],
Cell["\<\
Computes the linear relations matrix given the gram matrix. This matrix maps \
vectors of just four curvatures into the full tuple.\
\>", "Text",
CellChangeTimes->{{3.864683730604188*^9, 3.864683747937598*^9}, {
3.8646837997502403`*^9,
3.8646838957084618`*^9}},ExpressionUUID->"b44fae9e-11fd-4fea-9594-\
87a6c311bec8"],
Cell[BoxData[
RowBox[{
RowBox[{"linearRelationsMatrix", "[", "G_", "]"}], ":=",
@ -82,7 +144,14 @@ Cell[BoxData[
RowBox[{"MatrixRank", "[", "G", "]"}]}], "]"}], "]"}], "//",
"Transpose"}]}]], "Input",
CellChangeTimes->{{3.831109396818718*^9, 3.831109426888632*^9}},
CellLabel->"In[4]:=",ExpressionUUID->"d3298122-6e10-4115-8e61-a949acba4e08"],
CellLabel->"In[3]:=",ExpressionUUID->"d3298122-6e10-4115-8e61-a949acba4e08"],
Cell["\<\
Converts the linear relations matrix into more human-readable equations.\
\>", "Text",
CellChangeTimes->{{3.8646839148506317`*^9,
3.86468394900528*^9}},ExpressionUUID->"551afa7d-856b-46fe-8670-\
51fd64eff7cc"],
Cell[BoxData[
RowBox[{
@ -118,7 +187,12 @@ Cell[BoxData[
3.831194680087949*^9, 3.831194680680228*^9}, {3.831194956352386*^9,
3.831195002875142*^9}, {3.831205178380069*^9, 3.831205187846324*^9},
3.834688343633176*^9},
CellLabel->"In[5]:=",ExpressionUUID->"4e2a5664-aeb5-4dfb-88fb-7e7839ba2141"],
CellLabel->"In[11]:=",ExpressionUUID->"4e2a5664-aeb5-4dfb-88fb-7e7839ba2141"],
Cell["Same but from a tuple.", "Text",
CellChangeTimes->{{3.86468395374198*^9,
3.864683987995091*^9}},ExpressionUUID->"7914b40a-8924-4161-b52d-\
1ca82c95c0c4"],
Cell[BoxData[
RowBox[{
@ -130,6 +204,15 @@ Cell[BoxData[
3.831206070230084*^9},
CellLabel->"In[6]:=",ExpressionUUID->"c9a1b25a-8cb3-40d1-ac83-1d2405398934"],
Cell["\<\
A left inverse for the linear relations matrix (i.e. sends a full tuple to \
just the four \[OpenCurlyDoubleQuote]special\[CloseCurlyDoubleQuote] linearly \
independent curvatures).\
\>", "Text",
CellChangeTimes->{{3.864684056842209*^9,
3.864684121412198*^9}},ExpressionUUID->"777e5618-fae9-4bb5-b529-\
4f4902364898"],
Cell[BoxData[
RowBox[{
RowBox[{"inverseLinearRelations", "[", "G_", "]"}], ":=",
@ -163,7 +246,24 @@ Cell[BoxData[
"]"}]}], ")"}]}], "]"}]}]}]], "Input",
CellChangeTimes->{{3.831194278291965*^9, 3.831194298458626*^9},
3.831195204231324*^9},
CellLabel->"In[7]:=",ExpressionUUID->"30b57c08-a123-4e7d-9b0a-b512fcfecee8"],
CellLabel->"In[13]:=",ExpressionUUID->"30b57c08-a123-4e7d-9b0a-b512fcfecee8"],
Cell[TextData[{
"Various functions to construct a quadratic form associated with a packing \
from the root tuple, ",
Cell[BoxData[
FormBox[
TemplateBox[<|"boxes" -> FormBox[
StyleBox["G", "TI"], TraditionalForm], "errors" -> {}, "input" -> "G",
"state" -> "Boxes"|>,
"TeXAssistantTemplate"], TraditionalForm]],ExpressionUUID->
"b2c98825-e401-425d-b550-e32292e83fe4"],
", etc."
}], "Text",
CellChangeTimes->{{3.864684144417095*^9, 3.864684183254436*^9}, {
3.8647314865256433`*^9,
3.86473148733366*^9}},ExpressionUUID->"c96de117-3c03-4391-9112-\
59dc2aa87e38"],
Cell[BoxData[
RowBox[{
@ -243,7 +343,22 @@ Cell[BoxData[
RowBox[{"G", ",", "L"}], "]"}], ",", "L"}], "]"}]}], "]"}]}]], "Input",\
CellChangeTimes->{{3.8312049925958433`*^9, 3.8312050200596113`*^9}},
CellLabel->"In[11]:=",ExpressionUUID->"810323e6-91cb-44f2-ad55-323fbec422eb"],
CellLabel->"In[11]:=",ExpressionUUID->"810323e6-91cb-44f2-ad55-323fbec422eb"]
}, Open ]],
Cell[CellGroupData[{
Cell["Graph utilities", "Subsection",
CellChangeTimes->{{3.86468325145858*^9,
3.864683253669279*^9}},ExpressionUUID->"30f99b83-ea38-48b2-b913-\
e9a970532db2"],
Cell["\<\
Given G, returns a planar Mathematica graph representing the tangencies\
\>", "Text",
CellChangeTimes->{{3.864684194015627*^9,
3.864684215161499*^9}},ExpressionUUID->"4192620c-85de-4442-8b77-\
a4f0439b11b4"],
Cell[BoxData[
RowBox[{
@ -266,6 +381,24 @@ Cell[BoxData[
3.831584545556731*^9, 3.831584563248426*^9}},
CellLabel->"In[12]:=",ExpressionUUID->"948959db-c926-4458-9e45-ef7f3fb99ba5"],
Cell[TextData[{
"A series of functions stolen from StackOverflow that find the faces of a \
planar graph (which are unique in our case, since the graph is always the \
vertex graph of a polyhedron). Usefully, the indices are guaranteed to line \
up with ",
Cell[BoxData[
FormBox[
TemplateBox[<|"boxes" -> FormBox[
StyleBox["G", "TI"], TraditionalForm], "errors" -> {}, "input" -> "G",
"state" -> "Boxes"|>,
"TeXAssistantTemplate"], TraditionalForm]],ExpressionUUID->
"6d8e0958-42ce-4301-a0a0-b98a052dbdf6"]
}], "Text",
CellChangeTimes->{{3.8646842229863787`*^9, 3.864684357501741*^9}, {
3.864731477969768*^9,
3.864731478614419*^9}},ExpressionUUID->"652feb5a-94e0-4b51-96b7-\
66625315f8ef"],
Cell[BoxData[
RowBox[{
RowBox[{
@ -312,7 +445,7 @@ Cell[BoxData[{
"\[IndentingNewLine]",
RowBox[{"FindFace", "[",
RowBox[{"g", ",", "emb"}], "]"}]}]}], "]"}]}], ";"}],
"\[IndentingNewLine]"}], "\n",
"\n"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"FindFace", "[",
RowBox[{
@ -403,7 +536,26 @@ Cell[BoxData[{
CellChangeTimes->{{3.8312108953940573`*^9, 3.831210895411563*^9},
3.8312119634327393`*^9, 3.831542420732052*^9, {3.834688353349917*^9,
3.8346883534550037`*^9}},
CellLabel->"In[14]:=",ExpressionUUID->"5cb4f612-3c02-42ac-ad57-4fb2daf3366b"],
CellLabel->"In[14]:=",ExpressionUUID->"5cb4f612-3c02-42ac-ad57-4fb2daf3366b"]
}, Open ]],
Cell[CellGroupData[{
Cell["Algebraic and Geometric Generators", "Subsection",
CellChangeTimes->{{3.864683268299602*^9, 3.864683270300555*^9}, {
3.8646833152616262`*^9,
3.8646833208091173`*^9}},ExpressionUUID->"a54eae0a-eac8-4408-bb48-\
69eb10a7147f"],
Cell["\<\
These three functions find the generators of the algebraic Apollonian group \
of a polyhedral packing. These yield different matrices from the process \
discussed in our first paper, but they still work.\
\>", "Text",
CellChangeTimes->{{3.864684365608055*^9, 3.864684397908317*^9}, {
3.8646844317958393`*^9,
3.864684510105069*^9}},ExpressionUUID->"6773c37a-4ed3-4315-9304-\
64d7ebb905b7"],
Cell[BoxData[
RowBox[{
@ -845,6 +997,16 @@ Cell[BoxData[
3.833982029038528*^9},
CellLabel->"In[18]:=",ExpressionUUID->"bd52b017-bd99-4bdf-9126-b7c62804c9f2"],
Cell["\<\
abbctoxyr is a very convenient function for converting between abbc \
coordinates and xyr (x,y coordinates of center and radius) coordinates. Its \
inverse is also useful, but isn\[CloseCurlyQuote]t ever needed in this \
notebook.\
\>", "Text",
CellChangeTimes->{{3.864684524686651*^9,
3.864684568011244*^9}},ExpressionUUID->"371e76d7-c3be-4ee9-ab19-\
eeefafc86d34"],
Cell[BoxData[
RowBox[{
RowBox[{"abbctoxyr", "[",
@ -858,141 +1020,51 @@ Cell[BoxData[
CellChangeTimes->{{3.8363114259734707`*^9, 3.836311449666407*^9}},
CellLabel->"In[19]:=",ExpressionUUID->"5ef8c91b-dd7a-440d-b44e-513ae9efffca"],
Cell["\<\
Finds the generators of the geometric Apollonian group associated with a \
particular root tuple.\
\>", "Text",
CellChangeTimes->{{3.8646845834308863`*^9, 3.8646846026325207`*^9},
3.864684705643474*^9},ExpressionUUID->"09cd9547-a570-4ff5-bee6-\
11977bff1c99"],
Cell[BoxData[
RowBox[{
RowBox[{"findGeometricGenerators", "[",
RowBox[{"W_", ",", "faces_"}], "]"}], ":=",
RowBox[{"Block", "[",
RowBox[{
RowBox[{"{",
RowBox[{"circs", ",", "pointsOfIntersection", ",", "duals"}], "}"}], ",",
"\[IndentingNewLine]",
RowBox[{
RowBox[{"circs", "=",
RowBox[{"abbctoxyr", "/@", "W"}]}], ";", "\[IndentingNewLine]",
RowBox[{"pointsOfIntersection", "=",
RowBox[{"findGeometricGenerators", "[", "W_", "]"}], ":=",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"If", "[",
RowBox[{
RowBox[{"i", "==", "j"}], ",",
RowBox[{"W", ".",
RowBox[{"Transpose", "[", "\[Sigma]", "]"}], ".",
RowBox[{"PseudoInverse", "[", "W", "]"}]}], ",",
RowBox[{"{",
RowBox[{"0", ",", "0"}], "}"}], ",",
RowBox[{
RowBox[{"NSolve", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{
RowBox[{
SuperscriptBox[
RowBox[{"(",
RowBox[{"x", "-",
RowBox[{
RowBox[{"circs", "[",
RowBox[{"[", "i", "]"}], "]"}], "[",
RowBox[{"[", "1", "]"}], "]"}]}], ")"}], "2"], "+",
SuperscriptBox[
RowBox[{"(",
RowBox[{"y", "-",
RowBox[{
RowBox[{"circs", "[",
RowBox[{"[", "i", "]"}], "]"}], "[",
RowBox[{"[", "2", "]"}], "]"}]}], ")"}], "2"]}], "==",
SuperscriptBox[
RowBox[{
RowBox[{"circs", "[",
RowBox[{"[", "i", "]"}], "]"}], "[",
RowBox[{"[", "3", "]"}], "]"}], "2"]}], ",",
RowBox[{
RowBox[{
SuperscriptBox[
RowBox[{"(",
RowBox[{"x", "-",
RowBox[{
RowBox[{"circs", "[",
RowBox[{"[", "j", "]"}], "]"}], "[",
RowBox[{"[", "1", "]"}], "]"}]}], ")"}], "2"], "+",
SuperscriptBox[
RowBox[{"(",
RowBox[{"y", "-",
RowBox[{
RowBox[{"circs", "[",
RowBox[{"[", "j", "]"}], "]"}], "[",
RowBox[{"[", "2", "]"}], "]"}]}], ")"}], "2"]}], "==",
SuperscriptBox[
RowBox[{
RowBox[{"circs", "[",
RowBox[{"[", "j", "]"}], "]"}], "[",
RowBox[{"[", "3", "]"}], "]"}], "2"]}]}], "}"}], ",",
"Reals"}], "]"}], "/.",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"x", "->", "a_"}], ",",
RowBox[{"y", "->", "b_"}]}], "}"}], ",", "_"}], "}"}], "->",
RowBox[{"{",
RowBox[{"a", ",", "b"}], "}"}]}]}]}], "]"}], ",",
RowBox[{"{",
RowBox[{"i", ",",
RowBox[{"Length", "[", "circs", "]"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"j", ",",
RowBox[{"Length", "[", "circs", "]"}]}], "}"}]}], "]"}]}], ";",
"\[IndentingNewLine]",
RowBox[{"duals", "=",
RowBox[{
RowBox[{"(",
RowBox[{
RowBox[{"Table", "[",
RowBox[{
RowBox[{"CircleThrough", "[",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"pointsOfIntersection", "[",
RowBox[{"[",
RowBox[{
RowBox[{"face", "[",
RowBox[{"[", "i", "]"}], "]"}], ",",
RowBox[{"face", "[",
RowBox[{"[",
RowBox[{"If", "[",
RowBox[{
RowBox[{"i", "==",
RowBox[{"Length", "[", "face", "]"}]}], ",", "1", ",",
RowBox[{"i", "+", "1"}]}], "]"}], "]"}], "]"}]}], "]"}],
"]"}], ",",
RowBox[{"{",
RowBox[{"i", ",", "3"}], "}"}]}], "]"}], "]"}], ",",
RowBox[{"{",
RowBox[{"face", ",", "faces"}], "}"}]}], "]"}], "//", "Chop"}],
")"}], "/.",
RowBox[{
RowBox[{"Circle", "[",
RowBox[{
RowBox[{"{",
RowBox[{"x_", ",", "y_"}], "}"}], ",", "r_"}], "]"}], "->",
RowBox[{"{",
RowBox[{"x", ",", "y", ",", "r"}], "}"}]}]}]}], ";",
"\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"invertAboutCircle", "@@", "#"}], "&"}], "/@", "duals"}]}]}],
"\[IndentingNewLine]", "]"}]}]], "Input",
CellChangeTimes->{{3.836311382224783*^9, 3.836311419633215*^9}, {
3.836311452786697*^9, 3.8363115754821777`*^9}, {3.836311671596231*^9,
3.836311911486074*^9}, {3.83631202465561*^9, 3.8363120458893223`*^9}, {
3.8363120966552258`*^9, 3.8363121518749323`*^9}, {3.836312205319263*^9,
3.836312308220592*^9}, {3.8363126041123037`*^9, 3.8363126356297626`*^9}, {
3.836312719672307*^9, 3.836312731342832*^9}, {3.83631288194462*^9,
3.836312925832314*^9}, {3.836335503087988*^9, 3.83633554789843*^9}, {
3.836335652905367*^9, 3.8363356695012817`*^9}, {3.8363359177817593`*^9,
3.836335919048725*^9}, 3.836336062206873*^9, {3.836336095237904*^9,
3.836336114229784*^9}, {3.836336188817478*^9, 3.836336232187769*^9}, {
3.836336269426408*^9, 3.836336326435491*^9}, 3.836336424520152*^9},
CellLabel->"In[20]:=",ExpressionUUID->"2ffd6cba-1ba3-4c73-8457-ef7fc5958282"],
RowBox[{"\[Sigma]", ",",
RowBox[{"findGeneratorsFromG", "[",
RowBox[{"gramMatrix", "[", "W", "]"}], "]"}]}], "}"}]}],
"]"}]}]], "Input",
CellChangeTimes->{{3.86468467845833*^9,
3.864684758983469*^9}},ExpressionUUID->"14db2bfc-ecf5-4a97-90fa-\
8126e86e9190"]
}, Open ]],
Cell[CellGroupData[{
Cell["\<\
Fractal Dimension (Warning: circle counting slightly inaccurate for anything \
other than tetrahedron)\
\>", "Subsection",
CellChangeTimes->{{3.8646833319676657`*^9,
3.864683358720407*^9}},ExpressionUUID->"9a9baebc-6ebe-40af-9838-\
fbc4f0a61e63"],
Cell["\<\
search counts the circles, while fractalDimensionFromG uses that data to find \
the fractal dimension. This is a very old algorithm that is extremely slow \
and has serious issues. If you want to find fractal dimensions, use the much \
faster and actually correct code located in circle_counting_new.\
\>", "Text",
CellChangeTimes->{{3.864684790307341*^9,
3.8646848638634033`*^9}},ExpressionUUID->"a40f213a-0639-4531-af71-\
cb3759d226bb"],
Cell[BoxData[
RowBox[{
@ -1174,7 +1246,16 @@ Cell[BoxData[
3.8342709184846773`*^9}, {3.834271399281299*^9, 3.834271400142085*^9}, {
3.8345760352900133`*^9, 3.834576035855191*^9}, {3.834594490350781*^9,
3.834594498152722*^9}},
CellLabel->"In[22]:=",ExpressionUUID->"3971d33a-d19f-42ea-9b17-0801f7a59659"],
CellLabel->"In[22]:=",ExpressionUUID->"3971d33a-d19f-42ea-9b17-0801f7a59659"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell["Gram Matrices", "Section",
CellChangeTimes->{{3.8646831461718616`*^9,
3.864683148534131*^9}},ExpressionUUID->"38a90e2b-8230-44d5-9ded-\
1a7e10c86573"],
Cell[BoxData[{
RowBox[{
@ -1208,6 +1289,27 @@ Cell[BoxData[{
RowBox[{"{",
RowBox[{"j", ",", "0", ",", "n"}], "}"}]}],
"]"}]}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"pyramidTuple", "[", "n_", "]"}], ":=",
RowBox[{"N", "[",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"If", "[",
RowBox[{
RowBox[{"i", "\[Equal]", "1"}], ",",
RowBox[{"-", "1"}], ",",
FractionBox[
RowBox[{
RowBox[{"Sec", "[",
FractionBox["\[Pi]", "n"], "]"}], "+",
RowBox[{"Tan", "[",
FractionBox["\[Pi]", "n"], "]"}]}],
RowBox[{"Tan", "[",
FractionBox["\[Pi]", "n"], "]"}]]}], "]"}], ",",
RowBox[{"{",
RowBox[{"i", ",",
RowBox[{"n", "+", "1"}]}], "}"}]}], "]"}],
"]"}]}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"prismG", "[", "n_", "]"}], ":=",
RowBox[{"Table", "[",
@ -1264,69 +1366,10 @@ Cell[BoxData[{
3.83475754283183*^9, 3.8347575451402903`*^9}, {3.834757791323676*^9,
3.834757807603224*^9}, {3.834758018406104*^9, 3.8347580192628*^9}, {
3.8347582118524027`*^9, 3.834758212224677*^9}, {3.834758276954211*^9,
3.834758277276855*^9}, {3.834758321078662*^9, 3.834758332831156*^9}},
CellLabel->"In[23]:=",ExpressionUUID->"3db5443f-dda7-4082-8ab7-96e274634389"],
Cell[BoxData[
RowBox[{
RowBox[{"pyramidFractalDimension", "[",
RowBox[{"n_", ",", "max_", ",", "delta_"}], "]"}], ":=",
RowBox[{"fractalDimensionFromG", "[",
RowBox[{
RowBox[{"N", "[",
RowBox[{"pyramidG", "[", "n", "]"}], "]"}], ",", "max", ",", "delta",
",",
RowBox[{"N", "[",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"If", "[",
RowBox[{
RowBox[{"i", "\[Equal]",
RowBox[{"n", "+", "1"}]}], ",",
RowBox[{"-", "1"}], ",",
FractionBox[
RowBox[{
RowBox[{"Sec", "[",
FractionBox["\[Pi]", "n"], "]"}], "+",
RowBox[{"Tan", "[",
FractionBox["\[Pi]", "n"], "]"}]}],
RowBox[{"Tan", "[",
FractionBox["\[Pi]", "n"], "]"}]]}], "]"}], ",",
RowBox[{"{",
RowBox[{"i", ",",
RowBox[{"n", "+", "1"}]}], "}"}]}], "]"}], "]"}]}], "]"}]}]], "Input",\
CellChangeTimes->{{3.833978967161902*^9, 3.8339789914381647`*^9}, {
3.833979205542704*^9, 3.833979255368734*^9}, {3.833979399981943*^9,
3.833979410979437*^9}, {3.8339798534902363`*^9, 3.833979853676499*^9}, {
3.8339800331837673`*^9, 3.833980033963599*^9}, {3.833981434488759*^9,
3.8339814414612226`*^9}, {3.833981948527481*^9, 3.8339819534472733`*^9}},
CellLabel->"In[25]:=",ExpressionUUID->"52eb731d-d72b-4ff7-afc4-5691e9750e37"],
Cell[BoxData[
RowBox[{
RowBox[{"pyramidTuple", "[", "n_", "]"}], ":=",
RowBox[{"N", "[",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"If", "[",
RowBox[{
RowBox[{"i", "\[Equal]", "1"}], ",",
RowBox[{"-", "1"}], ",",
FractionBox[
RowBox[{
RowBox[{"Sec", "[",
FractionBox["\[Pi]", "n"], "]"}], "+",
RowBox[{"Tan", "[",
FractionBox["\[Pi]", "n"], "]"}]}],
RowBox[{"Tan", "[",
FractionBox["\[Pi]", "n"], "]"}]]}], "]"}], ",",
RowBox[{"{",
RowBox[{"i", ",",
RowBox[{"n", "+", "1"}]}], "}"}]}], "]"}], "]"}]}]], "Input",
CellChangeTimes->{{3.8346584900042677`*^9, 3.834658495237359*^9}, {
3.834752246211548*^9, 3.834752276988707*^9}},
CellLabel->"In[26]:=",ExpressionUUID->"6e172e8f-4972-4597-9559-948bf406a2c4"],
3.834758277276855*^9}, {3.834758321078662*^9, 3.834758332831156*^9}, {
3.86468339626525*^9,
3.86468339654069*^9}},ExpressionUUID->"3db5443f-dda7-4082-8ab7-\
96e274634389"],
Cell[BoxData[{
RowBox[{
@ -1388,7 +1431,7 @@ Cell[BoxData[{
RowBox[{"-", "1"}], "1"}
}]}], ";"}]}], "Input",
CellChangeTimes->{{3.8367815709437532`*^9, 3.836781616938365*^9}},
CellLabel->"In[27]:=",ExpressionUUID->"897b1d52-af46-4e1c-8207-c0acc9e2c1f3"],
CellLabel->"In[4]:=",ExpressionUUID->"897b1d52-af46-4e1c-8207-c0acc9e2c1f3"],
Cell[BoxData[
RowBox[{
@ -8628,12 +8671,13 @@ Cell[BoxData[
}]}], ";"}]], "Input",
CellChangeTimes->{{3.8493085177656803`*^9, 3.8493085918602943`*^9}},
CellLabel->"In[43]:=",ExpressionUUID->"8fa9343c-0ee8-4e78-b216-6b629c1eb50f"]
}, Open ]]
},
WindowSize->{708., 779.25},
WindowMargins->{{Automatic, 7.5}, {7.5, Automatic}},
WindowSize->{750.75, 778.5},
WindowMargins->{{6, Automatic}, {6, Automatic}},
TaggingRules->{
"WelcomeScreenSettings" -> {"FEStarting" -> False}, "TryRealOnly" -> False},
FrontEndVersion->"12.3 for Linux x86 (64-bit) (June 19, 2021)",
FrontEndVersion->"13.0 for Linux x86 (64-bit) (February 4, 2022)",
StyleDefinitions->"Default.nb",
ExpressionUUID->"e8622aad-0bd2-483b-a68b-2a26bc5485be"
]
@ -8648,42 +8692,72 @@ CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[558, 20, 418, 9, 29, "Input",ExpressionUUID->"e1bc883b-2413-4a7d-abe0-4a19eb3f78fd"],
Cell[979, 31, 1029, 27, 71, "Input",ExpressionUUID->"025b5df5-f2a6-4cee-a294-e76ee16e74d4"],
Cell[2011, 60, 509, 11, 29, "Input",ExpressionUUID->"54cc4a6c-be37-4091-ac21-3dfd11eb53ea"],
Cell[2523, 73, 439, 11, 29, "Input",ExpressionUUID->"d3298122-6e10-4115-8e61-a949acba4e08"],
Cell[2965, 86, 1415, 34, 71, "Input",ExpressionUUID->"4e2a5664-aeb5-4dfb-88fb-7e7839ba2141"],
Cell[4383, 122, 342, 8, 29, "Input",ExpressionUUID->"c9a1b25a-8cb3-40d1-ac83-1d2405398934"],
Cell[4728, 132, 1140, 33, 92, "Input",ExpressionUUID->"30b57c08-a123-4e7d-9b0a-b512fcfecee8"],
Cell[5871, 167, 740, 20, 51, "Input",ExpressionUUID->"e30807a9-5381-4ad1-b9fd-a6a877ae69fe"],
Cell[6614, 189, 671, 19, 51, "Input",ExpressionUUID->"d1264330-efcb-4ca7-a1c2-f6744f28eebe"],
Cell[7288, 210, 708, 19, 71, "Input",ExpressionUUID->"efd0e321-9f31-4641-bf42-f73e16044635"],
Cell[7999, 231, 548, 14, 51, "Input",ExpressionUUID->"810323e6-91cb-44f2-ad55-323fbec422eb"],
Cell[8550, 247, 702, 19, 51, "Input",ExpressionUUID->"948959db-c926-4458-9e45-ef7f3fb99ba5"],
Cell[9255, 268, 996, 28, 71, "Input",ExpressionUUID->"e7b8a43b-0fbc-4073-928d-10a091e21dd7"],
Cell[10254, 298, 4042, 107, 360, "Input",ExpressionUUID->"5cb4f612-3c02-42ac-ad57-4fb2daf3366b"],
Cell[14299, 407, 10810, 230, 402, "Input",ExpressionUUID->"df61872a-1e93-4b2b-ad66-1c8fee203402"],
Cell[25112, 639, 7334, 180, 422, "Input",ExpressionUUID->"dab3b84f-3f49-42e4-9bc4-79cb6408f946"],
Cell[32449, 821, 912, 24, 29, "Input",ExpressionUUID->"bd52b017-bd99-4bdf-9126-b7c62804c9f2"],
Cell[33364, 847, 443, 11, 29, "Input",ExpressionUUID->"5ef8c91b-dd7a-440d-b44e-513ae9efffca"],
Cell[33810, 860, 5511, 134, 182, "Input",ExpressionUUID->"2ffd6cba-1ba3-4c73-8457-ef7fc5958282"],
Cell[39324, 996, 5346, 111, 113, "Input",ExpressionUUID->"4186f080-27d0-474f-9433-7cdeb3a7a49d"],
Cell[44673, 1109, 2787, 67, 262, "Input",ExpressionUUID->"3971d33a-d19f-42ea-9b17-0801f7a59659"],
Cell[47463, 1178, 3212, 89, 130, "Input",ExpressionUUID->"3db5443f-dda7-4082-8ab7-96e274634389"],
Cell[50678, 1269, 1383, 34, 65, "Input",ExpressionUUID->"52eb731d-d72b-4ff7-afc4-5691e9750e37"],
Cell[52064, 1305, 843, 23, 65, "Input",ExpressionUUID->"6e172e8f-4972-4597-9559-948bf406a2c4"],
Cell[52910, 1330, 1581, 60, 196, "Input",ExpressionUUID->"897b1d52-af46-4e1c-8207-c0acc9e2c1f3"],
Cell[54494, 1392, 1861, 70, 147, "Input",ExpressionUUID->"a88926ed-6f50-457b-9480-401929196ff8"],
Cell[56358, 1464, 1550, 60, 137, "Input",ExpressionUUID->"ac2fc7fb-1a08-4495-8c53-210ad6f3664b"],
Cell[57911, 1526, 9993, 307, 257, "Input",ExpressionUUID->"609d9edf-fd45-4e4e-aae5-f4d3cc6359f5"],
Cell[67907, 1835, 4066, 151, 216, "Input",ExpressionUUID->"294e535d-e3a7-4a1d-8c24-303f127653b2"],
Cell[71976, 1988, 7538, 274, 221, "Input",ExpressionUUID->"45d67d9a-02e6-48ac-8e3a-435a001307e6"],
Cell[79517, 2264, 5347, 201, 250, "Input",ExpressionUUID->"65e20246-7792-4c97-b2ee-553e60d6428e"],
Cell[84867, 2467, 49457, 1063, 2691, "Input",ExpressionUUID->"1c98ab0f-7be0-4b82-83f8-0a1739369b4d"],
Cell[134327, 3532, 172929, 3666, 9909, "Input",ExpressionUUID->"239a4292-049d-4293-9674-7e78c28ca011"],
Cell[307259, 7200, 1486, 55, 125, "Input",ExpressionUUID->"b6c05a3c-d9ef-41f8-9987-9bf57f74096c"],
Cell[308748, 7257, 42950, 1327, 1659, "Input",ExpressionUUID->"851b8d35-e5c6-40f2-826f-018f704c8a73"],
Cell[351701, 8586, 1167, 43, 129, "Input",ExpressionUUID->"8fa9343c-0ee8-4e78-b216-6b629c1eb50f"]
Cell[CellGroupData[{
Cell[580, 22, 162, 3, 68, "Section",ExpressionUUID->"d9d62207-947e-4a55-994c-be968ba39c8b"],
Cell[CellGroupData[{
Cell[767, 29, 186, 3, 54, "Subsection",ExpressionUUID->"ffcc14d7-54b2-406a-8618-9531332769aa"],
Cell[956, 34, 248, 5, 35, "Text",ExpressionUUID->"ac72a206-5663-4fb8-9a75-6d188f4c76e1"],
Cell[1207, 41, 418, 9, 29, "Input",ExpressionUUID->"e1bc883b-2413-4a7d-abe0-4a19eb3f78fd"],
Cell[1628, 52, 949, 22, 59, "Text",ExpressionUUID->"87b40a25-ff96-4305-b802-220d3c3714ee"],
Cell[2580, 76, 1029, 27, 71, "Input",ExpressionUUID->"025b5df5-f2a6-4cee-a294-e76ee16e74d4"],
Cell[3612, 105, 250, 6, 35, "Text",ExpressionUUID->"03438c1b-508d-4333-9054-9967574ef3d3"],
Cell[3865, 113, 509, 11, 29, "Input",ExpressionUUID->"54cc4a6c-be37-4091-ac21-3dfd11eb53ea"],
Cell[4377, 126, 334, 7, 58, "Text",ExpressionUUID->"b44fae9e-11fd-4fea-9594-87a6c311bec8"],
Cell[4714, 135, 439, 11, 29, "Input",ExpressionUUID->"d3298122-6e10-4115-8e61-a949acba4e08"],
Cell[5156, 148, 223, 5, 35, "Text",ExpressionUUID->"551afa7d-856b-46fe-8670-51fd64eff7cc"],
Cell[5382, 155, 1416, 34, 71, "Input",ExpressionUUID->"4e2a5664-aeb5-4dfb-88fb-7e7839ba2141"],
Cell[6801, 191, 163, 3, 35, "Text",ExpressionUUID->"7914b40a-8924-4161-b52d-1ca82c95c0c4"],
Cell[6967, 196, 342, 8, 29, "Input",ExpressionUUID->"c9a1b25a-8cb3-40d1-ac83-1d2405398934"],
Cell[7312, 206, 331, 7, 58, "Text",ExpressionUUID->"777e5618-fae9-4bb5-b529-4f4902364898"],
Cell[7646, 215, 1141, 33, 92, "Input",ExpressionUUID->"30b57c08-a123-4e7d-9b0a-b512fcfecee8"],
Cell[8790, 250, 591, 15, 35, "Text",ExpressionUUID->"c96de117-3c03-4391-9112-59dc2aa87e38"],
Cell[9384, 267, 740, 20, 51, "Input",ExpressionUUID->"e30807a9-5381-4ad1-b9fd-a6a877ae69fe"],
Cell[10127, 289, 671, 19, 29, "Input",ExpressionUUID->"d1264330-efcb-4ca7-a1c2-f6744f28eebe"],
Cell[10801, 310, 708, 19, 71, "Input",ExpressionUUID->"efd0e321-9f31-4641-bf42-f73e16044635"],
Cell[11512, 331, 548, 14, 51, "Input",ExpressionUUID->"810323e6-91cb-44f2-ad55-323fbec422eb"]
}, Open ]],
Cell[CellGroupData[{
Cell[12097, 350, 162, 3, 54, "Subsection",ExpressionUUID->"30f99b83-ea38-48b2-b913-e9a970532db2"],
Cell[12262, 355, 221, 5, 35, "Text",ExpressionUUID->"4192620c-85de-4442-8b77-a4f0439b11b4"],
Cell[12486, 362, 702, 19, 51, "Input",ExpressionUUID->"948959db-c926-4458-9e45-ef7f3fb99ba5"],
Cell[13191, 383, 721, 16, 81, "Text",ExpressionUUID->"652feb5a-94e0-4b51-96b7-66625315f8ef"],
Cell[13915, 401, 996, 28, 71, "Input",ExpressionUUID->"e7b8a43b-0fbc-4073-928d-10a091e21dd7"],
Cell[14914, 431, 4042, 107, 360, "Input",ExpressionUUID->"5cb4f612-3c02-42ac-ad57-4fb2daf3366b"]
}, Open ]],
Cell[CellGroupData[{
Cell[18993, 543, 235, 4, 54, "Subsection",ExpressionUUID->"a54eae0a-eac8-4408-bb48-69eb10a7147f"],
Cell[19231, 549, 404, 8, 58, "Text",ExpressionUUID->"6773c37a-4ed3-4315-9304-64d7ebb905b7"],
Cell[19638, 559, 10810, 230, 546, "Input",ExpressionUUID->"df61872a-1e93-4b2b-ad66-1c8fee203402"],
Cell[30451, 791, 7334, 180, 546, "Input",ExpressionUUID->"dab3b84f-3f49-42e4-9bc4-79cb6408f946"],
Cell[37788, 973, 912, 24, 92, "Input",ExpressionUUID->"bd52b017-bd99-4bdf-9126-b7c62804c9f2"],
Cell[38703, 999, 380, 8, 81, "Text",ExpressionUUID->"371e76d7-c3be-4ee9-ab19-eeefafc86d34"],
Cell[39086, 1009, 443, 11, 29, "Input",ExpressionUUID->"5ef8c91b-dd7a-440d-b44e-513ae9efffca"],
Cell[39532, 1022, 274, 6, 35, "Text",ExpressionUUID->"09cd9547-a570-4ff5-bee6-11977bff1c99"],
Cell[39809, 1030, 560, 15, 51, "Input",ExpressionUUID->"14db2bfc-ecf5-4a97-90fa-8126e86e9190"]
}, Open ]],
Cell[CellGroupData[{
Cell[40406, 1050, 260, 6, 81, "Subsection",ExpressionUUID->"9a9baebc-6ebe-40af-9838-fbc4f0a61e63"],
Cell[40669, 1058, 452, 8, 81, "Text",ExpressionUUID->"a40f213a-0639-4531-af71-cb3759d226bb"],
Cell[41124, 1068, 5346, 111, 216, "Input",ExpressionUUID->"4186f080-27d0-474f-9433-7cdeb3a7a49d"],
Cell[46473, 1181, 2787, 67, 283, "Input",ExpressionUUID->"3971d33a-d19f-42ea-9b17-0801f7a59659"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[49309, 1254, 160, 3, 68, "Section",ExpressionUUID->"38a90e2b-8230-44d5-9ded-1a7e10c86573"],
Cell[49472, 1259, 3892, 112, 296, "Input",ExpressionUUID->"3db5443f-dda7-4082-8ab7-96e274634389"],
Cell[53367, 1373, 1580, 60, 196, "Input",ExpressionUUID->"897b1d52-af46-4e1c-8207-c0acc9e2c1f3"],
Cell[54950, 1435, 1861, 70, 147, "Input",ExpressionUUID->"a88926ed-6f50-457b-9480-401929196ff8"],
Cell[56814, 1507, 1550, 60, 137, "Input",ExpressionUUID->"ac2fc7fb-1a08-4495-8c53-210ad6f3664b"],
Cell[58367, 1569, 9993, 307, 504, "Input",ExpressionUUID->"609d9edf-fd45-4e4e-aae5-f4d3cc6359f5"],
Cell[68363, 1878, 4066, 151, 216, "Input",ExpressionUUID->"294e535d-e3a7-4a1d-8c24-303f127653b2"],
Cell[72432, 2031, 7538, 274, 221, "Input",ExpressionUUID->"45d67d9a-02e6-48ac-8e3a-435a001307e6"],
Cell[79973, 2307, 5347, 201, 250, "Input",ExpressionUUID->"65e20246-7792-4c97-b2ee-553e60d6428e"],
Cell[85323, 2510, 49457, 1063, 2711, "Input",ExpressionUUID->"1c98ab0f-7be0-4b82-83f8-0a1739369b4d"],
Cell[134783, 3575, 172929, 3666, 9909, "Input",ExpressionUUID->"239a4292-049d-4293-9674-7e78c28ca011"],
Cell[307715, 7243, 1486, 55, 125, "Input",ExpressionUUID->"b6c05a3c-d9ef-41f8-9987-9bf57f74096c"],
Cell[309204, 7300, 42950, 1327, 834, "Input",ExpressionUUID->"851b8d35-e5c6-40f2-826f-018f704c8a73"],
Cell[352157, 8629, 1167, 43, 129, "Input",ExpressionUUID->"8fa9343c-0ee8-4e78-b216-6b629c1eb50f"]
}, Open ]]
}
]
*)

File diff suppressed because it is too large Load diff

View file

@ -10,16 +10,37 @@
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 158, 7]
NotebookDataLength[ 47999, 1161]
NotebookOptionsPosition[ 43133, 1093]
NotebookOutlinePosition[ 43534, 1109]
CellTagsIndexPosition[ 43491, 1106]
NotebookDataLength[ 37091, 924]
NotebookOptionsPosition[ 32922, 863]
NotebookOutlinePosition[ 33321, 879]
CellTagsIndexPosition[ 33278, 876]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[CellGroupData[{
Cell["Early Attempt at Finding Gram Matrices", "Title",
CellChangeTimes->{{3.864735481164455*^9,
3.864735489248959*^9}},ExpressionUUID->"c51c1c8b-2540-4a63-92f6-\
4e7d3d5f9d76"],
Cell["\<\
The goal here was to use a formula found by Dylan to construct a massive \
system of equations and attempt to chuck it into \
Mathematica\[CloseCurlyQuote]s Solve function in hopes of getting the gram \
matrix out the other end, but this code at least didn\[CloseCurlyQuote]t end \
up working particularly well. There is no guarantee that these equations are \
solvable, which is unfortunate, and I think there are some mistakes or \
something in this implementation, because it should work with some polyhedra.\
\
\>", "Text",
CellChangeTimes->{{3.864735500116888*^9,
3.8647356437317877`*^9}},ExpressionUUID->"c3406f07-a0d8-4f8a-a2e4-\
1d424c3c89ef"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Get", "[",
"\"\<https://raw.githubusercontent.com/szhorvat/IGraphM/master/IGInstaller.\
@ -37,10 +58,10 @@ Cell[BoxData[
"The currently installed versions of IGraph/M are: ", {"0.5.1"}],
Editable->False]], "Print",
CellChangeTimes->{3.8321516294929905`*^9, 3.8321792446538467`*^9,
3.8321888483607073`*^9, 3.83223375355267*^9},
3.8321888483607073`*^9, 3.83223375355267*^9, 3.864734398606039*^9},
CellLabel->
"During evaluation of \
In[1]:=",ExpressionUUID->"fa2b838b-e3df-4e8d-9350-d8f470c0acc1"],
In[1]:=",ExpressionUUID->"9a0f644e-76e7-49b2-bf2e-a5a0439d2bff"],
Cell[BoxData[
TemplateBox[{
@ -50,13 +71,13 @@ with the same version number \
(\\!\\(\\*RowBox[{\\\"\\\\\\\"0.5.1\\\\\\\"\\\"}]\\)) is already installed. \
Use PacletUninstall to remove the existing version first, or call \
PacletInstall with ForceVersionInstall -> True.\"", 2, 1, 1,
26206157531447520602, "Local"},
18949302130080748064, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{3.83217924731254*^9, 3.832188855090274*^9,
3.832233757585519*^9},
3.832233757585519*^9, 3.864734407033389*^9},
CellLabel->
"During evaluation of \
In[1]:=",ExpressionUUID->"7cedf722-9dff-466e-8c29-7474221bbcff"],
In[1]:=",ExpressionUUID->"1c5f7cf6-0738-487e-8e29-494d036393b4"],
Cell[BoxData[
InterpretationBox[
@ -70,10 +91,10 @@ Cell[BoxData[
Hyperlink["https://github.com/szhorvat/IGraphM#installation"]],
Editable->False]], "Print",
CellChangeTimes->{3.8321516294929905`*^9, 3.8321792446538467`*^9,
3.8321888483607073`*^9, 3.832233757594738*^9},
3.8321888483607073`*^9, 3.83223375355267*^9, 3.864734407044916*^9},
CellLabel->
"During evaluation of \
In[1]:=",ExpressionUUID->"bc4bba27-1aaf-4b2a-b377-2ee419fb494f"]
In[1]:=",ExpressionUUID->"f93216f6-8658-427f-a66d-a212aa30c39f"]
}, Open ]],
Cell[CellGroupData[{
@ -94,8 +115,8 @@ Cell[BoxData[
GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
"Column"]], "Output",
CellChangeTimes->{3.8321516533863616`*^9, 3.832179248194338*^9,
3.832188856442923*^9, 3.832233758550943*^9},
CellLabel->"Out[2]=",ExpressionUUID->"eb6e8d8d-44bf-42ef-b37b-df6773c2cd46"]
3.832188856442923*^9, 3.832233758550943*^9, 3.864734408212185*^9},
CellLabel->"Out[2]=",ExpressionUUID->"31c0c59f-a2fa-4297-b979-9547b625ff8b"]
}, Open ]],
Cell["Takes adjacency matrix and spits out graph", "Text",
@ -116,7 +137,7 @@ Cell[BoxData[
3.832157281243805*^9}, {3.83215738072911*^9, 3.832157439845132*^9}, {
3.8321578106356897`*^9, 3.8321578374593196`*^9}, {3.8321581875796967`*^9,
3.832158191258052*^9}},
CellLabel->"In[4]:=",ExpressionUUID->"7e4471aa-3419-4361-9954-ca85e8fdbcea"],
CellLabel->"In[3]:=",ExpressionUUID->"7e4471aa-3419-4361-9954-ca85e8fdbcea"],
Cell["Takes adjacency matrix and spits out dual graph", "Text",
CellChangeTimes->{{3.832168678589355*^9,
@ -135,7 +156,7 @@ Cell[BoxData[
CellChangeTimes->{{3.832157448820382*^9, 3.832157476669551*^9}, {
3.832157847353641*^9, 3.832157909605048*^9}, {3.83215819890162*^9,
3.832158204194887*^9}},
CellLabel->"In[5]:=",ExpressionUUID->"64960a86-3c40-410a-a0bf-67dc0dda7253"],
CellLabel->"In[4]:=",ExpressionUUID->"64960a86-3c40-410a-a0bf-67dc0dda7253"],
Cell["Takes adjacency matrix and spits out dual adjacency matrix", "Text",
CellChangeTimes->{{3.832168708906446*^9,
@ -150,7 +171,7 @@ Cell[BoxData[
RowBox[{"dgraph", "[", "adjmat", "]"}], "]"}], "]"}]}]], "Input",
CellChangeTimes->{{3.8321574651675024`*^9, 3.8321575207418165`*^9}, {
3.832157919355533*^9, 3.832157942375414*^9}},
CellLabel->"In[6]:=",ExpressionUUID->"2df0273a-68b0-4420-a181-5533de3142ef"],
CellLabel->"In[5]:=",ExpressionUUID->"2df0273a-68b0-4420-a181-5533de3142ef"],
Cell["\<\
Takes adjacency matrix, graph, dual adjacency matrix, and dual graph and \
@ -280,7 +301,7 @@ Cell[BoxData[
CellChangeTimes->{{3.8321575269876523`*^9, 3.8321576763644238`*^9}, {
3.832159927387419*^9, 3.8321599288063574`*^9}, {3.832178568505596*^9,
3.8321785886368113`*^9}},
CellLabel->"In[7]:=",ExpressionUUID->"466eedf4-1501-4c34-b467-6afcd6ee9c2b"],
CellLabel->"In[6]:=",ExpressionUUID->"466eedf4-1501-4c34-b467-6afcd6ee9c2b"],
Cell["\<\
Computes entire extended gram matrix just given adjacency graph\
@ -299,15 +320,14 @@ Cell[BoxData[
RowBox[{"dgraph", "[", "adjmat", "]"}]}], "]"}]}]], "Input",
CellChangeTimes->{{3.832159893936446*^9, 3.832159919205484*^9},
3.832159950380535*^9, {3.832168786146203*^9, 3.832168807346489*^9}},
CellLabel->"In[8]:=",ExpressionUUID->"07904a6d-75de-42b6-bd6e-25258c9dfc13"],
CellLabel->"In[7]:=",ExpressionUUID->"07904a6d-75de-42b6-bd6e-25258c9dfc13"],
Cell[TextData[{
"Dylan\[CloseCurlyQuote]s formula: computes ",
Cell[BoxData[
FormBox[
SubscriptBox["\[Alpha]",
RowBox[{"i", ",", "j"}]], TraditionalForm]],
FormatType->TraditionalForm,ExpressionUUID->
RowBox[{"i", ",", "j"}]], TraditionalForm]],ExpressionUUID->
"b3c7d5f4-d091-4a74-aebc-91ee5194a0e1"],
" given all bilinear forms between two tangent circles, c1 and c2, and their \
shared dual circle d"
@ -383,7 +403,7 @@ Cell[BoxData[
CellChangeTimes->{{3.8321784141799994`*^9, 3.832178465721493*^9}, {
3.83217860325821*^9, 3.832178655554688*^9}, {3.83217875635993*^9,
3.832178873607215*^9}},
CellLabel->"In[9]:=",ExpressionUUID->"bf8ef1f1-47be-4283-b703-c185b6f0b640"],
CellLabel->"In[8]:=",ExpressionUUID->"bf8ef1f1-47be-4283-b703-c185b6f0b640"],
Cell["\<\
Uses Dylan\[CloseCurlyQuote]s formula and the extended gram matrix to create \
@ -406,7 +426,7 @@ Cell[BoxData[
RowBox[{"i", ",", "j"}], "\[RightDoubleBracket]"}]}]}]], "Input",
CellChangeTimes->{{3.832179077629673*^9, 3.832179079427682*^9}, {
3.8321791928839073`*^9, 3.832179236666037*^9}},
CellLabel->"In[10]:=",ExpressionUUID->"420e0d3e-8926-42c8-bf5b-90e13c9517d3"],
CellLabel->"In[9]:=",ExpressionUUID->"420e0d3e-8926-42c8-bf5b-90e13c9517d3"],
Cell["Creates a list of all relevant variables", "Text",
CellChangeTimes->{{3.832188674746522*^9,
@ -431,7 +451,7 @@ Cell[BoxData[
RowBox[{"n", "+", "m"}]}], "}"}]}], "]"}], "]"}]}]], "Input",
CellChangeTimes->{{3.832180251879418*^9, 3.832180286404707*^9}, {
3.83218032560913*^9, 3.832180334849931*^9}},
CellLabel->"In[11]:=",ExpressionUUID->"6be67f5a-9ae0-4ab1-a49b-076a5355b7fb"],
CellLabel->"In[10]:=",ExpressionUUID->"6be67f5a-9ae0-4ab1-a49b-076a5355b7fb"],
Cell["\<\
Given the adjacency matrix and which three rows/columns to pick (I\
@ -453,7 +473,8 @@ Cell[BoxData[
RowBox[{"{",
RowBox[{
"Gext", ",", "c1s", ",", "c2s", ",", "ds", ",", "n", ",", "m", ",",
"rules", ",", "assumptions"}], "}"}], ",", "\[IndentingNewLine]",
"rules", ",", "assumptions", ",", "temp"}], "}"}], ",",
"\[IndentingNewLine]",
RowBox[{
RowBox[{"n", "=",
RowBox[{"Length", "[", "adjmat", "]"}]}], ";", "\[IndentingNewLine]",
@ -517,12 +538,17 @@ Cell[BoxData[
RowBox[{"n", "+", "m"}]}], "}"}]}], "]"}], "]"}], "//",
RowBox[{"DeleteCases", "[",
RowBox[{"Indeterminate", "\[Equal]", "__"}], "]"}]}], "//",
"Simplify"}], "//",
RowBox[{"DeleteCases", "[", "True", "]"}]}], ",",
RowBox[{"Assumptions", "\[Rule]", "assumptions"}]}], "]"}],
"\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], ";",
"\[IndentingNewLine]",
RowBox[{"Gext", "/.", "rules"}]}]}], "]"}]}]], "Input",
RowBox[{"DeleteCases", "[", "False", "]"}]}], "//", "Simplify"}], "//",
RowBox[{"DeleteCases", "[", "True", "]"}]}], "]"}], "[",
RowBox[{"[", "1", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"temp", "=",
RowBox[{"Gext", "/.", "rules"}]}], ";", "\[IndentingNewLine]",
RowBox[{"temp", "/.",
RowBox[{
RowBox[{"Solve", "[",
RowBox[{
RowBox[{"Det", "[", "temp", "]"}], "==", "0"}], "]"}], "[",
RowBox[{"[", "1", "]"}], "]"}]}]}]}], "]"}]}]], "Input",
CellChangeTimes->{{3.832179291894788*^9, 3.832179514217531*^9}, {
3.83217965960777*^9, 3.8321797806519737`*^9}, {3.832182725009789*^9,
3.832182755832143*^9}, {3.83218306930501*^9, 3.832183092163796*^9}, {
@ -537,8 +563,11 @@ Cell[BoxData[
3.8321862618199997`*^9}, {3.8321863613697853`*^9,
3.8321863669835577`*^9}, {3.832186452371193*^9, 3.832186456250992*^9}, {
3.832236951287407*^9, 3.8322369831425056`*^9}, {3.832237035633595*^9,
3.832237063324972*^9}},
CellLabel->"In[26]:=",ExpressionUUID->"f4f2f39c-a979-492f-a025-beb69389c674"],
3.832237063324972*^9}, {3.86473485530978*^9, 3.8647348676504307`*^9}, {
3.864735093226548*^9, 3.864735157772408*^9}, {3.864735190139861*^9,
3.8647352196850433`*^9}, {3.864735266280509*^9, 3.8647353129208384`*^9},
3.864735346875978*^9, {3.8647360522199173`*^9, 3.864736100541009*^9}},
CellLabel->"In[88]:=",ExpressionUUID->"f4f2f39c-a979-492f-a025-beb69389c674"],
Cell["Same as above, but numerically approximates it.", "Text",
CellChangeTimes->{{3.832188787533435*^9,
@ -628,195 +657,145 @@ Cell[BoxData[
3.832186922217325*^9}, {3.832187020117702*^9, 3.832187021912196*^9}, {
3.8321871707702923`*^9, 3.8321871736438*^9}, {3.8321877632435617`*^9,
3.832187771381138*^9}, {3.83218786469829*^9, 3.832187868963749*^9}, {
3.8322340786657343`*^9,
3.8322341092778482`*^9}},ExpressionUUID->"e9aabedc-e11e-4cce-a76e-\
c710d3384ca9"],
3.8322340786657343`*^9, 3.8322341092778482`*^9}},
CellLabel->"In[12]:=",ExpressionUUID->"e9aabedc-e11e-4cce-a76e-c710d3384ca9"],
Cell["Example usage. This is the square pyramid.", "Text",
CellChangeTimes->{{3.832188805201276*^9,
3.8321888300331697`*^9}},ExpressionUUID->"f2486377-4c48-4788-b4f2-\
4a8d1780f87e"],
Cell["It almost works with the tetrahedron.", "Text",
CellChangeTimes->{{3.864739016815413*^9,
3.8647390212370787`*^9}},ExpressionUUID->"253b2ba5-d3d8-487f-ae0b-\
3c5567445616"],
Cell[BoxData[
RowBox[{
RowBox[{"tetradj", "=",
RowBox[{
RowBox[{"PolyhedronData", "[",
RowBox[{"\"\<Tetrahedron\>\"", ",", "\"\<Skeleton\>\""}], "]"}], "//",
"AdjacencyMatrix"}]}], ";"}]], "Input",
CellChangeTimes->{{3.864735715391293*^9, 3.864735755599956*^9}, {
3.864736030861405*^9, 3.864736034053837*^9}},
CellLabel->"In[83]:=",ExpressionUUID->"7ae018a2-0992-4320-92df-75ee8f9717e1"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
RowBox[{"findGextGivenAdjacency", "[",
RowBox[{GridBox[{
{"0", "1", "1", "1", "1"},
{"1", "0", "1", "0", "1"},
{"1", "1", "0", "1", "0"},
{"1", "0", "1", "0", "1"},
{"1", "1", "0", "1", "0"}
}], ",", "1", ",", "2", ",", "6"}], "]"}], "//", "MatrixForm"}]], "Input",\
CellChangeTimes->{{3.8321795177164*^9, 3.83217952091615*^9}, {
3.832179604052969*^9, 3.83217964535808*^9}, {3.832179812603285*^9,
3.83217989257692*^9}, {3.832182603982696*^9, 3.832182604549707*^9}, {
3.8321828395592403`*^9, 3.832182841112955*^9}, {3.832182959883296*^9,
3.83218298064507*^9}, {3.8321830977278214`*^9, 3.832183138998757*^9}, {
3.832183230730062*^9, 3.832183292328827*^9}, {3.832183519680952*^9,
3.8321835213661003`*^9}, {3.832183609148136*^9, 3.8321836229774103`*^9}, {
3.8321862070609922`*^9, 3.832186218032998*^9}, {3.832186249390174*^9,
3.832186256142555*^9}, {3.8321863924121113`*^9, 3.8321864066698523`*^9}},
CellLabel->"In[27]:=",ExpressionUUID->"43731109-f22e-4624-b7f9-248becc79bba"],
RowBox[{"tetradj", ",", "1", ",", "2", ",", "5"}], "]"}], "//",
"MatrixForm"}]], "Input",
CellChangeTimes->{{3.8647359788048897`*^9, 3.864735984616076*^9}, {
3.8647360377017927`*^9, 3.8647360448476257`*^9}, {3.864736109557313*^9,
3.8647361135524054`*^9}},
CellLabel->"In[91]:=",ExpressionUUID->"29c4fd45-69f8-4308-84f3-0c9572c9bb55"],
Cell[BoxData[
TemplateBox[{
"Power", "infy",
"\"Infinite expression \\!\\(\\*FractionBox[\\\"1\\\", \\\"0\\\"]\\) \
encountered.\"", 2, 27, 79, 26206157531447520602, "Local"},
encountered.\"", 2, 91, 252, 18949302130080748064, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.832182763093258*^9, 3.832182841541271*^9, 3.832182981310091*^9, {
3.832183101347535*^9, 3.8321831394150257`*^9}, {3.832183231556478*^9,
3.832183293258604*^9}, {3.8321835084041348`*^9, 3.8321835219952707`*^9}, {
3.832183610774363*^9, 3.832183624231565*^9}, 3.8321860021042147`*^9,
3.8321860748628817`*^9, 3.832186146263523*^9, {3.832186194392118*^9,
3.832186256895705*^9}, {3.83218639372544*^9, 3.832186459711775*^9},
3.832188871475355*^9, 3.832233759272257*^9, 3.8322357555615997`*^9,
3.8322369958376913`*^9, 3.832237070276142*^9},
3.8647359857098017`*^9, {3.86473604066442*^9, 3.864736055281802*^9}, {
3.864736105160235*^9, 3.8647361139153233`*^9}},
CellLabel->
"During evaluation of \
In[27]:=",ExpressionUUID->"c7c9db08-bc46-4183-ad6b-6d4b18afab25"],
In[91]:=",ExpressionUUID->"069ce30e-51da-464a-9286-8ce88168184b"],
Cell[BoxData[
TemplateBox[{
"Infinity", "indet",
"\"Indeterminate expression \\!\\(\\*RowBox[{\\\"0\\\", \\\" \\\", \
\\\"ComplexInfinity\\\"}]\\) encountered.\"", 2, 27, 80, 26206157531447520602,
"Local"},
\\\"ComplexInfinity\\\"}]\\) encountered.\"", 2, 91, 253,
18949302130080748064, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.832182763093258*^9, 3.832182841541271*^9, 3.832182981310091*^9, {
3.832183101347535*^9, 3.8321831394150257`*^9}, {3.832183231556478*^9,
3.832183293258604*^9}, {3.8321835084041348`*^9, 3.8321835219952707`*^9}, {
3.832183610774363*^9, 3.832183624231565*^9}, 3.8321860021042147`*^9,
3.8321860748628817`*^9, 3.832186146263523*^9, {3.832186194392118*^9,
3.832186256895705*^9}, {3.83218639372544*^9, 3.832186459711775*^9},
3.832188871475355*^9, 3.832233759272257*^9, 3.8322357555615997`*^9,
3.8322369958376913`*^9, 3.832237070280217*^9},
3.8647359857098017`*^9, {3.86473604066442*^9, 3.864736055281802*^9}, {
3.864736105160235*^9, 3.864736113926489*^9}},
CellLabel->
"During evaluation of \
In[27]:=",ExpressionUUID->"f993da93-45d0-49f8-83fd-06a87a8acf55"],
In[91]:=",ExpressionUUID->"11f99cbe-866b-4da5-846c-40c55dd85cc9"],
Cell[BoxData[
TemplateBox[{
"Power", "infy",
"\"Infinite expression \\!\\(\\*FractionBox[\\\"1\\\", \\\"0\\\"]\\) \
encountered.\"", 2, 27, 81, 26206157531447520602, "Local"},
encountered.\"", 2, 91, 254, 18949302130080748064, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.832182763093258*^9, 3.832182841541271*^9, 3.832182981310091*^9, {
3.832183101347535*^9, 3.8321831394150257`*^9}, {3.832183231556478*^9,
3.832183293258604*^9}, {3.8321835084041348`*^9, 3.8321835219952707`*^9}, {
3.832183610774363*^9, 3.832183624231565*^9}, 3.8321860021042147`*^9,
3.8321860748628817`*^9, 3.832186146263523*^9, {3.832186194392118*^9,
3.832186256895705*^9}, {3.83218639372544*^9, 3.832186459711775*^9},
3.832188871475355*^9, 3.832233759272257*^9, 3.8322357555615997`*^9,
3.8322369958376913`*^9, 3.8322370702837954`*^9},
3.8647359857098017`*^9, {3.86473604066442*^9, 3.864736055281802*^9}, {
3.864736105160235*^9, 3.864736113934101*^9}},
CellLabel->
"During evaluation of \
In[27]:=",ExpressionUUID->"8480abda-d8d0-4a9d-b8d2-cbc431df84ba"],
In[91]:=",ExpressionUUID->"6c511ac6-894a-42d0-85ca-2f409b91ffb4"],
Cell[BoxData[
TemplateBox[{
"Infinity", "indet",
"\"Indeterminate expression \\!\\(\\*RowBox[{\\\"0\\\", \\\" \\\", \
\\\"ComplexInfinity\\\"}]\\) encountered.\"", 2, 27, 82, 26206157531447520602,
"Local"},
\\\"ComplexInfinity\\\"}]\\) encountered.\"", 2, 91, 255,
18949302130080748064, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.832182763093258*^9, 3.832182841541271*^9, 3.832182981310091*^9, {
3.832183101347535*^9, 3.8321831394150257`*^9}, {3.832183231556478*^9,
3.832183293258604*^9}, {3.8321835084041348`*^9, 3.8321835219952707`*^9}, {
3.832183610774363*^9, 3.832183624231565*^9}, 3.8321860021042147`*^9,
3.8321860748628817`*^9, 3.832186146263523*^9, {3.832186194392118*^9,
3.832186256895705*^9}, {3.83218639372544*^9, 3.832186459711775*^9},
3.832188871475355*^9, 3.832233759272257*^9, 3.8322357555615997`*^9,
3.8322369958376913`*^9, 3.83223707028797*^9},
3.8647359857098017`*^9, {3.86473604066442*^9, 3.864736055281802*^9}, {
3.864736105160235*^9, 3.864736113941854*^9}},
CellLabel->
"During evaluation of \
In[27]:=",ExpressionUUID->"e278507f-245d-47f1-b517-549c7ed89349"],
In[91]:=",ExpressionUUID->"ea03061f-1629-49a1-8e21-d5adb3b3c4a0"],
Cell[BoxData[
TemplateBox[{
"Power", "infy",
"\"Infinite expression \\!\\(\\*FractionBox[\\\"1\\\", \\\"0\\\"]\\) \
encountered.\"", 2, 27, 83, 26206157531447520602, "Local"},
encountered.\"", 2, 91, 256, 18949302130080748064, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.832182763093258*^9, 3.832182841541271*^9, 3.832182981310091*^9, {
3.832183101347535*^9, 3.8321831394150257`*^9}, {3.832183231556478*^9,
3.832183293258604*^9}, {3.8321835084041348`*^9, 3.8321835219952707`*^9}, {
3.832183610774363*^9, 3.832183624231565*^9}, 3.8321860021042147`*^9,
3.8321860748628817`*^9, 3.832186146263523*^9, {3.832186194392118*^9,
3.832186256895705*^9}, {3.83218639372544*^9, 3.832186459711775*^9},
3.832188871475355*^9, 3.832233759272257*^9, 3.8322357555615997`*^9,
3.8322369958376913`*^9, 3.832237070292264*^9},
3.8647359857098017`*^9, {3.86473604066442*^9, 3.864736055281802*^9}, {
3.864736105160235*^9, 3.8647361139498653`*^9}},
CellLabel->
"During evaluation of \
In[27]:=",ExpressionUUID->"03a6534e-77ef-4bb4-b244-a417a4f2a3dd"],
In[91]:=",ExpressionUUID->"effee00e-250a-4dbb-a7e5-dfe6fb7defea"],
Cell[BoxData[
TemplateBox[{
"General", "stop",
"\"Further output of \\!\\(\\*StyleBox[RowBox[{\\\"Power\\\", \\\"::\\\", \
\\\"infy\\\"}], \\\"MessageName\\\"]\\) will be suppressed during this \
calculation.\"", 2, 27, 84, 26206157531447520602, "Local"},
calculation.\"", 2, 91, 257, 18949302130080748064, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.832182763093258*^9, 3.832182841541271*^9, 3.832182981310091*^9, {
3.832183101347535*^9, 3.8321831394150257`*^9}, {3.832183231556478*^9,
3.832183293258604*^9}, {3.8321835084041348`*^9, 3.8321835219952707`*^9}, {
3.832183610774363*^9, 3.832183624231565*^9}, 3.8321860021042147`*^9,
3.8321860748628817`*^9, 3.832186146263523*^9, {3.832186194392118*^9,
3.832186256895705*^9}, {3.83218639372544*^9, 3.832186459711775*^9},
3.832188871475355*^9, 3.832233759272257*^9, 3.8322357555615997`*^9,
3.8322369958376913`*^9, 3.8322370702960443`*^9},
3.8647359857098017`*^9, {3.86473604066442*^9, 3.864736055281802*^9}, {
3.864736105160235*^9, 3.8647361139582453`*^9}},
CellLabel->
"During evaluation of \
In[27]:=",ExpressionUUID->"a030bb44-bf09-4393-abc7-3f2bb7b5ac19"],
In[91]:=",ExpressionUUID->"37d53405-8bca-435f-b2c7-8cda8da73049"],
Cell[BoxData[
TemplateBox[{
"Infinity", "indet",
"\"Indeterminate expression \\!\\(\\*RowBox[{\\\"0\\\", \\\" \\\", \
\\\"ComplexInfinity\\\"}]\\) encountered.\"", 2, 27, 85, 26206157531447520602,
"Local"},
\\\"ComplexInfinity\\\"}]\\) encountered.\"", 2, 91, 258,
18949302130080748064, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.832182763093258*^9, 3.832182841541271*^9, 3.832182981310091*^9, {
3.832183101347535*^9, 3.8321831394150257`*^9}, {3.832183231556478*^9,
3.832183293258604*^9}, {3.8321835084041348`*^9, 3.8321835219952707`*^9}, {
3.832183610774363*^9, 3.832183624231565*^9}, 3.8321860021042147`*^9,
3.8321860748628817`*^9, 3.832186146263523*^9, {3.832186194392118*^9,
3.832186256895705*^9}, {3.83218639372544*^9, 3.832186459711775*^9},
3.832188871475355*^9, 3.832233759272257*^9, 3.8322357555615997`*^9,
3.8322369958376913`*^9, 3.8322370702991743`*^9},
3.8647359857098017`*^9, {3.86473604066442*^9, 3.864736055281802*^9}, {
3.864736105160235*^9, 3.8647361139676113`*^9}},
CellLabel->
"During evaluation of \
In[27]:=",ExpressionUUID->"74f88af0-674b-40de-8074-8ed6f95ace99"],
In[91]:=",ExpressionUUID->"89f114b0-9675-4ca6-9014-56c6286806a8"],
Cell[BoxData[
TemplateBox[{
"General", "stop",
"\"Further output of \\!\\(\\*StyleBox[RowBox[{\\\"Infinity\\\", \
\\\"::\\\", \\\"indet\\\"}], \\\"MessageName\\\"]\\) will be suppressed \
during this calculation.\"", 2, 27, 86, 26206157531447520602, "Local"},
during this calculation.\"", 2, 91, 259, 18949302130080748064, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.832182763093258*^9, 3.832182841541271*^9, 3.832182981310091*^9, {
3.832183101347535*^9, 3.8321831394150257`*^9}, {3.832183231556478*^9,
3.832183293258604*^9}, {3.8321835084041348`*^9, 3.8321835219952707`*^9}, {
3.832183610774363*^9, 3.832183624231565*^9}, 3.8321860021042147`*^9,
3.8321860748628817`*^9, 3.832186146263523*^9, {3.832186194392118*^9,
3.832186256895705*^9}, {3.83218639372544*^9, 3.832186459711775*^9},
3.832188871475355*^9, 3.832233759272257*^9, 3.8322357555615997`*^9,
3.8322369958376913`*^9, 3.8322370703021603`*^9},
3.8647359857098017`*^9, {3.86473604066442*^9, 3.864736055281802*^9}, {
3.864736105160235*^9, 3.864736113976234*^9}},
CellLabel->
"During evaluation of \
In[27]:=",ExpressionUUID->"4194f6a4-417e-4717-9a7e-ad06fb2fd8fc"],
In[91]:=",ExpressionUUID->"0412eea0-47cc-4bde-a051-03a82090edc2"],
Cell[BoxData[
TagBox[
@ -824,98 +803,42 @@ Cell[BoxData[
{"1",
RowBox[{"-", "1"}],
RowBox[{"-", "1"}],
RowBox[{"-", "1"}],
RowBox[{"-", "1"}], "0", "0", "0", "0",
RowBox[{"-",
SqrtBox["2"]}]},
RowBox[{"-", "1"}], "0", "0", "0",
RowBox[{"-", "2"}]},
{
RowBox[{"-", "1"}], "1",
RowBox[{"-", "1"}],
RowBox[{"-", "3"}],
RowBox[{"-", "1"}], "0",
RowBox[{
RowBox[{"-", "2"}], " ",
SqrtBox["2"]}],
RowBox[{
RowBox[{"-", "2"}], " ",
SqrtBox["2"]}], "0", "0"},
RowBox[{"-", "2"}], "0", "0"},
{
RowBox[{"-", "1"}],
RowBox[{"-", "1"}], "1",
RowBox[{"-", "1"}],
RowBox[{"-", "1"}], "0", "0",
SubscriptBox["b",
RowBox[{"3", ",", "5"}]], "0", "0",
SubscriptBox["b",
RowBox[{"3", ",", "8"}]],
SubscriptBox["b",
RowBox[{"3", ",", "9"}]], "0"},
{
RowBox[{"-", "1"}],
RowBox[{"-", "3"}],
RowBox[{"-", "1"}], "1",
RowBox[{"-", "1"}],
RowBox[{
RowBox[{"-", "2"}], " ",
SqrtBox["2"]}], "0", "0",
SubscriptBox["b",
RowBox[{"4", ",", "9"}]], "0"},
RowBox[{"3", ",", "7"}]], "0"},
{
RowBox[{"-", "1"}],
RowBox[{"-", "1"}],
SubscriptBox["b",
RowBox[{"3", ",", "5"}]],
RowBox[{"-", "1"}], "1",
RowBox[{
RowBox[{"-", "2"}], " ",
SqrtBox["2"]}],
SubscriptBox["b",
RowBox[{"5", ",", "7"}]], "0", "0", "0"},
RowBox[{"-", "2"}], "0", "0", "0"},
{"0", "0", "0",
RowBox[{
RowBox[{"-", "2"}], " ",
SqrtBox["2"]}],
RowBox[{
RowBox[{"-", "2"}], " ",
SqrtBox["2"]}], "1",
RowBox[{"-", "2"}], "1",
RowBox[{"-", "1"}],
RowBox[{"-", "3"}],
RowBox[{"-", "1"}],
RowBox[{"-", "1"}]},
{"0",
RowBox[{
RowBox[{"-", "2"}], " ",
SqrtBox["2"]}], "0", "0",
SubscriptBox["b",
RowBox[{"5", ",", "7"}]],
RowBox[{"-", "1"}], "1",
RowBox[{"-", "1"}],
SubscriptBox["b",
RowBox[{"7", ",", "9"}]],
RowBox[{"-", "1"}]},
{"0",
RowBox[{
RowBox[{"-", "2"}], " ",
SqrtBox["2"]}],
SubscriptBox["b",
RowBox[{"3", ",", "8"}]], "0", "0",
RowBox[{"-", "3"}],
RowBox[{"-", "2"}], "0", "0",
RowBox[{"-", "1"}], "1",
RowBox[{"-", "1"}],
RowBox[{"-", "1"}]},
{"0", "0",
SubscriptBox["b",
RowBox[{"3", ",", "9"}]],
SubscriptBox["b",
RowBox[{"4", ",", "9"}]], "0",
RowBox[{"3", ",", "7"}]], "0",
RowBox[{"-", "1"}],
SubscriptBox["b",
RowBox[{"7", ",", "9"}]],
RowBox[{"-", "1"}], "1",
RowBox[{"-", "1"}]},
{
RowBox[{"-",
SqrtBox["2"]}], "0", "0", "0", "0",
RowBox[{"-", "1"}],
RowBox[{"-", "2"}], "0", "0", "0",
RowBox[{"-", "1"}],
RowBox[{"-", "1"}],
RowBox[{"-", "1"}], "1"}
@ -930,170 +853,17 @@ Cell[BoxData[
Offset[0.2]}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]]], "Output",
CellChangeTimes->{
3.832179783917717*^9, {3.832179814342978*^9, 3.832179861361418*^9},
3.832179893589129*^9, 3.832182605794438*^9, 3.832182763127335*^9,
3.832182841690147*^9, 3.8321829813444138`*^9, {3.832183101533333*^9,
3.832183139582876*^9}, {3.8321832317345877`*^9, 3.832183293439227*^9}, {
3.832183508587723*^9, 3.8321835221677103`*^9}, {3.832183611364024*^9,
3.832183624318857*^9}, 3.832186002187941*^9, 3.832186074905888*^9,
3.832186146315591*^9, {3.832186194447332*^9, 3.832186256956686*^9}, {
3.832186393788492*^9, 3.832186459760105*^9}, 3.8321888717648478`*^9,
3.832233759570629*^9, 3.832235755608419*^9, 3.832236996021813*^9,
3.832237070321662*^9},
CellChangeTimes->{{3.864736017812807*^9, 3.864736055348247*^9}, {
3.864736105228671*^9, 3.864736113985414*^9}},
CellLabel->
"Out[27]//MatrixForm=",ExpressionUUID->"fdc7f6af-fd0d-4929-9e08-\
6b6c1e05f6e9"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
RowBox[{"findGextGivenAdjacencyN", "[",
RowBox[{GridBox[{
{"0", "1", "1", "1", "1", "0"},
{"1", "0", "1", "0", "1", "1"},
{"1", "1", "0", "1", "0", "1"},
{"1", "0", "1", "0", "1", "1"},
{"1", "1", "0", "1", "0", "1"},
{"0", "1", "1", "1", "1", "0"}
}], ",", "1", ",", "2", ",", "7"}], "]"}], "//", "MatrixForm"}]], "Input",\
CellChangeTimes->{{3.832234454719741*^9, 3.8322344554351397`*^9}, {
3.832234518495953*^9, 3.83223456722535*^9}, {3.832234599975768*^9,
3.832234600508299*^9}, 3.832235119976883*^9, {3.832235625747163*^9,
3.8322356282703333`*^9}, {3.832235774053183*^9, 3.832235776293931*^9}, {
3.832236470892282*^9, 3.83223647934175*^9}, 3.832237115236012*^9},
CellLabel->"In[29]:=",ExpressionUUID->"02de66da-bc38-41f4-8a77-b770b877dfca"],
Cell[BoxData[
TemplateBox[{
"Power", "infy",
"\"Infinite expression \\!\\(\\*FractionBox[\\\"1\\\", \\\"0\\\"]\\) \
encountered.\"", 2, 29, 95, 26206157531447520602, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.8322345680091257`*^9, 3.832234601539942*^9, 3.832235120973035*^9,
3.8322356288058453`*^9, {3.8322357660188637`*^9, 3.8322357775136843`*^9}, {
3.832237109420858*^9, 3.832237115980057*^9}},
CellLabel->
"During evaluation of \
In[29]:=",ExpressionUUID->"d00c981d-e8e3-45ab-b623-d93a843ce6a8"],
Cell[BoxData[
TemplateBox[{
"Infinity", "indet",
"\"Indeterminate expression \\!\\(\\*RowBox[{\\\"0\\\", \\\" \\\", \
\\\"ComplexInfinity\\\"}]\\) encountered.\"", 2, 29, 96, 26206157531447520602,
"Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.8322345680091257`*^9, 3.832234601539942*^9, 3.832235120973035*^9,
3.8322356288058453`*^9, {3.8322357660188637`*^9, 3.8322357775136843`*^9}, {
3.832237109420858*^9, 3.832237115983798*^9}},
CellLabel->
"During evaluation of \
In[29]:=",ExpressionUUID->"05ac3f26-ef03-4ab1-8497-67737d7312c5"],
Cell[BoxData[
TemplateBox[{
"Power", "infy",
"\"Infinite expression \\!\\(\\*FractionBox[\\\"1\\\", \\\"0\\\"]\\) \
encountered.\"", 2, 29, 97, 26206157531447520602, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.8322345680091257`*^9, 3.832234601539942*^9, 3.832235120973035*^9,
3.8322356288058453`*^9, {3.8322357660188637`*^9, 3.8322357775136843`*^9}, {
3.832237109420858*^9, 3.8322371159869213`*^9}},
CellLabel->
"During evaluation of \
In[29]:=",ExpressionUUID->"74c26ce0-ced0-4e13-a3d5-a4a026eb0e83"],
Cell[BoxData[
TemplateBox[{
"Infinity", "indet",
"\"Indeterminate expression \\!\\(\\*RowBox[{\\\"0\\\", \\\" \\\", \
\\\"ComplexInfinity\\\"}]\\) encountered.\"", 2, 29, 98, 26206157531447520602,
"Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.8322345680091257`*^9, 3.832234601539942*^9, 3.832235120973035*^9,
3.8322356288058453`*^9, {3.8322357660188637`*^9, 3.8322357775136843`*^9}, {
3.832237109420858*^9, 3.8322371159901047`*^9}},
CellLabel->
"During evaluation of \
In[29]:=",ExpressionUUID->"ea19ebab-bd10-406a-834f-3c7be4208e03"],
Cell[BoxData[
TemplateBox[{
"Power", "infy",
"\"Infinite expression \\!\\(\\*FractionBox[\\\"1\\\", \\\"0\\\"]\\) \
encountered.\"", 2, 29, 99, 26206157531447520602, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.8322345680091257`*^9, 3.832234601539942*^9, 3.832235120973035*^9,
3.8322356288058453`*^9, {3.8322357660188637`*^9, 3.8322357775136843`*^9}, {
3.832237109420858*^9, 3.832237115994192*^9}},
CellLabel->
"During evaluation of \
In[29]:=",ExpressionUUID->"a0e31f72-3b86-40f7-9eec-6263fa172fe4"],
Cell[BoxData[
TemplateBox[{
"General", "stop",
"\"Further output of \\!\\(\\*StyleBox[RowBox[{\\\"Power\\\", \\\"::\\\", \
\\\"infy\\\"}], \\\"MessageName\\\"]\\) will be suppressed during this \
calculation.\"", 2, 29, 100, 26206157531447520602, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.8322345680091257`*^9, 3.832234601539942*^9, 3.832235120973035*^9,
3.8322356288058453`*^9, {3.8322357660188637`*^9, 3.8322357775136843`*^9}, {
3.832237109420858*^9, 3.832237115997994*^9}},
CellLabel->
"During evaluation of \
In[29]:=",ExpressionUUID->"89eace12-6b46-40eb-aadd-50e5aaa3bd9f"],
Cell[BoxData[
TemplateBox[{
"Infinity", "indet",
"\"Indeterminate expression \\!\\(\\*RowBox[{\\\"0\\\", \\\" \\\", \
\\\"ComplexInfinity\\\"}]\\) encountered.\"", 2, 29, 101,
26206157531447520602, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.8322345680091257`*^9, 3.832234601539942*^9, 3.832235120973035*^9,
3.8322356288058453`*^9, {3.8322357660188637`*^9, 3.8322357775136843`*^9}, {
3.832237109420858*^9, 3.832237116001873*^9}},
CellLabel->
"During evaluation of \
In[29]:=",ExpressionUUID->"5375cd8f-e536-4493-a5bd-41e24879aff7"],
Cell[BoxData[
TemplateBox[{
"General", "stop",
"\"Further output of \\!\\(\\*StyleBox[RowBox[{\\\"Infinity\\\", \
\\\"::\\\", \\\"indet\\\"}], \\\"MessageName\\\"]\\) will be suppressed \
during this calculation.\"", 2, 29, 102, 26206157531447520602, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{
3.8322345680091257`*^9, 3.832234601539942*^9, 3.832235120973035*^9,
3.8322356288058453`*^9, {3.8322357660188637`*^9, 3.8322357775136843`*^9}, {
3.832237109420858*^9, 3.832237116005769*^9}},
CellLabel->
"During evaluation of \
In[29]:=",ExpressionUUID->"be185428-a448-4979-81b7-42b96c1c043f"],
Cell[BoxData["$Aborted"], "Output",
CellChangeTimes->{3.832234568621504*^9, 3.832235117716137*^9,
3.8322352036712923`*^9, 3.832235654229196*^9, 3.832235771697427*^9,
3.832236933730206*^9, 3.832237112863658*^9, 3.832237442102853*^9},
CellLabel->"Out[29]=",ExpressionUUID->"6989777a-5d19-4e97-ad8e-85324d649c62"]
"Out[91]//MatrixForm=",ExpressionUUID->"81437b0a-8664-4d33-b2b9-\
fd25f7260eef"]
}, Open ]]
}, Open ]]
},
WindowSize->{1425., 776.25},
WindowMargins->{{7.5, Automatic}, {7.5, Automatic}},
FrontEndVersion->"12.2 for Linux x86 (64-bit) (December 12, 2020)",
WindowSize->{1437., 787.5},
WindowMargins->{{1.5, Automatic}, {1.5, Automatic}},
FrontEndVersion->"13.0 for Linux x86 (64-bit) (February 4, 2022)",
StyleDefinitions->"Default.nb",
ExpressionUUID->"8df4a218-f4b3-4aa1-ac74-2935a02f7ddc"
]
@ -1109,59 +879,52 @@ CellTagsIndex->{}
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[580, 22, 359, 6, 29, "Input",ExpressionUUID->"414a3c9b-c835-4353-8314-610b387cd4fe"],
Cell[942, 30, 507, 12, 23, "Print",ExpressionUUID->"fa2b838b-e3df-4e8d-9350-d8f470c0acc1"],
Cell[1452, 44, 651, 14, 22, "Message",ExpressionUUID->"7cedf722-9dff-466e-8c29-7474221bbcff"],
Cell[2106, 60, 688, 15, 25, "Print",ExpressionUUID->"bc4bba27-1aaf-4b2a-b377-2ee419fb494f"]
Cell[580, 22, 181, 3, 98, "Title",ExpressionUUID->"c51c1c8b-2540-4a63-92f6-4e7d3d5f9d76"],
Cell[764, 27, 665, 12, 81, "Text",ExpressionUUID->"c3406f07-a0d8-4f8a-a2e4-1d424c3c89ef"],
Cell[CellGroupData[{
Cell[1454, 43, 359, 6, 29, "Input",ExpressionUUID->"414a3c9b-c835-4353-8314-610b387cd4fe"],
Cell[1816, 51, 529, 12, 23, "Print",ExpressionUUID->"9a0f644e-76e7-49b2-bf2e-a5a0439d2bff"],
Cell[2348, 65, 673, 14, 28, "Message",ExpressionUUID->"1c5f7cf6-0738-487e-8e29-494d036393b4"],
Cell[3024, 81, 709, 15, 25, "Print",ExpressionUUID->"f93216f6-8658-427f-a66d-a212aa30c39f"]
}, Open ]],
Cell[CellGroupData[{
Cell[2831, 80, 198, 3, 29, "Input",ExpressionUUID->"f02af3bb-ed9d-4fb8-9ab5-418e5d718cf5"],
Cell[3032, 85, 607, 12, 54, "Output",ExpressionUUID->"eb6e8d8d-44bf-42ef-b37b-df6773c2cd46"]
Cell[3770, 101, 198, 3, 29, "Input",ExpressionUUID->"f02af3bb-ed9d-4fb8-9ab5-418e5d718cf5"],
Cell[3971, 106, 629, 12, 54, "Output",ExpressionUUID->"31c0c59f-a2fa-4297-b979-9547b625ff8b"]
}, Open ]],
Cell[3654, 100, 184, 3, 35, "Text",ExpressionUUID->"9fb785ee-e560-44c5-a5b3-5327bd61a726"],
Cell[3841, 105, 647, 13, 29, "Input",ExpressionUUID->"7e4471aa-3419-4361-9954-ca85e8fdbcea"],
Cell[4491, 120, 191, 3, 35, "Text",ExpressionUUID->"9974cf68-13cb-4621-b559-180b9188b28d"],
Cell[4685, 125, 531, 12, 29, "Input",ExpressionUUID->"64960a86-3c40-410a-a0bf-67dc0dda7253"],
Cell[5219, 139, 202, 3, 35, "Text",ExpressionUUID->"368224c4-3094-4b81-8a24-52920579e0af"],
Cell[5424, 144, 403, 8, 29, "Input",ExpressionUUID->"2df0273a-68b0-4420-a181-5533de3142ef"],
Cell[5830, 154, 256, 6, 35, "Text",ExpressionUUID->"d7357423-e955-4cba-b0ba-acc9d2b7e0e5"],
Cell[6089, 162, 4540, 120, 135, "Input",ExpressionUUID->"466eedf4-1501-4c34-b467-6afcd6ee9c2b"],
Cell[10632, 284, 215, 5, 35, "Text",ExpressionUUID->"4ea56a77-27f9-4776-93c6-8db6873f4f90"],
Cell[10850, 291, 512, 10, 29, "Input",ExpressionUUID->"07904a6d-75de-42b6-bd6e-25258c9dfc13"],
Cell[11365, 303, 641, 15, 36, "Text",ExpressionUUID->"551f2841-8783-4e7e-8126-fa2d7423c031"],
Cell[12009, 320, 2379, 65, 50, "Input",ExpressionUUID->"bf8ef1f1-47be-4283-b703-c185b6f0b640"],
Cell[14391, 387, 242, 6, 35, "Text",ExpressionUUID->"40d5a3ff-8fe6-48ac-bfbe-6a97c5e28c14"],
Cell[14636, 395, 582, 13, 29, "Input",ExpressionUUID->"420e0d3e-8926-42c8-bf5b-90e13c9517d3"],
Cell[15221, 410, 182, 3, 35, "Text",ExpressionUUID->"48590ebf-9c87-4ec4-bfbf-27e74718b29f"],
Cell[15406, 415, 657, 18, 30, "Input",ExpressionUUID->"6be67f5a-9ae0-4ab1-a49b-076a5355b7fb"],
Cell[16066, 435, 479, 9, 58, "Text",ExpressionUUID->"5352eb21-29c8-493a-98a4-6ede330dc961"],
Cell[16548, 446, 4329, 94, 257, "Input",ExpressionUUID->"f4f2f39c-a979-492f-a025-beb69389c674"],
Cell[20880, 542, 189, 3, 35, "Text",ExpressionUUID->"d96df70c-f12c-4947-8ff1-cf67a6e8d5f1"],
Cell[21072, 547, 3455, 85, 216, "Input",ExpressionUUID->"e9aabedc-e11e-4cce-a76e-c710d3384ca9"],
Cell[24530, 634, 186, 3, 35, "Text",ExpressionUUID->"f2486377-4c48-4788-b4f2-4a8d1780f87e"],
Cell[4615, 121, 184, 3, 35, "Text",ExpressionUUID->"9fb785ee-e560-44c5-a5b3-5327bd61a726"],
Cell[4802, 126, 647, 13, 29, "Input",ExpressionUUID->"7e4471aa-3419-4361-9954-ca85e8fdbcea"],
Cell[5452, 141, 191, 3, 35, "Text",ExpressionUUID->"9974cf68-13cb-4621-b559-180b9188b28d"],
Cell[5646, 146, 531, 12, 29, "Input",ExpressionUUID->"64960a86-3c40-410a-a0bf-67dc0dda7253"],
Cell[6180, 160, 202, 3, 35, "Text",ExpressionUUID->"368224c4-3094-4b81-8a24-52920579e0af"],
Cell[6385, 165, 403, 8, 29, "Input",ExpressionUUID->"2df0273a-68b0-4420-a181-5533de3142ef"],
Cell[6791, 175, 256, 6, 35, "Text",ExpressionUUID->"d7357423-e955-4cba-b0ba-acc9d2b7e0e5"],
Cell[7050, 183, 4540, 120, 135, "Input",ExpressionUUID->"466eedf4-1501-4c34-b467-6afcd6ee9c2b"],
Cell[11593, 305, 215, 5, 35, "Text",ExpressionUUID->"4ea56a77-27f9-4776-93c6-8db6873f4f90"],
Cell[11811, 312, 512, 10, 29, "Input",ExpressionUUID->"07904a6d-75de-42b6-bd6e-25258c9dfc13"],
Cell[12326, 324, 610, 14, 36, "Text",ExpressionUUID->"551f2841-8783-4e7e-8126-fa2d7423c031"],
Cell[12939, 340, 2379, 65, 50, "Input",ExpressionUUID->"bf8ef1f1-47be-4283-b703-c185b6f0b640"],
Cell[15321, 407, 242, 6, 35, "Text",ExpressionUUID->"40d5a3ff-8fe6-48ac-bfbe-6a97c5e28c14"],
Cell[15566, 415, 581, 13, 29, "Input",ExpressionUUID->"420e0d3e-8926-42c8-bf5b-90e13c9517d3"],
Cell[16150, 430, 182, 3, 35, "Text",ExpressionUUID->"48590ebf-9c87-4ec4-bfbf-27e74718b29f"],
Cell[16335, 435, 657, 18, 30, "Input",ExpressionUUID->"6be67f5a-9ae0-4ab1-a49b-076a5355b7fb"],
Cell[16995, 455, 479, 9, 58, "Text",ExpressionUUID->"5352eb21-29c8-493a-98a4-6ede330dc961"],
Cell[17477, 466, 4836, 103, 278, "Input",ExpressionUUID->"f4f2f39c-a979-492f-a025-beb69389c674"],
Cell[22316, 571, 189, 3, 35, "Text",ExpressionUUID->"d96df70c-f12c-4947-8ff1-cf67a6e8d5f1"],
Cell[22508, 576, 3474, 84, 216, "Input",ExpressionUUID->"e9aabedc-e11e-4cce-a76e-c710d3384ca9"],
Cell[25985, 662, 181, 3, 35, "Text",ExpressionUUID->"253b2ba5-d3d8-487f-ae0b-3c5567445616"],
Cell[26169, 667, 413, 9, 29, "Input",ExpressionUUID->"7ae018a2-0992-4320-92df-75ee8f9717e1"],
Cell[CellGroupData[{
Cell[24741, 641, 1061, 20, 95, "Input",ExpressionUUID->"43731109-f22e-4624-b7f9-248becc79bba"],
Cell[25805, 663, 910, 17, 39, "Message",ExpressionUUID->"c7c9db08-bc46-4183-ad6b-6d4b18afab25"],
Cell[26718, 682, 945, 18, 22, "Message",ExpressionUUID->"f993da93-45d0-49f8-83fd-06a87a8acf55"],
Cell[27666, 702, 912, 17, 39, "Message",ExpressionUUID->"8480abda-d8d0-4a9d-b8d2-cbc431df84ba"],
Cell[28581, 721, 944, 18, 22, "Message",ExpressionUUID->"e278507f-245d-47f1-b517-549c7ed89349"],
Cell[29528, 741, 910, 17, 39, "Message",ExpressionUUID->"03a6534e-77ef-4bb4-b244-a417a4f2a3dd"],
Cell[30441, 760, 992, 18, 22, "Message",ExpressionUUID->"a030bb44-bf09-4393-abc7-3f2bb7b5ac19"],
Cell[31436, 780, 947, 18, 22, "Message",ExpressionUUID->"74f88af0-674b-40de-8074-8ed6f95ace99"],
Cell[32386, 800, 996, 18, 22, "Message",ExpressionUUID->"4194f6a4-417e-4717-9a7e-ad06fb2fd8fc"],
Cell[33385, 820, 3865, 125, 235, "Output",ExpressionUUID->"fdc7f6af-fd0d-4929-9e08-6b6c1e05f6e9"]
}, Open ]],
Cell[CellGroupData[{
Cell[37287, 950, 833, 17, 113, "Input",ExpressionUUID->"02de66da-bc38-41f4-8a77-b770b877dfca"],
Cell[38123, 969, 547, 12, 39, "Message",ExpressionUUID->"d00c981d-e8e3-45ab-b623-d93a843ce6a8"],
Cell[38673, 983, 582, 13, 22, "Message",ExpressionUUID->"05ac3f26-ef03-4ab1-8497-67737d7312c5"],
Cell[39258, 998, 549, 12, 39, "Message",ExpressionUUID->"74c26ce0-ced0-4e13-a3d5-a4a026eb0e83"],
Cell[39810, 1012, 584, 13, 22, "Message",ExpressionUUID->"ea19ebab-bd10-406a-834f-3c7be4208e03"],
Cell[40397, 1027, 547, 12, 39, "Message",ExpressionUUID->"a0e31f72-3b86-40f7-9eec-6263fa172fe4"],
Cell[40947, 1041, 628, 13, 22, "Message",ExpressionUUID->"89eace12-6b46-40eb-aadd-50e5aaa3bd9f"],
Cell[41578, 1056, 583, 13, 22, "Message",ExpressionUUID->"5375cd8f-e536-4493-a5bd-41e24879aff7"],
Cell[42164, 1071, 632, 13, 22, "Message",ExpressionUUID->"be185428-a448-4979-81b7-42b96c1c043f"],
Cell[42799, 1086, 318, 4, 33, "Output",ExpressionUUID->"6989777a-5d19-4e97-ad8e-85324d649c62"]
Cell[26607, 680, 412, 8, 29, "Input",ExpressionUUID->"29c4fd45-69f8-4308-84f3-0c9572c9bb55"],
Cell[27022, 690, 473, 11, 39, "Message",ExpressionUUID->"069ce30e-51da-464a-9286-8ce88168184b"],
Cell[27498, 703, 506, 12, 28, "Message",ExpressionUUID->"11f99cbe-866b-4da5-846c-40c55dd85cc9"],
Cell[28007, 717, 471, 11, 39, "Message",ExpressionUUID->"6c511ac6-894a-42d0-85ca-2f409b91ffb4"],
Cell[28481, 730, 506, 12, 28, "Message",ExpressionUUID->"ea03061f-1629-49a1-8e21-d5adb3b3c4a0"],
Cell[28990, 744, 473, 11, 39, "Message",ExpressionUUID->"effee00e-250a-4dbb-a7e5-dfe6fb7defea"],
Cell[29466, 757, 553, 12, 28, "Message",ExpressionUUID->"37d53405-8bca-435f-b2c7-8cda8da73049"],
Cell[30022, 771, 508, 12, 28, "Message",ExpressionUUID->"89f114b0-9675-4ca6-9014-56c6286806a8"],
Cell[30533, 785, 555, 12, 28, "Message",ExpressionUUID->"0412eea0-47cc-4bde-a051-03a82090edc2"],
Cell[31091, 799, 1803, 60, 168, "Output",ExpressionUUID->"81437b0a-8664-4d33-b2b9-fd25f7260eef"]
}, Open ]]
}, Open ]]
}
]

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff