### Method

# Vips Image math2_const

#### Declaration [src]

    int
    vips_math2_const (
      VipsImage* in,
      VipsImage** out,
      VipsOperationMath2 math2,
      const double* c,
      int n,
      ...
    )

#### Description [src]

This operation calculates various 2-ary maths operations on an image and an array of constants and writes the result to `out`. The image may have any non-complex format. `out` is float except in the case that `in` is double, in which case `out` is also double.

It detects division by zero, setting those pixels to zero in the output. Beware: it does this silently!

If the array of constants has just one element, that constant is used for all image bands. If the array has more than one element and they have the same number of elements as there are bands in the image, then one array element is used for each band. If the arrays have more than one element and the image only has a single band, the result is a many-band image where each band corresponds to one array element.

See also

`vips_math2()`, `vips_math()`.

This method is not directly available to language bindings.

#### Parameters

`out`

  Type: `VipsImage`

  Output image.

  The argument will be set by the function.
  The caller of the method takes ownership of the returned data, and is responsible for freeing it.

`math2`

  Type: `VipsOperationMath2`

  Math operation to perform.

`c`

  Type: An array of `double`

  Array of constants.

  The length of the array is specified in the `n` argument.
  The data is owned by the caller of the method.

`n`

  Type: `int`

  Number of constants in `c`.

`...`

  Type: ``

  `NULL`-terminated list of optional named arguments.

#### Return value

Type: `int`

0 on success, -1 on error.