---
name: "PGAEvaluate"
section: "1"
platform: "linux"
package: "pgapack"
version: "1.1.1-3"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/PGAEvaluate"
---

# PGAEvaluate(1)

Calls a user-specified function to return an evaluation of each string in the population.

## NAME

PGAEvaluate - Calls a user-specified function to return an evaluation of each string in the population.

## DESCRIPTION

The user-specified function is only called if the string has been changed (e.g., by crossover or mutation) or the user has explicitly signaled the string's evaluation is out-of-date by a call to PGASetEvaluationUpToDateFlag().

## INPUT PARAMETERS

- ctx

  \- context variable

- pop

  \- symbolic constant of the population to be evaluated

- f

  \- a pointer to a function to evaluate a string.  This function will be called once for each string in population pop that requires evaluation.  This function must return a double (the evaluation function value) and must fit the prototype double f(PGAContext \*c, int p, int pop);

- comm

  \- an MPI communicator

## OUTPUT PARAMETERS

- none

  ## SYNOPSIS

```
#include "pgapack.h"
void  PGAEvaluate(ctx, pop, , comm)
PGAContext *ctx
int pop
double (*f)(PGAContext *, int, int)
MPI_Comm comm
```

## LOCATION

parallel.c

## EXAMPLE

```
Example:
Evaluate all strings in population PGA_NEWPOP using the user-defined
evaluation function Energy.
double Energy(PGAContext *ctx, int p, int pop) {
:
};
PGAContext *ctx;
:
PGAEvaluate(ctx, PGA_NEWPOP, Energy, MPI_COMM_WORLD);
```
