Opened 14 months ago

# Characteristic polynomial of central Hyperplane arrangement returns wrong result? — at Version 6

Reported by: Owned by: jipilab major sage-9.5 geometry hyperplane arrangements, regions gh-kliem, gh-LaisRast, nailuj N/A

A central hyperplane arrangement must have an even number of regions by central symmetry... yet the one below gets 31 regions(!).

```R.<y> = QQ[]
v1 = AA.polynomial_root(AA.common_polynomial(y^2 - 3), RIF(RR(1.7320508075688772), RR(1.7320508075688774)))
v2 = QQbar.polynomial_root(AA.common_polynomial(y^4 - y^2 + 1), CIF(RIF(RR(0.8660254037844386), RR(0.86602540378443871)), RIF(-RR(0.50000000000000011), -RR(0.49999999999999994))))
my_vectors = (vector(AA, [-v1, -1, 1]), vector(AA, [0, 2, 1]), vector(AA,[v1, -1, 1]), vector(AA, [1, 0, 0]), vector(AA, [1/2, AA(-1/2*v2^3 + v2),0]), vector(AA, [-1/2, AA(-1/2*v2^3 + v2), 0]))

sage: H = HyperplaneArrangements(AA,names='xyz')
sage: x,y,z = H.gens()
sage: A = H(backend="normaliz")
sage: for v in my_vectors:
....:     a,b,c = v
....:     A = A.add_hyperplane(a*x + b*y + c*z)
sage: A
Arrangement of 6 hyperplanes of dimension 3 and rank 3
sage: A.n_regions()
31
sage: A.is_central()
True
```

Here is another failure in characteristic polynomial:

```sage: tau = AA((1+sqrt(5))/2)
sage: ncn = [[2*tau+1,2*tau,tau],[2*tau+2,2*tau+1,tau+1],[1,1,1],[tau+1,tau+1,tau],[2*tau,2*tau,tau],[tau+1,tau+1,1],[1,1,0],[0,1,0],[1,0,0],[tau+1,tau,tau]]
sage: H = HyperplaneArrangements(AA,names='xyz')
sage: x,y,z = H.gens()
sage: A = H()
sage: for v in ncn:
....:     a,b,c = v
....:     A = A.add_hyperplane(a*x + b*y + c*z)
....:
sage: A.n_regions()
Traceback (most recent call last):
...
ValueError: arrangement cannot simultaneously have h and -h as hyperplane
```

### comment:1 Changed 14 months ago by chapoton

• Description modified (diff)

### comment:2 follow-up: ↓ 3 Changed 14 months ago by chapoton

The char poly gives the same answer

```sage: p = A.characteristic_polynomial() : p
x^3 - 6*x^2 + 13*x - 11
sage: p(-1)
-31
```

### comment:3 in reply to: ↑ 2 Changed 14 months ago by jipilab

The char poly gives the same answer

```sage: p = A.characteristic_polynomial() : p
x^3 - 6*x^2 + 13*x - 11
sage: p(-1)
-31
```

Yes, this is how the number of regions is computed up to sign. The hyperplane arrangement seems to be sane: computing `.regions()` computes the expected (number of) regions.

I asked the number of regions to double-check something and then got this scary answer...

Last edited 14 months ago by jipilab (previous) (diff)

### comment:4 Changed 14 months ago by jipilab

• Summary changed from Characteristic polynomial of central Hyperplane arrangement results wrong result? to Characteristic polynomial of central Hyperplane arrangement returns wrong result?

### comment:5 Changed 14 months ago by nailuj

I encountered this problem in some example a long while ago, before I was contributing to Sage myself. A simple workaround is to have `n_regions` output `len(self.regions())`, which was good enough for me. Of course, this is much slower if one doesn’t want to compute the regions anyway. I don’t understand the characteristic polynomial well enough to figure out the error in there.

### comment:6 Changed 12 months ago by jipilab

• Description modified (diff)
Note: See TracTickets for help on using tickets.