MCPcopy Create free account
hub / github.com/FreeFem/FreeFem-sources / dimProblem

Function dimProblem

src/fflib/problem.cpp:13113–13160  ·  view source on GitHub ↗

dimProblem read the number of arguments of problem ex: problem a(u,v) or a([u1,u2], [v1,v2])

Source from the content-addressed store, hash-verified

13111
13112// dimProblem read the number of arguments of problem ex: problem a(u,v) or a([u1,u2], [v1,v2])
13113int dimProblem(const ListOfId &l)
13114{
13115 int dim=0;
13116 int nb=l.size();//,nbarray=0;//,n=0,
13117 //const UnId *p1;
13118 for(int i=0; i<nb; ++i)
13119 {
13120 if(l[i].e ==0)// to miss name parameter solver=ddd
13121 {
13122 if (l[i].array)
13123 {
13124 ListOfId * array=l[i].array;
13125 for(int j=0; j<array->size(); ++j)
13126 {
13127 const UnId & idi( (*array)[j]);
13128 if (idi.r == 0 && idi.re == 0 && idi.array==0 )
13129 {
13130 C_F0 c=::Find( idi.id);
13131 if(BCastTo<pfec>(c) ) ffassert(dim==0 || dim==2),dim=2;
13132 if(BCastTo<pfer>(c) ) ffassert(dim==0 || dim==2),dim=2;
13133 if(BCastTo<pf3c>(c) ) ffassert(dim==0 || dim==3),dim=3;
13134 if(BCastTo<pf3r>(c) ) ffassert(dim==0 || dim==3),dim=3;
13135 if(BCastTo<pfSr>(c) ) ffassert(dim==0 || dim==4),dim=4;
13136 if(BCastTo<pfSc>(c) ) ffassert(dim==0 || dim==4),dim=4;
13137 if(BCastTo<pfLr>(c) ) ffassert(dim==0 || dim==5),dim=5;
13138 if(BCastTo<pfLc>(c) ) ffassert(dim==0 || dim==5),dim=5;
13139 }
13140 }
13141
13142 }
13143 else
13144 {
13145 C_F0 c=::Find(l[i].id);
13146 if(BCastTo<pfec>(c) ) ffassert(dim==0 || dim==2),dim=2;
13147 if(BCastTo<pfer>(c) ) ffassert(dim==0 || dim==2),dim=2;
13148 if(BCastTo<pf3c>(c) ) ffassert(dim==0 || dim==3),dim=3;
13149 if(BCastTo<pf3r>(c) ) ffassert(dim==0 || dim==3),dim=3;
13150 if(BCastTo<pfSr>(c) ) ffassert(dim==0 || dim==4),dim=4;
13151 if(BCastTo<pfSc>(c) ) ffassert(dim==0 || dim==4),dim=4;
13152 if(BCastTo<pfLr>(c) ) ffassert(dim==0 || dim==5),dim=5;
13153 if(BCastTo<pfLc>(c) ) ffassert(dim==0 || dim==5),dim=5;
13154 }
13155 }
13156 }
13157 ffassert(dim);
13158 return dim;
13159
13160}
13161
13162AnyType Problem::operator()(Stack stack) const
13163{

Callers 1

ProblemMethod · 0.85

Calls 2

FindFunction · 0.70
sizeMethod · 0.45

Tested by

no test coverage detected