diff --git a/engine-proto/gram-test/gram-test.jl b/engine-proto/gram-test/gram-test.jl deleted file mode 100644 index c962967..0000000 --- a/engine-proto/gram-test/gram-test.jl +++ /dev/null @@ -1,77 +0,0 @@ -using LinearAlgebra -using AbstractAlgebra - -function printgood(msg) - printstyled("✓", color = :green) - println(" ", msg) -end - -function printbad(msg) - printstyled("✗", color = :red) - println(" ", msg) -end - -F, gens = rational_function_field(Generic.Rationals{BigInt}(), ["a₁", "a₂", "b₁", "b₂", "c₁", "c₂"]) -a = gens[1:2] -b = gens[3:4] -c = gens[5:6] - -# three mutually tangent spheres which are all perpendicular to the x, y plane -gram = [ - -1 1 1; - 1 -1 1; - 1 1 -1 -] - -eig = eigen(gram) -n_pos = count(eig.values .> 0.5) -n_neg = count(eig.values .< -0.5) -if n_pos + n_neg == size(gram, 1) - printgood("Non-degenerate subspace") -else - printbad("Degenerate subspace") -end -sig_rem = Int64[ones(2-n_pos); -ones(3-n_neg)] -unk = hcat(a, b, c) -M = matrix_space(F, 5, 5) -big_gram = M(F.([ - diagm(sig_rem) unk; - transpose(unk) gram -])) - -r, p, L, U = lu(big_gram) -if isone(p) - printgood("Found a solution") -else - printbad("Didn't find a solution") -end -solution = transpose(L) -mform = U * inv(solution) - -vals = [0, 0, 0, 1, 0, -3//4] -solution_ex = [evaluate(entry, vals) for entry in solution] -mform_ex = [evaluate(entry, vals) for entry in mform] - -std_basis = [ - 0 0 0 1 1; - 0 0 0 1 -1; - 1 0 0 0 0; - 0 1 0 0 0; - 0 0 1 0 0 -] -std_solution = M(F.(std_basis)) * solution -std_solution_ex = std_basis * solution_ex - -println("Minkowski form:") -display(mform_ex) - -big_gram_recovered = transpose(solution_ex) * mform_ex * solution_ex -valid = all(iszero.( - [evaluate(entry, vals) for entry in big_gram] - big_gram_recovered -)) -if valid - printgood("Recovered Gram matrix:") -else - printbad("Didn't recover Gram matrix. Instead, got:") -end -display(big_gram_recovered) \ No newline at end of file diff --git a/engine-proto/gram-test/gram-test.sage b/engine-proto/gram-test/gram-test.sage deleted file mode 100644 index a95ce97..0000000 --- a/engine-proto/gram-test/gram-test.sage +++ /dev/null @@ -1,27 +0,0 @@ -F = QQ['a', 'b', 'c'].fraction_field() -a, b, c = F.gens() - -# three mutually tangent spheres which are all perpendicular to the x, y plane -gram = matrix([ - [-1, 0, 0, 0, 0], - [0, -1, a, b, c], - [0, a, -1, 1, 1], - [0, b, 1, -1, 1], - [0, c, 1, 1, -1] -]) - -P, L, U = gram.LU() -solution = (P * L).transpose() -mform = U * L.transpose().inverse() - -concrete = solution.subs({a: 0, b: 1, c: -3/4}) - -std_basis = matrix([ - [0, 0, 0, 1, 1], - [0, 0, 0, 1, -1], - [1, 0, 0, 0, 0], - [0, 1, 0, 0, 0], - [0, 0, 1, 0, 0] -]) -std_solution = std_basis * solution -std_concrete = std_basis * concrete \ No newline at end of file