Fuse tight composer

Where are the checks done for may/mustEqual, before the Composer finds the edge or after?

Greg Bronevetsky
Lawrence Livermore National Lab
(925) 424-5756
bronevetsky@llnl.gov<mailto:bronevetsky@llnl.gov>
http://greg.bronevetsky.com

From: Sriram Aananthakrishnan [mailto:notifications@github.com]
Sent: Thursday, July 03, 2014 10:59 AM
To: sriram87/edg4x-rose
Cc: bronevet
Subject: Re: [edg4x-rose] Fuse tight composer (#4)


In projects/fuse/src/analysis/tight_composer.C:

> +    boost::shared_ptr<AnalysisMapAOType> amAO_p = boost::make_shared<AnalysisMapAOType>();

> +    list<ComposedAnalysis*>::iterator a = allAnalyses.begin();

> +    list<Expr2AnyKey>::iterator qIt;

> +    list<boost::shared_ptr<AOType> > aopList;

> +

> +    // Dispatch queries to each analysis

> +    for( ; a != allAnalyses.end(); ++a) {

> +      if(implementsExpr2AnyOp(*a)) {

> +        aopList.clear();

> +        for(qIt = queryList.begin(); qIt != queryList.end(); ++qIt) {

> +          Expr2AnyKey query = *qIt;

> +          // Transition this query to analysis state corresponding to *a

> +          tcqm.transToAnalState(query, *a);

> +          // dispatch the query to the analysis

> +          boost::shared_ptr<AOType> ao_p = Expr2AnyOp(*a, query.sgn, query.pedge);

> +          // Add it to the list

You are right. We cannot do it before the right edge is found. Both options sound good. We have to do similar checks for may/must/ equal etc.

—
Reply to this email directly or view it on GitHub<https://github.com/sriram87/edg4x-rose/pull/4/files#r14528604>.