bugfix> sparse-matrix > 投稿

スパースドメインがあり、要素が追加されているかどうかを確認するとします。

var D = {1..5, 1..5},
    SD: sparse subdomain(D);
SD += (1,3);

(1,3) かどうかを見たいおよび (2,3) SDにあります。これは正しくありませんこのページ  .contain() しません例。ハ!私がそこで何をしたかを見てください?

//Don't do this
SD.contains(1,3)  // want true;
SD.contains(2,3)  // want false;

回答 1 件
  • チャペルのドメインはすべて、署名 member(i:idxType ...rank) のメソッドをサポートしています   true を返します  指定されたインデックスがドメインおよび false のメンバーである場合  さもないと。これには、連想ドメイン、不透明ドメイン、長方形ドメイン、および疎ドメインが含まれます。これらの各タイプの例は次のとおりです。

    連想:

    var D: domain(string);
    D += "hello";
    writeln("Associative");
    writeln(D.member("world")); // false
    writeln(D.member("hello")); // true
    
    

    不透明:

    var D: domain(opaque);
    var i1 = D.create();
    var i2: i1.type;
    writeln("Opaque");
    writeln(D.member(i2)); // false
    writeln(D.member(i1)); // true
    
    

    長方形:

     var D = {1..4, 3..5};
      writeln("Rectangular");
      writeln(D.member(2,6)); // false
      writeln(D.member(3,3)); // true
    
    

    スパース:

     var D = {1..10, 1..10};
      var SD: sparse subdomain(D);
      SD += (2,3);
      writeln("Sparse");
      writeln(SD.member(2,7)); // false
      writeln(SD.member(2,3)); // true
    
    

あなたの答え