# Type alias: SolveSummary

Ƭ **SolveSummary**: `Object`

A value emitted by Solver as `summary`

event at the end of the
solve.
The information includes the number of solutions found, the total duration
of the solve, the number of branches, fails, propagations, restarts, etc.

`See`

#### Type declaration

Name | Type | Description |
---|---|---|

`cpu` | `string` | The CPU name detected by the solver. A string such as `"AMD Ryzen 9 5950X"` . |

`duration` | `number` | The total duration of the solve (measured by the server). |

`lowerBound?` | `ObjectiveValue` | Lower bound of the objective: the solver proved that there isn't any solution with a better objective value than the lower bound. If no such bound was proved then `undefined` . |

`memoryUsed` | `number` | Memory used during the solve (in bytes). |

`nbBranches` | `number` | The total number of branches during the solve. |

`nbConstraints` | `number` | The total number of constraints in the input model. |

`nbFails` | `number` | The total number of fails during the solve. |

`nbIntervalVars` | `number` | The total number of interval variables in the input model. |

`nbLNSSteps` | `number` | The total number of propagations during the solve. |

`nbRestarts` | `number` | The total number of restarts during the solve. |

`nbSolutions` | `number` | Number of solutions found during the solve. |

`nbWorkers` | `number` | Number of workers (CPU threads) used during the solve. |

`objective?` | `ObjectiveValue` | Objective value of the best solution found. If no solution was found then `undefined` . |

`objectiveSense` | `"minimize"` | `"maximize"` | `undefined` | Whether the objective was to minimize, maximize or no objective was given. |

`proof` | `boolean` | Whether the solve ended by a proof (of optimality or infeasibility). |

`solver` | `string` | The solver used for solving. A string such as `"OptalCP 1.0.0"` . |