Introduction > Return Values from User-Supplied Functions

Return Values from User-Supplied Functions

All values returned by user-supplied functions must be valid real numbers. It is the user’s responsibility to check that the values returned by a user-supplied function do not contain NaN, infinity, or negative infinity values.

Example

 

        #include <imsl.h>

        #include <math.h>

 

        void fcn(int, int, float[], float[]);

        int main()

        {

            int m=3, n=1;

            float *result, fx[3];

            float xguess[]={1.0};

            result = imsl_f_nonlin_least_squares(fcn, m, n, IMSL_XGUESS,

                xguess, 0);

            fcn(m, n, result, fx);

            /* Print results */

            imsl_f_write_matrix("The solution is", 1, 1, result, 0);

            imsl_f_write_matrix("The function values are", 1, 3, fx, 0);

        }

 

        void fcn(int m, int n, float x[], float f[])

        {

            int i;

            float y[3] = {2.0, 4.0, 3.0};

            float t[3] = {1.0, 2.0, 3.0};

            for (i=0; i<m; i++)

            {

                /*      check for x=0    

                do not want to return infinity to nonlin_least_squares    */

                if (x[0] == 0.0) {

                    f[i] = 10000.;

                } else {

                    f[i] = t[i]/x[0] - y[i];

                }

            }

        }


RW_logo.jpg
Contact Support