modulo 左オペランド符号を有するモジュロm剰余演算
pmodulo 正のモジュロmユークリッド剰余演算

## 呼出し手順

    i = modulo(n,m)

    i = pmodulo(n,m)

## 引数

m, n

  エンコードされた整数, 実数または多項式の, スカラー, ベクトル, またはハイパー行列 `m` および `n`は, 同じ型である必要があります. yが整数型の場合,(int8およびint16のように) 異なるエンコード長とすることが可能です. どちらもスカラーでない場合、yは同じ大きさとする 必要があります.

i

  `n`と同じ型(および整数型)の スカラー, ベクトル, 行列またはハイパー行列. `i` は, `m`または`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).

## 説明

`modulo` は, `i= n (modulo m)`, すなわち, `n`を`m`で 割った剰余を計算します.

多項式の場合は、`pdiv（）`が使用されます.

数字の場合、

- `modulo（）`は`i = n - m.* int（n./ m）`を計算します. `n`が負の場合、結果は負（またはヌル）になります. それ以外は肯定的です.

- `pmodulo()` は, `i = n - |m| .* floor (n ./ |m|)` を計算します.答えは正またはゼロとなります.

`m`が1つ以上の値0を含む場合, `modulo(x,m)` および `pmodulo(x,m)` はゼロ割を発生します. `m`ｈが実数型の場合, この例外は`ieee()` モードに基づき処理されます. エンコードされた整数の場合,常にエラーを発生します.

## 例

    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)

    // エンコードされた整数
    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]))

    // ハイパー行列
    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)

    // 多項式
    modulo( %z^2+1, %z)
    pmodulo(%z^2+1, %z)

## 参照

- unwrap
- ieee

## 履歴

5.5.0 エンコードされた整数およびエンコードされた整数または実数の ハイパー行列に拡張されました.
6.0.2 Extension to hypermatrices of polynomials.