﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
707	InterpolaL (StdLib) works wrong for a Series with negative changes only	Alfredo Torre	Víctor de Buen Remiro	"
InterpolaL (from StdLib) works wrong when the original Series only has negative changes and, at least, one no change. Please, see the next example:

Serie Ser.Qua = SubSer(
100*Pulse(y2009m01d01, Quarterly) +
 90*Pulse(y2009m04d01, Quarterly) +
 90*Pulse(y2009m07d01, Quarterly) +
 80*Pulse(y2009m10d01, Quarterly),
y2009m01d01, y2010m01d01);
Serie Ser.Mon = InterpolaL(Ser.Qua, Monthly);


The problem is in InvChEx function. I suggest this new code for InterpolaL:

Serie InterpolaL(Serie ser, TimeSet dtn)
{
  Serie dser   = ((F-1):ser)>>CalInd(W,Dating(ser));
  Serie iper   = SubSer(CalVar(dtn,Dating(ser)),First(ser),Last(ser));
  Serie inc    = dser/iper;
  Serie dNser1 = InvCh(inc, Log(CalInd(W, dtn2)));
  Serie dNser2 = ExpandOmit(dNser1);
  Serie dNser  = (B):dNser2;
  Date  ini    = Succ(First(dNser),dtn,-1);
  Serie sIniP  = FirstS(ser)*CalInd(C,dtn);
  Serie sIni   = SubSer(sIniP,ini,ini);
  SubSer(DifEq(1/(1-B),dNser,sIni),ini,Last(ser))
};
"	defect	new	highest		Various	1.1.7	blocker		InterpolaL, negative changes	
