# Space conics

Jonathan Hauenstein and Frank Sottile
Return to the main page for alphaCertified.

We consider the enumerative geometry problem of counting the number of real space conics that meet k points and 8-2k lines for k = 0, 1, 2. First, for each k, we solved a random complex instance using Bertini. We then solved many real instances with Bertini using a parameter homotopy and certifed the number of real solutions using alphaCertified.
The remainder of this page documents how to perform these calculations and the files we used and created in the course of this test.

Directions
Before you begin, you will need to have a working binary of Bertini and alphaCertified on your machine along with the GMP library.
Note that we describe this computation for k = 2 and provide the necessary files for k = 0 and k = 1 at the bottom of the page.

- Solve for a random complex instance by running Bertini with input file Conic2orig.bertini.
  `>: bertini Conic2orig.bertini`
  For k = 2, this takes a few seconds, but, using a single processor, it takes close to an hour for k = 0.
  The output file of interest is nonsingular_solutions, which will be the start points for the parameter homotopy.
- Rename nonsingular_solutions as start. These will be the start points for the parameter homotopy used to solve the real instances.
  `>: mv nonsingular_solutions start`
- Create the executable Instances2.out by compiling Instances2.c. This executable creates the input files needed to solve for a random real instance.
  `>: gcc -o Instances2.out Instances2.c -lgmp`
- Run Instances2.out. This creates Conic2.bertini, which is a parameter homotopy to compute numerical solutions for a random real instance, and Conic2.poly, which is the polynomial system used to certify the solutions. For example, Conic2.bertini and Conic2.poly.
  `>: ./Instances2.out`
- Use the parameter homotopy described in Conic2.bertini to compute the numerical solutions.
  `>: bertini Conic2.bertini`
  The output file of interest is nonsingular_solutions, which is part of the input for alphaCertified. Here is nonsingular_solutions for the running example.
- We now use alphaCertified to certify the number of real solutions. This is accomplished by running alphaCertified with the polynomial system described in Conic2.poly using the points contained in nonsingular_solutions created by Bertini in the last step. The configurations in settings tell alphaCertified to utilize 256-bit precision. We recommend capturing the output for perusal.
  `>: alphaCertified Conic2.poly nonsingular_solutions settings > output`
- Here is output for the running example. Perusing it, we see that alphaCertified certified that all 4 of the solutions are real.
- Bertini and alphaCertified both create a halo of small files, which may be removed using the short shell script scour.sh.
  `>: sh scour.sh`

Assuming that we have the start points and created Instances2.out, the following bash session computes and certifies the solutions for a random real instance.

    >: ./Instances2.out
    >: bertini Conic2.bertini
    >: alphaCertified Conic2.poly nonsingular_solutions settings > output
    >: sh scour.sh

| • | Frequency table for 500 instances verified with alphaCertified.
# real | 0 | 2 | 4 | total
frequency | 12 | 221 | 267 | 500

Files for other values of k

For k = 1:
| • | Random complex instance: Conic1orig.bertini.
| • | Start points for parameter homotopy: start.
| • | Code to create files for a random real instance: Instances1.c.
| • | Frequency table for 1,000,000 instances verified with alphaCertified.
# real | 0 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | total
frequency | 0 | 3,295 | 21,764 | 89,350 | 193,172 | 261,046 | 227,018 | 137,990 | 52,865 | 13,500 | 1,000,000
| • | 40,000 instances were also tested symbolically, with a perl script that ran Singular to compute an eliminant and ran Maple to determine the number of real roots of that eliminant. We display the frequency table. Here is a .tar.gz file that creates the files used in this computation.
# real | 0 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | total
frequency | 0 | 146 | 892 | 3558 | 7739 | 10575 | 8965 | 5488 | 2089 | 548 | 40000

For k = 0:
| • | Random complex instance: Conic0orig.bertini.
| • | Start points for parameter homotopy: start.
| • | Code to create files for a random real instance: Instances0.c.
| • | Frequency table for 15,662,000 instances verified with alphaCertified.
# real | 0 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20 | 22 | 24 | 26 | 28 | 30 | 32 | 34 | 36 | 38 | 40 | 42 | 44 | 46 | 48 | 50 | 52 | 54 | 56 | 58 | 60 | 62 | 64 | 66 | 68 | 70 | 72 | 74 | 76 | 78 | 80 | 82 | 84 | 86 | 88 | 90 | 92 | total
frequency | 1 | 8 | 26 | 65 | 466 | 1,548 | 4,765 | 11,928 | 26,439 | 52,875 | 98,129 | 167,932 | 270,267 | 404,918 | 569,891,316 | 756,527 | 942,674 | 1,114,033 | 1,246,533 | 1,332,289 | 1,355,320 | 1,319,699 | 1,226,667 | 1,091,019 | 932,838 | 762,463 | 596,174 | 449,021 | 323,927 | 223,455 | 149,629 | 95,740 | 59,141 | 34,834 | 19,516 | 10,672 | 5,671 | 2,744 | 1,290 | 530 | 204 | 90 | 26 | 11 | 3 | 2 | 0 | 15,662,000

Return to the main page for alphaCertified.

Last modified: Wed Nov 3 17:18:22 CDT 2010