# optimsimplex_reflect

Returns the reflected simplex object.

## Calling Sequence

                r = optimsimplex_reflect(opt, fun)
                [r, data] = optimsimplex_reflect(opt, fun, data)

## Argument

opt

  The current simplex object of TSIMPLEX type (tlist).

fun

  The function to compute at vertices.

  The `fun` function is expected to have the following input and output arguments:

                              y = myfunction (x)

data

  User-defined data passed to the function (optional).

  If `data` is provided, it is passed to the callback function both as an input and output argument. In that case, the function must have the following header :

                              [y, data] = myfunction (x, data)

  The data input parameter may be used if the function uses some additional parameters. It is returned as an output parameter because the function may modify the data while computing the function value. This feature may be used, for example, to count the number of times that the function has been called.

r

  The reflected simplex object.

## Description

The `optimsimplex_reflect` function returns a new simplex by reflexion of current simplex, by reflection with respect to the first vertex in the simplex. This move is used in the centered simplex gradient.

## Example

    function y = rosenbrock (x)
      y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
    endfunction

    simplex = [
    3. 0. 0.
    4. 1. 0.
    5. 0. 2.
    ];

    s1 = optimsimplex_new ();
    s1 = optimsimplex_setall ( s1 , simplex );
    r = optimsimplex_reflect ( s1 , rosenbrock );
    computed = optimsimplex_getall ( r )

    s1 = optimsimplex_destroy(s1);
    r = optimsimplex_destroy(r);

## See Also

- optimsimplex_new