# cumprod!

cumprod!(B, A, [dim])

Cumulative product of `A` along a dimension, storing the result in `B`. The dimension defaults to 1.

## Examples

1. Compute cumulative product along the default dimension:

``````julia> A = [2, 4, 6, 8];
julia> B = similar(A);
julia> cumprod!(B, A)
4-element Array{Int64,1}:
2
8
48
384``````

This example computes the cumulative product of the elements in `A` along the default dimension (dimension 1) and stores the result in `B`.

2. Compute cumulative product along a specified dimension:

``````julia> A = [1 2 3; 4 5 6; 7 8 9];
julia> B = similar(A);
julia> cumprod!(B, A, 2)
3×3 Array{Int64,2}:
1   2   6
4  20 120
7  56 504``````

In this example, the cumulative product is computed along dimension 2 of the matrix `A` and stored in `B`.

3. Handle edge cases with empty arrays:
``````julia> A = Int64[];
julia> B = similar(A);
julia> cumprod!(B, A)
0-element Array{Int64,1}``````

This example demonstrates that when the input array `A` is empty, the resulting cumulative product array `B` is also empty.

Common mistake example:

``````julia> A = [1, 2, 3];
julia> B = similar(A);
julia> cumprod!(B, A, 2)
ERROR: DimensionMismatch("cumulative product dimension exceeds size of input array")``````

In this case, the specified dimension (2) for the cumulative product is larger than the size of the input array along that dimension. Make sure to provide a valid dimension within the range of the input array when using `cumprod!`.