Skip to content

Commit 2ec46ad

Browse files
committed
CSE 0.841
Post-ivl expression evaluation stage Battery variability changes re probe use Autosize changes when 0 load
1 parent f7fe834 commit 2ec46ad

File tree

9 files changed

+122
-85
lines changed

9 files changed

+122
-85
lines changed

src/CNGUTS.CPP

Lines changed: 70 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1132,7 +1132,7 @@ LOCAL RC FC NEAR doIvlExprs( // evaluate and store user-input variable express
11321132
ucl = ~EVXBEGIVL; // all bits except end/post
11331133
}
11341134
else
1135-
{ Top.isEndOf = Top.ivl;
1135+
{ Top.isEndOf = Top.ivl; // isEndLvl set for both EVENDIVL and EVPSTIVL stages
11361136
ucl = ivlStage;
11371137
if (ivlStage == EVPSTIVL && Top.ivl == C_IVLCH_D)
11381138
Top.tp_tmrSnapshot(); // update probably copies of timing data
@@ -2003,27 +2003,31 @@ LOCAL void FC NEAR mtrsAccum( // Accumulate metered energy use results: add int
20032003
// compute sum of uses record (last record). .sum record then propogates to D, M, Y.
20042004
if (mtr->ss < MtrB.n) // don't add the sum record into itself
20052005
{ MTR_IVL_SUB& mtrSum = MtrB.p[MtrB.n].H;
2006+
mtrSum.mtr_Accum1( mtrSub1, ivl, 0+(firstflg!=0));
2007+
#if 0
20062008
if (firstRec)
20072009
memcpy( &mtrSum, mtrSub1, sizeof(MTR_IVL_SUB)); // copy first record
20082010
else // additional records: accumulate ...
20092011
mtrSum.mtr_Accum1( mtrSub1, ivl); // treatment of demand not necessarily sensible.
2012+
#endif
20102013
}
20112014
firstRec = 0;
20122015
}
20132016

2014-
// accumulate: copy on first call (in lieu of 0'ing destination). Note: doHourGains 0's MTR hour info at start hour.
2015-
2017+
// accumulate: copy on first call (in lieu of 0'ing destination).
2018+
// Note: doHourGains 0's MTR hour info at start hour.
2019+
#if 1
2020+
mtrSub2->mtr_Accum1( mtrSub1, ivl, 0 + (firstflg!=0));
2021+
#else
20162022
if (firstflg) // if first call for destination interval
2017-
{
2018-
// memcpy( mtrSub2, mtrSub1, sizeof(MTR_IVL_SUB) ); // copy whole subrecord
2019-
if (bTrc && ivl == 2)
2020-
printf( "\n ivl=2");
2023+
{ // copy selected members
20212024
VCopy( &mtrSub2->clg, NENDUSES-2, &mtrSub1->clg);
20222025
mtrSub2->pv = mtrSub1->pv;
20232026
mtrSub2->allEU = mtrSub1->allEU;
20242027
}
20252028
else // additional calls in interval use accumulation subr (next)
20262029
mtrSub2->mtr_Accum1( mtrSub1, ivl); // adds up uses w/o bt or tot
2030+
#endif
20272031
}
20282032

20292033
// DHWMTRs
@@ -2083,7 +2087,7 @@ LOCAL void FC NEAR mtrsFinalize( // Finalize meters (after post-stage calcs e.g
20832087
mtrSum.dmdCost = mtrSub1->dmdCost;
20842088
}
20852089
else // additional records: accumulate ...
2086-
mtrSum.mtr_Accum1( mtrSub1, ivl, 1); // treatment of demand not necessarily sensible.
2090+
mtrSum.mtr_Accum1( mtrSub1, ivl, 2); // treatment of demand not necessarily sensible.
20872091
#if 0 && defined( _DEBUG)
20882092
float xTot = VSum<float,double>( &mtrSum.clg, NENDUSES-2);
20892093
if (frDiff( xTot, mtrSum.tot) > .001)
@@ -2093,23 +2097,28 @@ LOCAL void FC NEAR mtrsFinalize( // Finalize meters (after post-stage calcs e.g
20932097
firstRec = 0;
20942098
}
20952099

2096-
// accumulate: copy on first call (in lieu of 0'ing destination). Note: doHourGains 0's MTR hour info at start hour.
20972100

20982101
#if defined( _DEBUG)
20992102
// MTR_IVL_SUB mtrSub2Was( *mtrSub2);
21002103
if (bTrc)
21012104
{ float xTot = VSum<float,double>( &mtrSub1->clg, NENDUSES);
21022105
if (frDiff( xTot, mtrSub1->tot) > .001)
21032106
printf( "\n Bad sub1");
2104-
if (ivl == 2)
2105-
printf(" ivl=2");
21062107
}
21072108

21082109
#endif
2110+
2111+
// accumulate: copy on first call (in lieu of 0'ing destination). Note: doHourGains 0's MTR hour info at start hour.
2112+
#if 1
2113+
// accumulate to next level, handles dmd
2114+
mtrSub2->mtr_Accum1( mtrSub1, ivl, 2 + (firstflg!=0));
2115+
#else
21092116
if (firstflg) // if first call for destination interval
21102117
memcpy( mtrSub2, mtrSub1, sizeof(MTR_IVL_SUB) ); // copy whole subrecord
21112118
else // additional calls in interval use accumulation subr (next)
2112-
mtrSub2->mtr_Accum1( mtrSub1, ivl, 1); // finalizes totals, handles dmd
2119+
mtrSub2->mtr_Accum1( mtrSub1, ivl, 2); // finalizes totals, handles dmd
2120+
#endif
2121+
21132122

21142123
#if defined( _DEBUG)
21152124
if (1 || bTrc)
@@ -2122,46 +2131,68 @@ LOCAL void FC NEAR mtrsFinalize( // Finalize meters (after post-stage calcs e.g
21222131
}
21232132
} // mtrsFinalize
21242133
//-----------------------------------------------------------------------------------------------------------
2125-
void MTR_IVL_SUB::mtr_Accum1( // inner routine for non-first accumulation of one meter-interval into another
2134+
void MTR_IVL_SUB::mtr_Accum1( // accumulate of one submeter-interval into another
21262135

21272136
const MTR_IVL_SUB* mtrSub1, // source interval usage/demand/cost substruct in MTR record
21282137
IVLCH ivl, // destination interval: day/month/year. Accumulates from hour/day/month. Not Top.ivl!
21292138
int options /*=0*/) // option bits
2130-
// 1: do "finalize" accumulation (else end-of-calcs accum)
2131-
// accums mtrSub1 into this
2132-
2133-
// not called if firstflg -- caller just memcpy's!
2139+
// 1: copy to *this (re firstflg)
2140+
// else accumulate
2141+
// 2: do "finalize" accumulation (after batttery calcs)
2142+
// else end-of-calc
2143+
// accums/copies mtrSub1 into *this
21342144
{
21352145
#if 1
2136-
bool bFinalize = (options & 1) != 0;
2146+
bool bCopy = (options & 1) != 0;
2147+
bool bFinalize = (options & 2) != 0;
21372148

21382149
if (!bFinalize)
21392150
{ // end of calcs / before battery
2140-
// omit tot (see below), bt included but s/b 0
2141-
// Add up uses and cost, and demand cost if month to year
2142-
VAccum( &clg, // add 2nd arg float vector to 1st arg
2143-
NENDUSES-2, // vector length: # end uses w/o pv and bt
2144-
&mtrSub1->clg); // source
2145-
pv += mtrSub1->pv;
2146-
allEU += mtrSub1->allEU;
2151+
// omit all *p (EVPSTIVL) mbrs (tot, bt, cost, dmd, dmdCost, dmdShoy)
2152+
if (bCopy)
2153+
{ VCopy( &clg, NENDUSES-2, &mtrSub1->clg);
2154+
pv = mtrSub1->pv;
2155+
allEU = mtrSub1->allEU;
2156+
}
2157+
else
2158+
{ VAccum( &clg, // add 2nd arg float vector to 1st arg
2159+
NENDUSES-2, // vector length: # end uses w/o pv and bt
2160+
&mtrSub1->clg); // source
2161+
pv += mtrSub1->pv;
2162+
allEU += mtrSub1->allEU;
2163+
}
21472164
}
21482165
else
21492166
{ // after load management (e.g. battery)
21502167
// handle all mbrs w/ *p variability
2151-
tot += mtrSub1->tot;
2152-
bt += mtrSub1->bt;
2153-
cost += mtrSub1->cost;
2154-
if (ivl==C_IVLCH_Y) // sum .dmdCost if month-to-year (thru month, largest
2155-
// dmdCost is used, not sum, by code just below).
2156-
dmdCost += mtrSub1->dmdCost;
2157-
2158-
// keep peak demand, and its cost thru month level
2159-
2160-
if (mtrSub1->dmd > dmd) // if source demand (peak use) greater
2161-
{ dmd = mtrSub1->dmd; // update largest hourly demand in destination
2162-
dmdShoy = mtrSub1->dmdShoy; // update peak date & time (subhr of year)
2163-
if (ivl != C_IVLCH_Y) // thru month level, keep largest demand cost
2164-
dmdCost = mtrSub1->dmdCost; // .. (but for month to year, dmdCost is summed, above).
2168+
if (bCopy)
2169+
{ memcpy( this, mtrSub1, sizeof( MTR_IVL_SUB));
2170+
2171+
#if 0
2172+
tot = mtrSub1->tot;
2173+
bt = mtrSub1->bt;
2174+
cost = mtrSub1->cost;
2175+
dmd = mtrSub1->dmd;
2176+
dmdCost = mtrSub1->dmdCost;
2177+
dmdShoy = mtrSub1->dmdShoy;
2178+
#endif
2179+
}
2180+
else
2181+
{ tot += mtrSub1->tot;
2182+
bt += mtrSub1->bt;
2183+
cost += mtrSub1->cost;
2184+
if (ivl==C_IVLCH_Y) // sum .dmdCost if month-to-year (thru month, largest
2185+
// dmdCost is used, not sum, by code just below).
2186+
dmdCost += mtrSub1->dmdCost;
2187+
2188+
// keep peak demand, and its cost thru month level
2189+
2190+
if (mtrSub1->dmd > dmd) // if source demand (peak use) greater
2191+
{ dmd = mtrSub1->dmd; // update largest hourly demand in destination
2192+
dmdShoy = mtrSub1->dmdShoy; // update peak date & time (subhr of year)
2193+
if (ivl != C_IVLCH_Y) // thru month level, keep largest demand cost
2194+
dmdCost = mtrSub1->dmdCost; // .. (but for month to year, dmdCost is summed, above).
2195+
}
21652196
}
21662197
}
21672198
#else

src/CUEVAL.CPP

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,36 +1050,36 @@ LOCAL RC FC NEAR cuRmGet( void **pv, const char** pms, USI *pBadH)
10501050

10511051
// check for mistimed probe eg to monthly results at end of day (when monthly results contain incomplete data)
10521052

1053-
if (fir->evf & EVENDIVL) // ?EV? if probed field avail only at end ivl (can probe start-ivl flds anytime)
1054-
{
1053+
if (fir->evf & EVXBEGIVL) // if probed field avail only at end ivl (can probe start-ivl flds anytime)
1054+
{ if (!Top.isEndOf) // if not now end of an interval (cnguts.cpp)
1055+
{
1056+
*pms = strtprintf( (char *)MH_R0222, // "Internal Error: mistimed probe: %s varies at end of %s\n"
1057+
// " but access occurred %s"
1058+
whatNio( e->b->ancN, e->ss, fir->off),
1059+
evfTx( fir->evf, 2),
1060+
Top.isBegOf
1061+
? strtprintf( (char *)MH_R0223, // "at BEGINNING of %s"
1062+
ivlTx(Top.isBegOf) ) // ivlTx: below
1063+
: strtprintf( (char *)MH_R0224) ); // use strtprintf to retreive msg to Tmpstr
1064+
//"neither at beginning nor end of an interval????"
1065+
return RCBAD;
1066+
}
1067+
10551068
IVLCH minIvl =
10561069
fir->evf >= EVFSUBHR ? C_IVLCH_S // get ivl corresponding to leftmost evf bit
10571070
: fir->evf >= EVFHR ? C_IVLCH_H // (shortest interval at which ok to probe this field)
10581071
: fir->evf >= EVFDAY ? C_IVLCH_D
10591072
: fir->evf >= EVFMON ? C_IVLCH_M
10601073
: C_IVLCH_Y; // EVFRUN, EVFFAZ, EVFEOI
10611074

1062-
if (!Top.isEndOf) // if not now end of an interval (cnguts.cpp)
1063-
{
1064-
*pms = strtprintf( (char *)MH_R0222, // "Internal Error: mistimed probe: %s varies at end of %s\n"
1065-
// " but accessed occurred %s"
1066-
whatNio( e->b->ancN, e->ss, fir->off),
1067-
evfTx( fir->evf, 2),
1068-
Top.isBegOf
1069-
? strtprintf( (char *)MH_R0223, // "at BEGINNING of %s"
1070-
ivlTx(Top.isBegOf) ) // ivlTx: below
1071-
: strtprintf( (char *)MH_R0224) ); // use strtprintf to retreive msg to Tmpstr
1072-
//"neither at beginning nor end of an interval????"
1073-
return RCBAD;
1074-
}
1075-
else if (Top.isEndOf > minIvl) // if end of too short an interval (C_IVLCH_ increases for shorter times)
1075+
if (Top.isEndOf > minIvl) // if end of too short an interval (C_IVLCH_ increases for shorter times)
10761076
{
10771077
*pms = strtprintf( (char *)MH_R0225, /* "Mistimed probe: %s\n"
1078-
" varies at end of %s but accessed at end of %s.\n"
1079-
" Possibly you combined it in an expression with a faster-varying datum." */
1080-
whatNio( e->b->ancN, e->ss, fir->off),
1081-
evfTx( fir->evf, 2),
1082-
ivlTx(Top.isEndOf) );
1078+
" varies at end of %s but accessed at end of %s.\n"
1079+
" Possibly you combined it in an expression with a faster-varying datum." */
1080+
whatNio( e->b->ancN, e->ss, fir->off),
1081+
evfTx( fir->evf, 2),
1082+
ivlTx(Top.isEndOf) );
10831083
return RCBAD;
10841084
}
10851085
}

src/CUL.CPP

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ LOCAL RC FC NEAR ckiCults( void);
274274
LOCAL void FC NEAR finalClear( void);
275275
LOCAL void FC NEAR xStkPt( void);
276276
LOCAL RC NEAR ganame( USI f, char *what, char **pp);
277-
LOCAL RC NEAR xpr( SI ty, USI fdTy, USI evf, USI useCl, USI f, char *what, NANDAT *p, USI *pGotTy, USI *pGotEvf );
277+
LOCAL RC NEAR xpr( SI ty, USI fdTy, USI _evfOk, USI useCl, USI f, char *what, NANDAT *p, USI *pGotTy, USI *pGotEvf );
278278
LOCAL void FC NEAR termnIf( void);
279279
LOCAL RC CDEC NEAR perNxE( char *ms, ...);
280280
LOCAL SI FC NEAR skip2end( SI lastCs, SI *pcs);
@@ -2234,7 +2234,7 @@ setFsVAL:
22342234
// get Identifier, Quoted text, or string eXpression. local fcn.
22352235
E( xpr( TYID, // get string, assume quotes around non-reserved undefined words
22362236
xSp->fdTy, // field type (or use 0 here?? 2-91)
2237-
0, 0, // no evf, no useCL: require constant.
2237+
0, 0, // no evfOk, no useCL: require constant.
22382238
0, // for flags for "all" and "sum" and numbers
22392239
NULL, // use xSp->c->id in errMsgs
22402240
(NANDAT *)&p, // receives string ptr. xpr gets terminator.
@@ -2701,7 +2701,7 @@ LOCAL RC NEAR ganame(
27012701
sfirSFI[ SFI_NAME].fdTy, // get field type for an ANAME field so exman.cpp will check string length
27022702
// (we have no defines for fld types: not invariant: data\fields.def
27032703
// is rearrangable & product dependent) 2-91. Declared in rccn.h.
2704-
0, 0, // 0 evf, useCl: require constant value
2704+
0, 0, // 0 evfOk, useCl: require constant value
27052705
f, // pass flags for "all" and "sum", etc 1-92
27062706
what, // pass arg thru
27072707
(NANDAT *)&p, // receives pointer to constant string value
@@ -2735,7 +2735,7 @@ LOCAL RC NEAR xpr( // our local expression compiler interface / checker
27352735
SI ty, // desired cuparse.cpp type: TYLLI TYFL TYSTR TYSI TYFLSTR or TYCH TYNC (fdTy req'd)
27362736
// or TYID (returns TYSTR). Also accepts non-cuparse type: TYDOY.
27372737
USI fdTy, // 0 (FDNONE?) or rec def fld type: dtype (for choices), units (for floats) and limit type are used.
2738-
USI evf, // permissible eval frequency bits, 0 for constant.
2738+
USI _evfOK, // permissible eval frequency bits, 0 for constant.
27392739
USI useCl, // "use class" for selective expr evaluation 3-91
27402740
USI f, // flag bits:
27412741
// ARRAY: enables comma as a terminator (CUTCOM returned in tokTy)
@@ -2750,7 +2750,7 @@ LOCAL RC NEAR xpr( // our local expression compiler interface / checker
27502750
USI *pGotEvf ) // NULL or rcvs variability gotten -- 0 constant (already stored), EVEOI, EVFHRLY, etc.
27512751

27522752
/* also uses: if 'what' is NULL: xSp->c->id (re compile errMsgs)
2753-
if evf is non-0 and expr non-constant: defTyping, xSp->b, xSp->i, xSp->c->fn (run errMsgs,exman.cpp).*/
2753+
if _evfOK is non-0 and expr non-constant: defTyping, xSp->b, xSp->i, xSp->c->fn (run errMsgs,exman.cpp).*/
27542754

27552755
/* returns: RCOK: normal success, tokTy = CUTCOM if comma followed it and f & ARRAY on.
27562756
RC_SUM, RC_ALL, RC_ALLBUT, [RC_ELECTRIC]: returned if special word gotten and enabling flags on.
@@ -2783,16 +2783,22 @@ LOCAL RC NEAR xpr( // our local expression compiler interface / checker
27832783
ty = TYSI; // cuparse accepts month-day in all SI exprs; later add 'goal-is-date' arg to enable that?
27842784

27852785
// compile expression
2786+
2787+
#if 1 // 9-11-2017
2788+
if (_evfOK & EVPSTIVL) // if post-interval is acceptable
2789+
_evfOK |= EVENDIVL; // then end-interval OK too
2790+
#endif
2791+
27862792
rc = exPile( // exman.cpp. only call 11-91.
27872793
-1, // say parse to ; or CUTVRB, etc
27882794
ty, // desired cuparse type
27892795
fdTy ? sFdtab[fdTy].dtype : 0, // 0 or choice type (DT___ define, dtypes.h) for TYCH, TYNC
27902796
fdTy, // 0 or field type
2791-
evf, // permissable evaluation frequency
2797+
_evfOK, // permissable evaluation frequency
27922798
useCl, // use Class for non-constants
27932799
what, // id to insert in error messages
27942800
defTyping, // destination info, for runtime errMsgs ...
2795-
xSp->b, // ... not used if evf 0 or expr constant ...
2801+
xSp->b, // ... not used if _evfOK 0 or expr constant ...
27962802
xSp->i, // ... don't matter for non-field iqx() calls.
27972803
xSp->c->fn + xSp->j, // ...
27982804
pp, // receives result or NANDLE
@@ -2806,7 +2812,7 @@ LOCAL RC NEAR xpr( // our local expression compiler interface / checker
28062812
here reject those that are passed that we do not like. */
28072813

28082814
if ( tokTy==CUTCOM && !(f & ARRAY) // comma ok if 'array' flag, 3-92
2809-
|| tokTy==CUTRPR || tokTy==CUTRB || tokTy==CUTDEFA )
2815+
|| tokTy==CUTRPR || tokTy==CUTRB || tokTy==CUTDEFA )
28102816
perNx( (char *)MH_S0249 ); // issue msg, scan to eof, verb, or after ';'.
28112817
// "expected ';' (or class name, member name, or verb)"
28122818

src/CUPARSE.CPP

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ LOCAL SYTBH symtab = { NULL, 0 };
603603

604604
/*--- CURRENT EXPRESSION INFO, exOrk to expr and callees. */
605605
USI NEAR evfOk = 0xffff; // evaluation frequencies allowed bits for current expression, ffff-->no limits.
606-
// EVENDIVL/EVPSTIVL bit here means end/post-of-interval evaluation ok.
606+
// EVENDIVL/EVPSTIVL stage bits here means end/post-of-interval evaluation ok.
607607
// also ref'd in cuprobe.cpp.
608608
char * NEAR ermTx = NULL; // NULL or word/phrase/name descriptive of entire expression, for insertion in msgs.
609609
LOCAL USI NEAR choiDt = 0; // choice type (dtypes.h) for TYCH (incl TYNC): specifies ok choices & their conversions.
@@ -1729,12 +1729,11 @@ oopsAchoice: // come here with v, sz, ms set as from cvS2Choi call to take (res
17291729
// in case eg DAY later added to MN|HR (see cleanEvf)
17301730
evfC &= ~EVFDUMMY; // here disregard "contains dummy arg ref, don't konstize" flag:
17311731
// normally on here in fcn, cleared by caller funcDef. 11-25-95
1732-
USI bb = evfC & ~evfOk; // bad bits: 1 in evfC, 0 in evfOk
1733-
if (0 && bb) // ?EV? if any bad bits
1732+
USI bb = evfC & ~evfOk; // bad bits: 1 in evfC, 0 in evfOk
1733+
if (bb) // if any bad bits
17341734
{ if (bb & EVXBEGIVL)
1735-
{
1736-
rc = perNx( (char *)MH_S0025, /* "Value varies at end of %s \n"
1737-
" where only start-of-interval variation permitted%s.\n"
1735+
{ rc = perNx( (char *)MH_S0025, /* "Value is available later in %s \n"
1736+
" than is required%s.\n"
17381737
" You may need to use a .prior in place of a .res" */
17391738
evfTx( evfC, 2), // 2: noun: eg "each hour"
17401739
ermTx ? strtprintf( " for '%s'", ermTx) : "" );
@@ -3463,11 +3462,10 @@ LOCAL USI FC NEAR maxEvf( USI evf)
34633462
if (bit & evf1) // if this bit on
34643463
return bit | (evf & (EVXBEGIVL | EVFDUMMY));
34653464
// return the bit
3466-
// preserve stage flags
3467-
// and "contains dummy arg ref -- don't konstize" flag 11-95.
3465+
// preserve stage flags and "contains dummy arg ref -- don't konstize" flag
34683466

3469-
return evf & EVFDUMMY; // no bit found: constant. preserve EVFDUMMY 11-95.
3470-
// discard (unexpected) EVXBEGIVL bits on constant
3467+
return evf & EVFDUMMY; // no bit found: constant. preserve EVFDUMMY
3468+
// discard (unexpected) EVXBEGIVL stage bits on constant
34713469
} // maxEvf
34723470
//==========================================================================
34733471
LOCAL USI FC NEAR cleanEvf( // clean up eval frequency bits

src/CUPARSE.H

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
void FC cuParseClean(CLEANCASE cs);
4343
RC FC fov();
4444
RC FC funcsVarsClear();
45-
RC FC exOrk( SI toprec, USI wanTy, USI choiDt, USI evfOk, char *ermTx,
45+
RC FC exOrk( SI toprec, USI wanTy, USI choiDt, USI evfOkPar, char *ermTx,
4646
USI *pGotTy, USI *pEvf, SI *pisKon, void *pv, PSOP **pip );
4747
RC FC itPile( PSOP *dest, USI sizeofDest);
4848
RC FC finPile( USI *pCodeSize);

src/CUPARSEX.H

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ extern SI NEAR isWord; // non-0 if word: reserved, defined, or CUTID.
3131

3232
/*--- CURRENT EXPRESSION INFO, exOrk to expr and callees, incl cuprobe.cpp. */
3333
extern USI NEAR evfOk; // evaluation frequencies allowed bits for current expression,
34-
// ffff-->no limits. EVENDIVL bit here means end-of-interval evaluation ok.
34+
// ffff-->no limits. EVENDIVL/EVPSTIVL stage bits here mean non start-of-interval evaluation ok.
3535
// also ref'd in cuprobe.cpp.
3636
extern char * NEAR ermTx; // NULL or word/phrase/name descriptive of entire expression, for insertion in msgs.
3737

src/EXMAN.H

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535

3636
/*------------------------- FUNCTION DECLARATIONS -------------------------*/
3737
void FC exClean(CLEANCASE cs);
38-
RC FC exPile( SI toprec, USI wanTy, USI choiDt, USI fdTy, USI evfOk, USI useCl,
38+
RC FC exPile( SI toprec, USI wanTy, USI choiDt, USI fdTy, USI _evfOk, USI useCl,
3939
char *ermTx, SI isType, BP b, TI i, SI fn,
4040
NANDAT *pDest, USI *pGotTy, USI *pGotEvf );
4141
RC FC uniLimCt( USI fdTy, SI ty, char *ermTx, void *p );

0 commit comments

Comments
 (0)