---
# System prepended metadata

title: Spring 2023
tags: [grad]

---

# Spring 2023
###### tags: `grad`


## Revision solid angle manuscript
- When using https://www.mathcha.io/, make sure coordinates are right (not just roughly right).
- Fix \tred. I'm working on \tblue
- Latex (for future references)
	- Distinction between Hyphen, en dash, and em dash
	- $\|...\|$ for vector, v.s. $|...|$ for absolute value.
	- \ve{\ell}_j good, ve{\ell_j} bad
	- align and align* are useful
	- \cite[p.~487]{ribando2006measuring}
	- \newcommand*\elide{\textup{[\,\dots]}} and \textit (for omission)
	- \lambda_{\min}, T_{\ve\alpha}
	- more \left(, \right),  \left[, \right],  \left|, \right| etc for right size
	- \mathopen| \det
- Last paragraph in section 2 is harping on the same string, but not getting to the point: use induction on the dimension, Cor 2.4 plus Thm 2.5 provides a way to compute the solid angle measure of any polyhedral cone via Thm 1.5. However ... so we need the section 3.(done)
- Issue in theorem 3.3 solid angle decomposition method 2: apply B-V wrt line to the dual cone, need that the vector mu is non-zero. (done)
- Issue in solid angle decomposition theorems. Unit basis vectors. (done)
- section 4 is completely wrong mathematically. Way too many careless calculation mistakes!!
- absolute values were put in weird places. Definitions of f, psi, ri do not make sense! ri not related to boundary. need 0<lambda min <1.
- the limit analysis doesn't make senes in section 4, specially for the case n>3, why surfaces and tangent planes? why going through the formula of Psi? who is strictly increasing for n>3? The argument about radius r is not even correct in n=3 case!
- The zigzag path stuff is wrong!!! I can construct counter example. have to go from b1, b2 back to N1, N2, taking alternative projections.
- indices (b1, b2) in S1, S2, S3 closed open messed up!
- Big crisis! Why $S_3'\leq S_3 \mu^\ell$  and $S_4'\leq S_3 \mu^\ell$ ??? argument doesn't apply
- Why were the coordinates in tikz so random?
- Submitted to ArXiv on Apr. 21. Class math.MG and cross list as cs.CG. MSC class: 51M25 (Primary) 52B45, 33C90 (Secondary). preview link: [4855792 ](https://arxiv.org/submit/4855792)
- submitted to Discrete & Computational Geometry DCGE-D-23-00066
- TODO: Next step: Write general n proof. n=3 uses polar coordinates, making it hard to convince ppl that general proof follows in the same manner. (Notice that the proof in appendix had fundamental mistakes.) 
- Proof idea: On a ray in the multiexponent b space, ratio is 1-lamdba at limit. Far enough from the origin, ratio less than (1-lambda)(1+eps/2). fi are rational function, can find a thin conic cone around the ray, inside ratios in each direction less than mu = (1-lambda)(1+eps). i.e. eq (34). Put a length-2 cube inside the cone to get a far up-right point N. Lemma 4.7 works for general n tridiag case. If bi > Ni and the other coord of the points lies in proj conic cone + recession cone (-1, ... -1), then claim 4.11 holes, so ratio in i direction is less than mu. it's because we can keep bi, increase some other bj, ratio increases, can reach an integer point inside the cone because far way unit cube fits in the cone. next, compare E(b) and E(b+l). Distinct two kinds of series: (1) one bi>Ni but not all bi>Ni, i.e. S1 and S2 in n=3. (2) All bi>Ni, that's S3 in n=3. For case (1), condition of claim 4.11 is satisfied because (bi>Ni and other coord is in proj ray O-to-s at height bi +recession cone, is in proj conic cone+recession cone), S'i< mu^l Si.  For case (2), call S (S_3), call S' (S_3 minus cube l). want to compare point in S' to s.  Show claim 4.12 for any point in S. lim ray + negative orthan = whole space. any b in S is in side some c(all but one neg ei) + ray O-to-s. claim 4.11 says we can reduce in that direction i. repeat until hit s. Claim 4.12 applies to n S's, each less than s mu^l /(1-mu)^2. Show claim 4.13 (modify statement: S1 v.s case (1) region. only need one pt t anyway. can always get t far from s* in one direction, by move up-right on ray O-to-s.) in particular, take ns/(1-mu)^2 < eps S1. chain of ineq follows. theorem good. 
- Non-sense proof ideas: (want to cut inside the conic cone by a simplicial cone, somehow using the standard basis ei. dont know how yet. n=4 I can see: cut the cone with plane passing through each ei, get a circle. link ei tip with ray tip, get line segment, its intersection with circle gives one vertex of a simplex, pointing from origin to this simplex, get the simplicial cone inside the conic cone. ei is on the right side of the opposite facet..)
- TODO: check references. many new arxiv papers. M. Beck's work on solid angle sum. Paragraph after example 3 needs significant improvement. Daniel Dadush, Santosh Vempala polytime algo for approx vol in fixed d. Inter outer polytope approximation. 
- TODO: Comment on N<= (n-1)! Smaller for what shape of cones? dependence on betas?
    - Given a simplicial $n$-cone, not necessarily with posdef associated matrix, when is the number of cones from decomposing all the way to tridiagonal less then $(n-1)!$ ?
    - Fix $w_n$ to be the one "most orthogonal" of the generators of $C = cone(w_1, \dots, w_n)$, and $k$ is number of generators it's orthogonal to, then $N \leq (n-1-k)(n-2)!$ ... larger $k$ smaller $N$
    - if each $w_i$ which is not orthogonal to $w_n$ is orthogonal to at least $r$ of the $k$ generators that is orthogonal to $w_n$, then each $C_i$ is decomposed into at most $(n-2-r)$ cones, so $N \leq (n-1-k)(n-2-r)(n-3)!$
    -  orthogonality in initial cone gives less total cones from decomp
- Follow-up: fixed dim can compute solid polytime with encoding length of input? then implies vol approximation?
- Follow-up: triangulation affects convergence of solid angle of polyhedral cone?
- probabilistic method = monte carlo?

## Revision shooting experiments manuscript
==UPDATES?? manuscript clean-up? tables? testing logs?==
old comments moved to [shooting experiments](https://hackmd.io/uvu42dndShKZbQdWRQIY9Q?both)
- REREAD and revise from the beginning and throughout the paper with a fresh eye every few days. For each {sentence, caption, title, table format, note, notation name, cited reference, math formula form, etc} think twice if it is correct, logic, relevant, not redundant, optimal. The manuscript in its current form is not a pleasant read. Too many inconsistent places/numbers, etc. Too many vague statement regarding the literature.
- ``\multicolumn{10}{c|}{Facet}`` adds the bar.
- intro part missing important refs in optimization. solid angle app in lp, estimate lp bounds. some authors have more than one paper, cite them all
- Section 2.1 of [On sub-determinants and the diameter of polyhedra](https://arxiv.org/pdf/1108.4272.pdf)
- Similarly, Dadush and Hahnle wrote [On the Shadow Simplex Method for Curved](Polyhedrahttps://arxiv.org/abs/1412.6705), which again uses cone angles for normal cones.
- De Loera and Volker Kaibel (Apr 24, 2023):  in FIXED dimension, you could prove that computing the solid angle value is polynomial time computable, just like computing volume or counting lattice points can be done in polynomial time (Barvinok methods). You should also prove in general it is an NP-hard problem without that assumption
- lack of logic in many places
- table of P(q,f), delete the denominator column, italic column f. color discrepancies.
- Shim P(7,6) table is from geometry. Shim used isometric coordinates projection already. 
- To comment on shooting from origin
- shooting is good to discover facets, solid angle method not. 
- bench mark on which polytopes? Ehrenborg mentioned -- Elements of Mathematics, Lie Groups and Lie Algebras, Chapters 4--6, by Bourbaki. -- Reflection Groups and Coxeter Groups, by James E. Humphreys. -- Finite Reflection Groups by Benson and Grove. E_8, Weyl?
- benck mark other methods?
- ICERM talk slides tex uploaded to OneDrive.


## Revision volume and spam 
moved to [Volume and Spam](https://hackmd.io/Nf6HQD44Qje7d3jBh01qZg?both)

## Mar 21
- adding lemmas on isometries for shooting
- did some numerical integration - will add results
- vol estimation - volesti code
- for triangulations - the leftover disjoint case works when points in general position ... but general position is not assumed in speakman paper
- Checking necessary conditions of triangulation $T$:
    - affine dependence of elements in $T$
        - $T_i = \{v_1, \dots, v_k\}$
        - check lin dependence of $\{v_2-v_1, \dots, v_k-v_1\}$ using determinant?
    - (IP') circuit not in two elements of $T$
        - can generate all circuits of point config using chirotope
        - check that each circuit is not in two elements of $T$
        - which circuits are actually needed? I think only points on inner facets can contribute to support of circuits
    - (UP') interior facets appear twice
        - Record $d$-subsets of each $T_i\in T$
        - if $D$ appears as a $d-$subset of $T_i$ and $T_j$, get eqn of hyperplane and check that signatures of the element in $T_i \setminus D$ and the element in $T_j \setminus D$ are of opposite sign (this also checks that $D$ is indeed an interior facet)
- inequality reduction - write up

## Mar 7
- Revise shooting paper by Thursday. In particular, introduction (literature review, concept about shooting experiments, relation to solid angle, why we study that, our motivation and visions, what else people tried etc.), computational results so far, and future directions.
- Next, while I study the shooting paper, you may improve writing on volume spam paper according to what we discussed today. In particular, proof of Lemma 3.17
 
#### ==MAJOR ISSUE== WITH SHOOTING: several of higher dimensions were done with multidegree stopping not eps - REDO
- i did this because i had realized that they take extremely long; even for a 4d one, there is one example where one normal cone is not simplicial; breaks up into 7 simplicial cone; each simplicial cone can decompose into 6 cones, which means possibly 42 cones to compute one solid angle.


## Feb 28
- MIP 2022 reimbursement. Pin [#82944](https://bc-triage.as.uky.edu/ticket/82944) once a week until it get resolved. Rejeana will work with you on getting the Concur expenses report submitted.
- For shooting:
    -  measure of interest is solid angle. Shooting experiment done to estimate this. Survey other estimations: truncated series, approximate with simplices, integration...
    - Add results from using truncated series 
    -  Complexity results: It is #P-hard to compute the volume of a d-dimensional polytope P represented by its facets. I think the proof uses reduction to independent sets. See Corollary 1.1.12 in 2010-DeLoera-Rambau-Santos-Triangulation. Read on the reference regarding "How about the problem of approximating the volume" following the corollary. Does it somehow suggests that the solid angle (some sort of volume) we are considering is hard to get? ==The introduction of the paper needs some discussions in this direction.== 
    -  approximations of convex bodies by polytopes
- For volume:
    - see about mathematica package to be able to use option "check_completion"
    - boundary of cells?
    - repeat process for P1, P2, P3
    - unify notation in manuscript; be precise about assumptions
 
## Feb 9
- SageMath Trac to Github migration has completed. Can make pull requests to merge-in code development now.
- Feb 16, 3:10-4pm.

## Feb 1
* An orthogonal transformations $T:V\rightarrow V$ preserves the inner product of any two vectors $v,w$ in $V$. Sage has the option to do an orthogonal affine hull projection (which I think of as an orthogonal transformation with zero rows removed).
* If the projection of a polytope to its affine space is orthogonal, the solid angle measures of the outer normal cones at the vertices is preserved because it only depends on the innter products
* For the shooting experiment, we showed that there is an orthogonal transformation of $\mathbb{q-1}$ that takes the group-facet polytope to its projection onto the space of the $I$ variables.
* When all $\alpha_i > 0$, (cone is acute) and $T_\alpha$ converges, then $T_\alpha$ is an absolutelty  convergent alternating series ... use remainder theorem
    * $M_\alpha = 2I - V^tV$

## Jan 26
* For Shooting experiment project:
    * Error bound to give a reason why solid angle might be a better measure than shooting
    * Eliminate half the variables in the set of subadditivities using the symmetry equations, so we just have to construct a polytope in $\lfloor \frac{q-2}{2} \rfloor$ (verify that outer normal cones have same measure) and translate that back to shooting in dim $\lfloor \frac{q-2}{2} \rfloor$ 
    * Determine an alternative way to quickly compare facet sizes (what about just using the dihedral angles
... ) Are they all acute for the outer normal cones of the group facet polytope?
* MIT open course - Gomory 
* Grad text - Coronuejols
* Next meeting (tentative) - Tues @ 3 during coffee break
## Jan 24
* In Sage, the outer normal cones at the vertices are defined by taking ambient_Hrepresentation at the vertices of the ambient polytope. The lines give lines (take negative the coeffs) and the inequalites give generating rays (take their negatives).
* Given the $H$-representation of the polytope $P$ and the coordinates of a vertex of it $v$, we can determine the generators of the outer normal cone $N_P(v)$ by taking the negative coeffs of equations as lines, and the inequalities in the $H$-representation of $P$ at which $v$ satisfies with equality (vertex of polytope in $\mathbb{R}^n$ is tight at $n$ constraints?)

``` 
sage: P.Hrepresentation() # the blocker
(An inequality (-2, 0, 3, 0, 0, 0) x + 0 >= 0,
 An inequality (-1, -2, 4, 0, 0, 0) x + 0 >= 0,
 An inequality (0, 3, -2, 0, 0, 0) x + 0 >= 0,
 An inequality (2, -1, 0, 0, 0, 0) x + 0 >= 0,
 An equation (1, 0, 0, 0, 1, 0) x - 1 == 0,
 An equation (0, 1, 0, 1, 0, 0) x - 1 == 0,
 An equation (0, 0, 2, 0, 0, 0) x - 1 == 0,
 An equation (0, 0, 0, 0, 0, 1) x - 1 == 0)
sage: v = list(P.face_generator(0))[0]
sage: v
A 0-dimensional face of a Polyhedron in QQ^6 defined as the convex hull of 1 vertex
sage: v._ambient_Vrepresentation
(A vertex at (1/6, 1/3, 1/2, 2/3, 5/6, 1),)
sage: onc = v.normal_cone(direction="outer")
sage: onc # outer normal cone of blocker at v
A 6-dimensional polyhedron in QQ^6 defined as the convex hull of 1 vertex, 2 rays, 4 lines
sage: onc.Vrepresentation()
(A vertex at (0, 0, 0, 0, 0, 0),
 A ray in the direction (-2, 0, 0, -1, 0, 0),
 A ray in the direction (0, 0, 0, 1, 0, 0),
 A line in the direction (1, 0, 0, 0, 1, 0),
 A line in the direction (0, 1, 0, 1, 0, 0),
 A line in the direction (0, 0, 1, 0, 0, 0),
 A line in the direction (0, 0, 0, 0, 0, 1))
sage: v._ambient_Hrepresentation
(An inequality (0, 3, -2, 0, 0, 0) x + 0 >= 0,
 An inequality (2, -1, 0, 0, 0, 0) x + 0 >= 0,
 An equation (1, 0, 0, 0, 1, 0) x - 1 == 0,
 An equation (0, 1, 0, 1, 0, 0) x - 1 == 0,
 An equation (0, 0, 2, 0, 0, 0) x - 1 == 0,
 An equation (0, 0, 0, 0, 0, 1) x - 1 == 0)
sage: N = Polyhedron(rays=[[0,-3,2,0,0,0],[-2,1,0,0,0,0]],lines=[[1,0,0,0,1,0],[0,1,0,1,0,0],[0,0,2,0,0,0],[0,0,0,0,0,1]])
sage: N == onc
True
sage: N.Vrepresentation()
(A line in the direction (0, 0, 0, 0, 0, 1),
 A line in the direction (1, 0, 0, 0, 1, 0),
 A line in the direction (0, 1, 0, 1, 0, 0),
 A line in the direction (0, 0, 1, 0, 0, 0),
 A ray in the direction (-2, 1, 0, 0, 0, 0),
 A ray in the direction (0, -1, 0, 0, 0, 0),
 A vertex at (0, 0, 0, 0, 0, 0))
```
* outer normal cone of $P$ at $v$ is generated by the normals to the hyperplanes supporting $v$
* the symmetry/complementarity conditions give equations in the $H$-rep of $P$ and so correspond to lines in every outer normal cone. So, the solid angle measures of the outer normal cones must be determined by the subadditivities (inequalities) 
* how to ensure the generators that are rays corresponding to the inequalities (subadditivities) are orthogonal to lines
* We don't actually look at outer normal cones of the blocker but actually the outer normal cones of the "group-facet polytope" which is the convex hull of the points $\pi = (\pi_1, \dots, \pi_{q-1})$ such $\pi\cdot x \geq 1$ is a non-trivial facet of the master cyclic group polyhedron.
## Jan 17, 2023
Done:
* For base ring change from projecting out lineality space, we are okay because we only go from a ring to its fraction field
* $c$ is a ray that first hits the facet $a^tx \geq 1$ of the group polyhedron, then $a$ maximizes $c^tx$ over the extreme points of the blocker of the group polyhedron
* $c$ lies in the outer normal cone of the blocker, at the vertex $a$
* "ideal" shooting value = solid angle measure of the outer normal cone in dim $q-1$ = solid angle measure of the outer normal cone in dim $\frac{q-2}{2}$
* Blocker is not full-dimensional and has dim approx $\frac{q-2}{2}$
*  The blocker lives in a smaller dim linear space $L$, so every outer normal cone at a vertex of the blocker contains $L^\perp$
* P(4,3)  --- blocker (1/3, 2/3, 1), (1, 0 ,1)
* in $\mathbb{R}^3$, the blocker is the set of $(x,y,z)$ s.t $z=1, x+y=1$, 
    *  $x = \pi(1/4)$ i.e. the variables corresp to the cut-generating function values at breakpoints
    *  the reduction to the affine space (below) is not orthogonal ==Not sure==
* blocker in aff: (1/3) to (1)
    * What parameterization to use for blocker?
    * What does it mean to shoot in this lower space? For example, here we ignore $y$ and $z$, so what does it mean to only choose random $x$
* SOS for nonnegativity
* Trac
* Isn't it true that for a polytope $P$ in dim $n$, the affine dimension of $P$ and the dimension of the linearity space that the polar of $P$ contains add up to $n$, i.e., $\text{dim}(\text{aff}(P))+\text{dim}(\text{lin}(P^\circ))=n$? Then, as the blocker has affine dimension lower than $n$, doesn't it imply that the group polytope contain lines? Contradiction to group polyhedron being in the first orthan. What's wrong?
* Alli's answer: Had an incorrect definition of blocker. Correct interpretation below (Schrijver)
* For a set $X\subset \mathbb{R}^n$, the blocker of $X$ is $\mathfrak{B}(X) = \{y \in \mathbb{R}^n_+ : y\cdot x \geq 1 \text{ for all } y\in X\}$
* (Thm from Schrijver) Given $c_1, \dots, c_m, d_1, \dots, d_t \in \mathbb{R}^n_+$
$$ \text{conv}({c_1, \dots, c_m}) + \mathbb{R}^n_+ = \{x\in \mathbb{R}^n_+ : d_j\cdot x \geq 1 \text{ for all } j = 1, ..., t\}$$ if and only if$$ \text{conv}({d_1, \dots, d_t}) + \mathbb{R}^n_+ = \{x\in \mathbb{R}^n_+ : c_i\cdot x \geq 1 \text{ for all } i = 1, ..., m\}$$
* Gomory showed that the master cyclic group polyhedron $$ P(q,f) = conv\left({\left\{z \in Z^{q-1}: \sum_{i=1}^{q-1} \left(
\frac{i}{q} \right) z_i \equiv \frac{f}{q} \mod 1, z\geq 0 \right\}}\right) $$is indeed full-dimensional as it contains $e_f$ and $o_ie_i + e_f$ for all $i = 1, ..., q-1$ where $o_i$ is the order of $i$ in $C_q$. This gives a set of $q$ affinely independent points.
* The above is not just true for $e_f$ but for any $z \in P(q,f)$ which (I think) demonstrates that $P(q,f) = P(q,f) + \mathbb{R}^n_+$.
* The polar of a set $X \in \mathbb{R}^n$ is $$P^\circ = \{y\in \mathbb{R}^n : y\cdot x \leq 1 \text{ for all } x\in X\}$$
* (Hunsanker) If $P = conv({S}) + cone({c_1, \dots, c_k})$, then 
$$P^\circ = \{y\in \mathbb{R}^n : y\cdot x \leq 1 \text{ for all } s\in S \text{ and } y\cdot c_i \leq 0 \text{ for } i = 1, ..., k\}$$
* By the above, since the master cyclic group polyhedron satisfies $P(q,f) = P(q,f) + \mathbb{R}^n_+$, if $y \in (P(q,f))^\circ$, then $y\cdot e_i \leq 0$ for all $i=1, \dots, q-1$. Furthermore, since $P(q,f) \subset \mathbb{R}^n_+$, it must be that $(\mathbb{R}^n_+)^\circ \subset (P(q,f))^\circ$. Thus, we must have that $(P(q,f))^\circ$ is the negative orthant of $\mathbb{R}^{q-1}$, and so does not contain any lines, and so doesn't contradict the statement.
* Again, since $P(q,f) = P(q,f) + \mathbb{R}^n_+$, by definition of the blocker, if $d_i^tx \geq 1$ for $i=1, ..., k$ are the non-trivial (because they cannot be nonnegativity constraints) facets of $P(q,f)$, then $\mathfrak{B}(P(q,f)) = conv(\{d_1, \dots, d_k\}) + \mathbb{R}^n_+$.
* The blocker of $P(q,f)$ is related to the group-facet polytope $\Pi(q,f)$ in that if $\mathfrak{B}(P(q,f)) = conv(\{d_1, \dots, d_k\}) + \mathbb{R}^n_+$, then $\Pi(q,f) = conv(\{d_1, \dots, d_k\})$. The blocker and the group-facet polytope cannot be the same as the blocker is an unbounded polyhedron, whereas the group-facet polytope is a polytope.
* Yuan's answer:  Polar is usually defined for cones or polytope that contains the origin in its interior. Group polyhedron is of blocking type, doesn't contain the origin. Dual should be considered differently. Dual side polyhedron is also of the blocking type. minimal v.s. valid function. The polytope of minimal functions is a face of the unbounded polyhedron of valid functions.

## Jan 12, 2023
#### To Do:
* Continue reading Real Algebraic Geometry text 
* Singular's lift command guarantees a correct representation of a polynomial of an ideal in terms of given generators. How do we find ALL such representations.
    * Given $f \in I = \langle h_1, \dots, h_k\rangle \subset \mathbb{R}[x_1, \dots, x_n]$ with a fixed monomial ordering, we want all $\{q_1, \dots, q_k\}$ such that $f = \sum_{i=1}^k q_i h_i$. If we use general polynomial division, we could get non-zero remainders.
    * If we use a Grobner basis $G = \langle g_1, \dots, g_m\rangle$, then we are guaranteed that general polynomial division results in a zero remainder. So, $f = \sum_{i=1}^k q_i g_i$. The $q_i$ are not unique, but are dependent on the order of division by the $g_i$. 
    * ex: lex order: $G = \{a, b, a+b\}$, $f = a + b$
        * $a, b, a+b$, $f = 1(a)+1(b)$
        * $a, a+b, b$, $f = 1(a)+1(b)$
        * $b, a, a+b$, $f = 1(a)+1(b)$
        * $b, a+b, a$, $f=1(a+b)$
        * $a+b, b, a$, $f=1(a+b)$
        * $a+b, a, b$, $f=1(a+b)$
    * If $g_i$ is not one of the $h_k$, then backtrack through Buchberger to the $S-$poly it came from which gives it as a combo of the $h_k$s
    * What about just doing general polynomial division, changing orders of the $h_i$ to take into account possibility of a remainder with obvious sign
* try arguments for triangulations (star, fine, etc)
* Update lrs portion of functions for outer normal cones: https://github.com/mkoeppe/lrslib/tree/autoconfiscation
* See how solid angle measure is impacted (how and why) if we first define the blocker of the cyclic group polyhedron wrt its affine dimension
    * $P(7, 6)$ is a full-dimensional polyhedron (dim = 6) and we view its blocker in 6-dim even though it's a 2-dim polytope
* look into reducing description of blocker of group polyhedron (project out the lines given by the symmetry conditions) and see how solid angle of outer normal cones at vertices is impacted
* Test higher dimensional examples because double description method might take a long time (dim 11/12 and upwards)
#### Done:
* test effect of changing order of decompositions and projecting out linealities
* Manually considered bad example  - cone(A) contained cone(B) but problem is that when extending one of the generators of cone(A) to create a simplex, in it's direction, it never actually intersects the hyperplane ... so the resulting polyhedron would be unbounded
## Jan 10, 2023

#### Done:
* instead of doing Gram-Schmidt -- try $\text{proj}_L(x) = B(B^TB)^{-1}B^Tx$ where cols of $B$ form a basis of $L$.
* Altered solid_angle_general_faster function to use for Polyhedron class to make use of its ability to give a minimal description of the polyhedron
* Added a function to project out the lineality space $L$ of a cone $C$, and return the pointed cone $C \cap L^\perp$.
* rewrote triangulation into simplicial cones
* Idea to order solid angles: given a simplicial cone $C$ generated by unit vectors $v_1, \dots, v_n$, consider the vectors as points, take the unit vector in the direction of the barycenter, call it $b$. Extend the $v_i$ to the hyperplane tangent to the unit ball at $b$ This creates a $d$-simplex. The facet $F$ of the $d$-simplex on this tangent hyperplane is opposite of the solid angle of $C$. 
* Volume of the $d$-simplex is then $$\frac{1}{d!}\cdot vol(F) \cdot (\text{distance of $F$ to $\vec{0}$}) = \frac{1}{d!}\cdot vol(F)$$
and so only really depend on $vol(F)$. It should be the case that if $F_1$ is larger than $F_2$, then the projection of $F_1$ onto unit sphere is larger than the projection of $F_2$ onto the unit sphere.
    - go over bad example
