Index Page rquad_c

A B C D E F G H I J K L M N O P Q R S T U V W X

Procedure Abstract Required_Reading Keywords Brief_I/O Detailed_Input | Detailed_Output Parameters Exceptions Files Particulars Examples | Restrictions Literature_References Author_and_Institution Version Index_Entries

#### Procedure

       void rquad_c ( SpiceDouble  a,
                      SpiceDouble  b,
                      SpiceDouble  c,
                      SpiceDouble  root1[2],
                      SpiceDouble  root2[2] )

#### Abstract

       Find the roots of a quadratic equation.

#### Required_Reading

       None.

#### Keywords

       MATH
       POLYNOMIAL
       ROOT

#### Brief_I/O

       Variable  I/O  Description
       --------  ---  --------------------------------------------------

       a          I   Coefficient of quadratic term.
       b          I   Coefficient of linear term.
       c          I   Constant.
       root1      O   Root built from positive discriminant term.
       root2      O   Root built from negative discriminant term.

#### Detailed_Input

       a,
       b,
       c              are the coefficients of a quadratic polynomial

                           2
                         ax   +   bx   +   c.

#### Detailed_Output

       root1,
       root2         are the roots of the equation,

                           2
                         ax   +   bx   +   c   =  0.

                     root1 and root2 are both arrays of length 2.  The
                     first element of each array is the real part of a
                     root; the second element contains the complex part
                     of the same root.

                     When a is non-zero, root1 represents the root

                                      _____________
                                     /  2
                        - b   +    \/  b    -   4ac
                        ---------------------------
                                      2a

                     and root2 represents the root

                                      _____________
                                     /  2
                        - b   -    \/  b    -   4ac
                        --------------------------- .
                                      2a

                     When a is zero and b is non-zero, root1 and root2
                     both represent the root

                        - c / b.

#### Parameters

       None.

#### Exceptions

       1)   If the input coefficients a and b are both zero, the error
            SPICE(DEGENERATECASE) is signalled.  The output arguments
            are not modified.

#### Files

       None.

#### Particulars

       None.

#### Examples

       1)   Humor us and suppose we want to compute the "golden ratio."

            The quantity r is defined by the equation

               1/r = r/(1-r),

            which is equivalent to

                2
               r   +  r  -  1  =  0.

            The following code fragment does the job.

               /.
               Compute "golden ratio."  The root we want,

                          ___
                         /
                  -1 + \/  5
                  -----------,
                       2

               is contained in root1.
               ./

               rquad_c ( 1., 1., -1., root1, root2 );

               printf ( "The \"golden ratio\" is %f\n", root1[0] );

       2)   The equation,

                2
               x   +  1  =  0

            can be solved by the code fragment

               /.
               Let's do one with imaginary roots just for fun.
               ./

               rquad_c ( 1.,  0.,  1.,  root1,  root2 );

               printf ( "root1 is %f   %f\n", root1[0], root1[1] );
               printf ( "root2 is %f   %f\n", root2[0], root2[1] );

            The printed results will be something like:

               root1 is 0.000000000000000   1.000000000000000
               root2 is 0.000000000000000   -1.000000000000000

#### Restrictions

       No checks for overflow of the roots are performed.

#### Literature_References

       None.

#### Author_and_Institution

       N.J. Bachman   (JPL)

#### Version

       -CSPICE Version 1.0.0, 13-JUN-1999 (NJB)

#### Index_Entries

       roots of a quadratic equation

#### Link to routine rquad_c source file rquad_c.c

    Wed Apr  5 17:54:42 2017