Skip to main content
`Ctrl`+`K`

# PetscIntMultTruncate

Computes the product of two positive `PetscInt` and truncates the value to slightly less than the maximal possible value

## Synopsis

    static inline PetscInt PetscIntMultTruncate(PetscInt a, PetscInt b)

Not Collective; No Fortran Support

## Input Parameters

- a - the `PetscInt` value

- b - the second value

## Returns

The result as a `PetscInt` value

## Notes

Use `PetscInt64Mult()` to compute the product of two `PetscInt` as a `PetscInt64`

Use `PetscRealIntMultTruncate()` to compute the product of a `PetscReal` and a `PetscInt` and truncate to fit a `PetscInt`

Use `PetscIntMultError()` to compute the product of two `PetscInt` if you wish to generate an error if the result will not fit in a `PetscInt`

## Developer Notes

We currently assume that `PetscInt` addition can never overflow, this is obviously wrong but requires many more checks.

This is used where we compute approximate sizes for workspace and need to insure the workspace is index-able.

## See Also

`PetscBLASInt`, `PetscMPIInt`, `PetscInt`, `PetscBLASIntCast()`, `PetscInt64Mult()`, `PetscIntMultError()`, `PetscIntSumError()`, `PetscIntSumTruncate()`

## Level

advanced

## Location

include/petscsys.h

Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages