Verify that the sum of the lineality space and the nonlineal part
is the original cone for both values of ``orthogonal``. When
- ``orthogonal`` is ``True``, we verify that orthogonality::
+ ``orthogonal`` is ``True``, we verify that orthogonality. In both
+ cases, we erify that the nonlineal part is pointed::
sage: K = random_cone(strictly_convex=False)
sage: lat = K.lattice()
sage: V = lat.vector_space()
sage: linspace_rays = [ c*l for l in K.lines() for c in [-1,1] ]
sage: P = nonlineal_part(K)
+ sage: P.is_strictly_convex()
+ True
sage: J = Cone(list(P.rays()) + linspace_rays, lattice=lat)
sage: J.is_equivalent(K)
True
sage: P = nonlineal_part(K, orthogonal=True)
+ sage: P.is_strictly_convex()
+ True
sage: all( V(p).inner_product(V(l)).is_zero()
....: for p in P
....: for l in K.lines())
sage: nonlineal_part(K, orthogonal=False) is K
True
- Verify the assumption that :meth:`lines` is always orthogonal,
- and check that the nonlineal part is pointed while we're at it::
-
- sage: K = random_cone(strictly_convex=False)
- sage: nonlineal_part(K).is_strictly_convex()
- True
- sage: nonlineal_part(K, orthogonal=True).is_strictly_convex()
- True
- sage: V = K.lattice().vector_space()
- sage: L = [V(l) for l in K.lines()]
- sage: d = len(L)
- sage: d > 0
- True
- sage: all( L[i].inner_product(L[j]).is_zero()
- ....: for i in range(d)
- ....: for j in range(d)
- ....: if i != j )
- True
-
An example where the sum is not direct. The idea is that
``[l1,l2]`` and ``[h1,h2,h3,h4]`` begin as orthogonal generating
sets for the lineality space and pointed component of a cone