Changeset 4704b07 in tol


Ignore:
Timestamp:
Mar 1, 2010, 4:33:16 PM (17 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
f77a89a
Parents:
33ccd82
Message:

New built-in function SetConcat

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@2046 be4846ae-f051-483a-831f-b64e7d08527f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tol/btol/set_type/setgra.cpp

    r33ccd82 r4704b07  
    590590
    591591//--------------------------------------------------------------------
    592 DeclareContensClass(BSet, BSetTemporary, BSetConcatAll);
    593 DefIntOpr(1, BSetConcatAll, "Concat", 2, 0,
    594           I2("(Set set1, Set set2 [, Set set3, ...])",
    595              "(Set cto1, Set cto2 [, Set cto3, ...])"),
    596           I2("Returns the concatenation of two or more sets.",
    597              "Devuelve la concatenación de dos o más conjuntos."),
    598           BOperClassify::SetAlgebra_);
    599 //--------------------------------------------------------------------
    600 void BSetConcatAll::CalcContens()
    601 //--------------------------------------------------------------------
    602 {
    603   BSet setOfSets;
    604   setOfSets.PutElement(ArgList());
     592void setConcat(const BSet& setOfSets, BSet& contens_)
     593//--------------------------------------------------------------------
     594{
    605595  int k, n, totCard = 0;
    606596  for(n=1; n<=setOfSets.Card(); n++)
    607597  {
    608     BSet& set = Set(setOfSets[n]);
    609     totCard += set.Card();
     598    if(setOfSets[n]->Grammar()==GraSet())
     599    {
     600      BSet& set = Set(setOfSets[n]);
     601      totCard += set.Card();
     602    }
    610603  }
    611604  contens_.PrepareStore(totCard);
    612605  for(n=1; n<=setOfSets.Card(); n++)
    613606  {
    614     BSet& set = Set(setOfSets[n]);
    615     for(k=1; k<=set.Card(); k++)
    616     {
    617       contens_.AddElement(set[k]);
    618     }
    619   }
    620 }
    621 
     607    if(setOfSets[n]->Grammar()==GraSet())
     608    {
     609      BSet& set = Set(setOfSets[n]);
     610      for(k=1; k<=set.Card(); k++)
     611      {
     612        contens_.AddElement(set[k]);
     613      }
     614    }
     615  }
     616}
     617
     618//--------------------------------------------------------------------
     619DeclareContensClass(BSet, BSetTemporary, BSetConcatAll);
     620DefIntOpr(1, BSetConcatAll, "Concat", 1, 0,
     621          "(Set set1 [, Set set2, ...])",
     622          I2("Returns the concatenation of a list of sets.",
     623             "Devuelve la concatenación de una lista conjuntos."),
     624          BOperClassify::SetAlgebra_);
     625//--------------------------------------------------------------------
     626void BSetConcatAll::CalcContens()
     627//--------------------------------------------------------------------
     628{
     629  BSet setOfSets;
     630  setOfSets.PutElement(ArgList());
     631  setConcat(setOfSets, contens_);
     632}
     633
     634//--------------------------------------------------------------------
     635DeclareContensClass(BSet, BSetTemporary, BSetSetConcat);
     636DefIntOpr(1, BSetSetConcat, "SetConcat", 1, 1,
     637          "(Set set)",
     638          I2("Returns the concatenation of a the elements of a set of sets.",
     639             "Devuelve la concatenación de los elementos de un conjunto de "
     640       "conjuntos."),
     641          BOperClassify::SetAlgebra_);
     642//--------------------------------------------------------------------
     643void BSetSetConcat::CalcContens()
     644//--------------------------------------------------------------------
     645{
     646  BSet& setOfSets = Set(Arg(1));
     647  setConcat(setOfSets, contens_);
     648}
    622649
    623650//--------------------------------------------------------------------
    … …  
    713740DefIntOpr(1, BSetCartesianProduct, "CartProd", 2, 0,
    714741          I2("(Set set1, Set set2 [, Set set3, ...])",
    715              "(Set cto1, Set cto2 [, Set cto3, ...])"),
    716           I2("Returns the cartesian product of two or more sets.",
    717              "Devuelve el producto cartesiano de dos o más conjuntos."),
     742             "(Set cto1, Set set2 [, Set cto3, ...])"),
     743          I2("Returns the cartesian product of a list of sets.",
     744             "Devuelve el producto cartesiano de una lista de conjuntos."),
    718745          BOperClassify::SetAlgebra_);
    719746
Note: See TracChangeset for help on using the changeset viewer.