# comparison

比較, 関係演算子

## 呼出し手順

    a==b
                a~=b or a<>b
                a<b
                a<=b
                a>b
                a>=b

## パラメータ

a

  等値比較`a==b`, `a~=b` `a<>b`の場合は任意の変数の型とすることができ, 順序が関連する比較`a<b`, `a<=b`, `a>b`,`a>=b` に関しては,浮動小数点の実数および整数の配列に制限されます.

b

  等値比較 `a==b`, `a~=b` `a< > b` の場合は任意の変数の型とすることができ, 順序が関連する比較 `a<b`, `a<=b`, `a>b`,`a>=b` に関しては,浮動小数点の実数および整数の配列に制限されます.

## 説明

2つの暮らすの演算士は区別する必要があります:

等値および不等式比較:

  `a==b`, `a~=b` (または等価な `a<>b`). これらの演算子は任意のオペランドの型に適用できます.

順序が関連する比較:

  `a<b`, `a<=b`, `a>b`,`a>=b`. これらの演算子は 浮動小数点の実数および整数の配列にのみ適用されます.

比較演算子のセマンティクスもオペランドの型に依存します:

配列変数の場合

  浮動小数点の実数および整数配列, 論理値配列, 文字列配列,多項式または有理配列,ハンドル配列,リスト... のような配列変数の場合,以下の規則が適用されます:

  - `a`および `b` を 同じ型，同じ次元の配列として評価する場合, 要素毎の比較が行われ, 結果は同じ次元の論理値の配列となります.

  - If `a` および `b` が 型は同じだが `a`または`b`が1行1列の配列の場合, このスカラーが別の配列の各要素と比較されます. この結果はスカラーでないオペランドの大きさの論理値の配列となります.

  - その他の場合, 結果は論理値 `%f` となります.

  - オペランドのデータ型が異なるが浮動小数点と整数のように 互換性がある場合,比較の前に型変換が行われます.

その他の型のオペランドの場合

  `function`や `libraries`のようなその他のオペランドの場合, 結果はオブジェクトが同じ場合に`%t`, それ以外の場合に `%f` となります.

  互換性がないデータ型の間の等値比較は `%f`を返します.

## 例

    //用途毎の比較
    (1:5)==3
    (1:5)<=4
    (1:5)<=[1 4 2 3 0]
    1<[]
    list(1,2,3)~=list(1,3,3)
    "foo"=="bar"
    sparse([1,2;4,5;3,10],[1,2,3]) == sparse([1,2;4,5;3,10],[1,2,3])

    //オブジェクト毎の比較
    (1:10)==[4,3]
    'foo'==3
    1==[]
    list(1,2,3)==1

    isequal(list(1,2,3),1)
    isequal(1:10,1)

    //型変換を伴う比較
    int32(1)==1
    int32(1)<1.5
    int32(1:5)<int8(3)
    p=poly(0,'s','c')
    p==0
    p/poly(1,'s','c')==0

## 参照

- less
- boolean
- isequal