modulo Resto módulo m com o sinal do operando esquerdo, ou de uma divisão polinomial
pmodulo Resto positivo da divisão de n por m

## Seqüência de Chamamento

    i = modulo(n,m)

    i = pmodulo(n,m)

## Parâmetros

n,m

  Escalar, vetor, matriz ou hipermatriz de inteiros codificados, reais ou polinômios com coeficientes reais. `m` e `n` devem ter o mesmo tipo. Se eles são do tipo inteiro, eles podem ser de comprimento de codificação distinto (por exemplo, int8 e int16). Se nenhum deles for escalar, eles devem ter os mesmos tamanhos.

i

  Escalar, vetor, matriz ou hipermatriz do tipo (e inttype) `n`. `i` aceita os tamanhos do maior `m` ou `n`.

  For polynomials, when all remainders in the array `i` are constant (degree==0), `i` is of type 1 (numbers) instead of 2 (constant polynomials).

## Descrição

`modulo` computa `i= n (modulo m)` i.e. resto da divisão de `m`.

Para polinômios, `pdiv()` é chamado.

Para números,

- `modulo()` calcula `i = n - m .* int (n ./m)`. O resultado é negativo (ou nulo) quando `n` é negativo e é positivo caso contrário.

- `pmodulo()` calcula `i = n - | m | .* floor (n ./ | m |)`. O resultado é sempre positivo ou nulo.

Se `m` contiver pelo menos um valor 0, `modulo(x,m)` e `pmodulo(x,m)` executará uma divisão por zero. Se `m` for do tipo real, esta exceção será processada de acordo para o modo `ieee()`. Para inteiros codificados, sempre gerará um erro.

## Exemplos

    n = [1,2,10,15];
    m = [2,2,3,5];
    modulo(n,m)

    modulo(-3, 9)
    modulo(10, -4)

    pmodulo(-3, 9)
    pmodulo(10, -6)
    pmodulo(-10, -6)

    // Inteiros codificados
    modulo( int8(-13), int16(-7))
    pmodulo(int8(-13), int16(-7))
    modulo( int8(-13), int16([-7 5]))
    pmodulo(int8(-13), int16([-7 5]))
    modulo( int8([-13 8]), int16(-7))
    pmodulo(int8([-13 8]), int16(-7))
    modulo( int8([-13 8]), int16([-7 5]))
    pmodulo(int8([-13 8]), int16([-7 5]))

    // Hypermatrices
    m = grand(2,2,2,"uin",-100,100)
    n = grand(2,2,2,"uin",-10 ,10);
    n(n==0) = 1
    modulo(m, 5)
    pmodulo(m,5)
    modulo(51, n)
    pmodulo(51,n)
    modulo(m, n)
    pmodulo(m,n)

    // Polinômios
    modulo( %z^2+1, %z)
    pmodulo(%z^2+1, %z)

## Ver Também

- unwrap
- ieee

## Histórico

5.5.0 Extensão para inteiros codificados e para hypermatrices de inteiros codificados ou de reais.
6.0.2 Extensão para hipermatrizes de polinômios..